diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 000000000..b8e42466c --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,2080 @@ +jobs: + stage_0_job_0: + name: rosout rospy tf2 geometric-shapes voxel-grid + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: [] + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_0_job_1: + name: ecl-core + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: [] + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ecl-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ecl-core + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_2: + name: roslaunch tf2-py urdfdom-py tf2-eigen rqt-gui + runs-on: ubuntu-latest + 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-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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_3: + name: bondpy nodelet rosserial-python turtlebot3-teleop teleop-twist-keyboard + runs-on: ubuntu-latest + 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-bondpy ros-noetic-nodelet ros-noetic-rosserial-python + ros-noetic-turtlebot3-teleop ros-noetic-teleop-twist-keyboard + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-bondpy ros-noetic-nodelet ros-noetic-rosserial-python + ros-noetic-turtlebot3-teleop ros-noetic-teleop-twist-keyboard + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_4: + name: dynamixel-sdk rtabmap-python rosbash-params tf2-bullet static-transform-mux + runs-on: ubuntu-latest + 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-dynamixel-sdk ros-noetic-rtabmap-python ros-noetic-rosbash-params + ros-noetic-tf2-bullet ros-noetic-static-transform-mux + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-dynamixel-sdk ros-noetic-rtabmap-python ros-noetic-rosbash-params + ros-noetic-tf2-bullet ros-noetic-static-transform-mux + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_1_job_5: + name: snmp-ros + runs-on: ubuntu-latest + 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-snmp-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-snmp-ros + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_2_job_6: + name: rostest rqt-gui-py rqt-gui-cpp bond-core nodelet-tutorial-math + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_1_job_2 + - stage_1_job_3 + - stage_1_job_4 + - stage_1_job_5 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_3_job_7: + name: topic-tools rosbag-storage message-filters urdf xacro + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_2_job_6 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_3_job_8: + name: map-server diagnostic-aggregator diagnostic-updater filters rospy-tutorials + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_2_job_6 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_3_job_9: + name: rqt-runtime-monitor rqt-web rqt-top rqt-shell rqt-py-console + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_2_job_6 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_3_job_10: + name: rosauth kdl-parser-py + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_2_job_6 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_4_job_11: + name: rosbag kdl-parser moveit-resources-panda-description srdfdom pr2-description + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_3_job_7 + - stage_3_job_8 + - stage_3_job_9 + - stage_3_job_10 + 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-pr2-description + 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-pr2-description + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_4_job_12: + name: moveit-resources-prbt-support joint-limits-interface self-test turtlebot3-description + velodyne-description + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_3_job_7 + - stage_3_job_8 + - stage_3_job_9 + - stage_3_job_10 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-prbt-support ros-noetic-joint-limits-interface + ros-noetic-self-test ros-noetic-turtlebot3-description ros-noetic-velodyne-description + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-prbt-support ros-noetic-joint-limits-interface + ros-noetic-self-test ros-noetic-turtlebot3-description ros-noetic-velodyne-description + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_4_job_13: + name: realsense2-description franka-description ros-tutorials swri-console + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_3_job_7 + - stage_3_job_8 + - stage_3_job_9 + - stage_3_job_10 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-realsense2-description ros-noetic-franka-description + ros-noetic-ros-tutorials ros-noetic-swri-console + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-realsense2-description ros-noetic-franka-description + ros-noetic-ros-tutorials ros-noetic-swri-console + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_5_job_14: + name: rostopic rosmsg sensor-msgs diagnostic-analysis + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_4_job_11 + - stage_4_job_12 + - stage_4_job_13 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_6_job_15: + name: rosnode rosservice map-msgs image-transport joint-state-publisher + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_5_job_14 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_6_job_16: + name: object-recognition-msgs pcl-msgs stereo-msgs image-geometry cv-bridge + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_5_job_14 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_6_job_17: + name: gazebo-msgs camera-calibration-parsers jsk-gui-msgs rtabmap-msgs rqt-topic + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_5_job_14 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-msgs ros-noetic-camera-calibration-parsers ros-noetic-jsk-gui-msgs + ros-noetic-rtabmap-msgs ros-noetic-rqt-topic + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-msgs ros-noetic-camera-calibration-parsers + ros-noetic-jsk-gui-msgs ros-noetic-rtabmap-msgs ros-noetic-rqt-topic + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_6_job_18: + name: spacenav-node joy hls-lfcd-lds-driver rqt-robot-steering cras-msgs + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_5_job_14 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-spacenav-node ros-noetic-joy ros-noetic-hls-lfcd-lds-driver + ros-noetic-rqt-robot-steering ros-noetic-cras-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-spacenav-node ros-noetic-joy ros-noetic-hls-lfcd-lds-driver + ros-noetic-rqt-robot-steering ros-noetic-cras-msgs + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_6_job_19: + name: mavros-msgs gps-common + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_5_job_14 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-mavros-msgs ros-noetic-gps-common + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-mavros-msgs ros-noetic-gps-common + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_20: + name: actionlib roswtf joint-state-publisher-gui moveit-msgs dynamic-reconfigure + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_6_job_15 + - stage_6_job_16 + - stage_6_job_17 + - stage_6_job_18 + - stage_6_job_19 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_21: + name: rqt-logger-level pcl-conversions rqt-bag controller-manager-msgs camera-info-manager + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_6_job_15 + - stage_6_job_16 + - stage_6_job_17 + - stage_6_job_18 + - stage_6_job_19 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_22: + name: jsk-recognition-msgs rtabmap grid-map-cv rqt-image-view posedetection-msgs + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_6_job_15 + - stage_6_job_16 + - stage_6_job_17 + - stage_6_job_18 + - stage_6_job_19 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-jsk-recognition-msgs ros-noetic-rtabmap ros-noetic-grid-map-cv + ros-noetic-rqt-image-view ros-noetic-posedetection-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-jsk-recognition-msgs ros-noetic-rtabmap ros-noetic-grid-map-cv + ros-noetic-rqt-image-view ros-noetic-posedetection-msgs + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_23: + name: polled-camera common-msgs rqt-graph rosbridge-library camera-calibration + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_6_job_15 + - stage_6_job_16 + - stage_6_job_17 + - stage_6_job_18 + - stage_6_job_19 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-polled-camera ros-noetic-common-msgs ros-noetic-rqt-graph + ros-noetic-rosbridge-library ros-noetic-camera-calibration + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-polled-camera ros-noetic-common-msgs ros-noetic-rqt-graph + ros-noetic-rosbridge-library ros-noetic-camera-calibration + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_7_job_24: + name: vision-opencv criutils movie-publisher electronic-io + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_6_job_15 + - stage_6_job_16 + - stage_6_job_17 + - stage_6_job_18 + - stage_6_job_19 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-vision-opencv ros-noetic-criutils ros-noetic-movie-publisher + ros-noetic-electronic-io + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-vision-opencv ros-noetic-criutils ros-noetic-movie-publisher + ros-noetic-electronic-io + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_25: + name: tf2-ros rqt-py-common sound-play nodelet-topic-tools jsk-network-tools + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_7_job_20 + - stage_7_job_21 + - stage_7_job_22 + - stage_7_job_23 + - stage_7_job_24 + 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-jsk-network-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-jsk-network-tools + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_26: + name: realtime-tools image-view controller-manager image-publisher actionlib-tutorials + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_7_job_20 + - stage_7_job_21 + - stage_7_job_22 + - stage_7_job_23 + - stage_7_job_24 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-realtime-tools ros-noetic-image-view ros-noetic-controller-manager + ros-noetic-image-publisher ros-noetic-actionlib-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-realtime-tools ros-noetic-image-view ros-noetic-controller-manager + ros-noetic-image-publisher ros-noetic-actionlib-tutorials + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_27: + name: compressed-image-transport ddynamic-reconfigure compressed-depth-image-transport + ros-comm usb-cam + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_7_job_20 + - stage_7_job_21 + - stage_7_job_22 + - stage_7_job_23 + - stage_7_job_24 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-compressed-image-transport ros-noetic-ddynamic-reconfigure + ros-noetic-compressed-depth-image-transport ros-noetic-ros-comm ros-noetic-usb-cam + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-compressed-image-transport ros-noetic-ddynamic-reconfigure + ros-noetic-compressed-depth-image-transport ros-noetic-ros-comm ros-noetic-usb-cam + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_28: + name: theora-image-transport smach-ros rqt-dep rosapi turtle-actionlib + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_7_job_20 + - stage_7_job_21 + - stage_7_job_22 + - stage_7_job_23 + - stage_7_job_24 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-theora-image-transport ros-noetic-smach-ros ros-noetic-rqt-dep + ros-noetic-rosapi ros-noetic-turtle-actionlib + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-theora-image-transport ros-noetic-smach-ros ros-noetic-rqt-dep + ros-noetic-rosapi ros-noetic-turtle-actionlib + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_29: + name: velodyne-laserscan image-common joy-teleop rqt-controller-manager handeye + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_7_job_20 + - stage_7_job_21 + - stage_7_job_22 + - stage_7_job_23 + - stage_7_job_24 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-velodyne-laserscan ros-noetic-image-common ros-noetic-joy-teleop + ros-noetic-rqt-controller-manager ros-noetic-handeye + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-velodyne-laserscan ros-noetic-image-common ros-noetic-joy-teleop + ros-noetic-rqt-controller-manager ros-noetic-handeye + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_8_job_30: + name: depthimage-to-laserscan + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_7_job_20 + - stage_7_job_21 + - stage_7_job_22 + - stage_7_job_23 + - stage_7_job_24 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-depthimage-to-laserscan + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-depthimage-to-laserscan + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_31: + name: tf2-geometry-msgs tf tf2-kdl tf2-sensor-msgs rqt-console + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_8_job_25 + - stage_8_job_26 + - stage_8_job_27 + - stage_8_job_28 + - stage_8_job_29 + - stage_8_job_30 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_32: + name: depth-image-proc image-proc control-toolbox forward-command-controller rqt-robot-monitor + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_8_job_25 + - stage_8_job_26 + - stage_8_job_27 + - stage_8_job_28 + - stage_8_job_29 + - stage_8_job_30 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_33: + name: rqt-plot joint-state-controller imu-sensor-controller force-torque-sensor-controller + ros-core + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_8_job_25 + - stage_8_job_26 + - stage_8_job_27 + - stage_8_job_28 + - stage_8_job_29 + - stage_8_job_30 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_34: + name: nodelet-core rqt-tf-tree rqt-moveit rqt-service-caller rqt-publisher + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_8_job_25 + - stage_8_job_26 + - stage_8_job_27 + - stage_8_job_28 + - stage_8_job_29 + - stage_8_job_30 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_35: + name: executive-smach rosbridge-server mavros image-transport-plugins common-tutorials + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_8_job_25 + - stage_8_job_26 + - stage_8_job_27 + - stage_8_job_28 + - stage_8_job_29 + - stage_8_job_30 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-executive-smach ros-noetic-rosbridge-server ros-noetic-mavros + ros-noetic-image-transport-plugins ros-noetic-common-tutorials + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-executive-smach ros-noetic-rosbridge-server ros-noetic-mavros + ros-noetic-image-transport-plugins ros-noetic-common-tutorials + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_9_job_36: + name: ros-control tf2-tools ros-babel-fish tf2-client plotjuggler-ros + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_8_job_25 + - stage_8_job_26 + - stage_8_job_27 + - stage_8_job_28 + - stage_8_job_29 + - stage_8_job_30 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-control ros-noetic-tf2-tools ros-noetic-ros-babel-fish + ros-noetic-tf2-client ros-noetic-plotjuggler-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-control ros-noetic-tf2-tools ros-noetic-ros-babel-fish + ros-noetic-tf2-client ros-noetic-plotjuggler-ros + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_37: + name: laser-geometry interactive-markers robot-state-publisher dynamic-tf-publisher + warehouse-ros + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_9_job_31 + - stage_9_job_32 + - stage_9_job_33 + - stage_9_job_34 + - stage_9_job_35 + - stage_9_job_36 + 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-dynamic-tf-publisher ros-noetic-warehouse-ros + 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-dynamic-tf-publisher ros-noetic-warehouse-ros + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_38: + name: rqt-reconfigure gazebo-ros pcl-ros tf-conversions rqt-nav-view + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_9_job_31 + - stage_9_job_32 + - stage_9_job_33 + - stage_9_job_34 + - stage_9_job_35 + - stage_9_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rqt-reconfigure ros-noetic-gazebo-ros ros-noetic-pcl-ros + ros-noetic-tf-conversions ros-noetic-rqt-nav-view + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rqt-reconfigure ros-noetic-gazebo-ros ros-noetic-pcl-ros + ros-noetic-tf-conversions ros-noetic-rqt-nav-view + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_39: + name: rgbd-launch stereo-image-proc amcl velocity-controllers position-controllers + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_9_job_31 + - stage_9_job_32 + - stage_9_job_33 + - stage_9_job_34 + - stage_9_job_35 + - stage_9_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rgbd-launch ros-noetic-stereo-image-proc ros-noetic-amcl + ros-noetic-velocity-controllers ros-noetic-position-controllers + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rgbd-launch ros-noetic-stereo-image-proc ros-noetic-amcl + ros-noetic-velocity-controllers ros-noetic-position-controllers + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_40: + name: joint-trajectory-controller grid-map-ros diff-drive-controller octomap-ros + rqt-msg + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_9_job_31 + - stage_9_job_32 + - stage_9_job_33 + - stage_9_job_34 + - stage_9_job_35 + - stage_9_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-joint-trajectory-controller ros-noetic-grid-map-ros ros-noetic-diff-drive-controller + ros-noetic-octomap-ros ros-noetic-rqt-msg + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-joint-trajectory-controller ros-noetic-grid-map-ros + ros-noetic-diff-drive-controller ros-noetic-octomap-ros ros-noetic-rqt-msg + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_41: + name: gmapping realsense2-camera apriltag-ros cras-cpp-common gripper-action-controller + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_9_job_31 + - stage_9_job_32 + - stage_9_job_33 + - stage_9_job_34 + - stage_9_job_35 + - stage_9_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gmapping ros-noetic-realsense2-camera ros-noetic-apriltag-ros + ros-noetic-cras-cpp-common ros-noetic-gripper-action-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gmapping ros-noetic-realsense2-camera ros-noetic-apriltag-ros + ros-noetic-cras-cpp-common ros-noetic-gripper-action-controller + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_42: + name: diagnostic-common-diagnostics rqt-pose-view rqt-launch rqt-bag-plugins mbf-utility + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_9_job_31 + - stage_9_job_32 + - stage_9_job_33 + - stage_9_job_34 + - stage_9_job_35 + - stage_9_job_36 + 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-mbf-utility + 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-mbf-utility + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_43: + name: robot-localization ros-base image-rotate turtle-tf2 turtle-tf + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_9_job_31 + - stage_9_job_32 + - stage_9_job_33 + - stage_9_job_34 + - stage_9_job_35 + - stage_9_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-robot-localization ros-noetic-ros-base ros-noetic-image-rotate + ros-noetic-turtle-tf2 ros-noetic-turtle-tf + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-robot-localization ros-noetic-ros-base ros-noetic-image-rotate + ros-noetic-turtle-tf2 ros-noetic-turtle-tf + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_44: + name: find-object-2d velodyne-driver imu-filter-madgwick imu-complementary-filter + fake-localization + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_9_job_31 + - stage_9_job_32 + - stage_9_job_33 + - stage_9_job_34 + - stage_9_job_35 + - stage_9_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-find-object-2d ros-noetic-velodyne-driver ros-noetic-imu-filter-madgwick + ros-noetic-imu-complementary-filter ros-noetic-fake-localization + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-find-object-2d ros-noetic-velodyne-driver ros-noetic-imu-filter-madgwick + ros-noetic-imu-complementary-filter ros-noetic-fake-localization + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_45: + name: pr2-teleop p2os-driver hector-trajectory-server mavros-extras rosserial-client + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_9_job_31 + - stage_9_job_32 + - stage_9_job_33 + - stage_9_job_34 + - stage_9_job_35 + - stage_9_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pr2-teleop ros-noetic-p2os-driver ros-noetic-hector-trajectory-server + ros-noetic-mavros-extras ros-noetic-rosserial-client + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pr2-teleop ros-noetic-p2os-driver ros-noetic-hector-trajectory-server + ros-noetic-mavros-extras ros-noetic-rosserial-client + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_46: + name: rosbridge-suite imu-transformer tf-remapper-cpp tf2-server rqt-ez-publisher + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_9_job_31 + - stage_9_job_32 + - stage_9_job_33 + - stage_9_job_34 + - stage_9_job_35 + - stage_9_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rosbridge-suite ros-noetic-imu-transformer ros-noetic-tf-remapper-cpp + ros-noetic-tf2-server ros-noetic-rqt-ez-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rosbridge-suite ros-noetic-imu-transformer ros-noetic-tf-remapper-cpp + ros-noetic-tf2-server ros-noetic-rqt-ez-publisher + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_10_job_47: + name: microstrain-inertial-driver geometry2 + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_9_job_31 + - stage_9_job_32 + - stage_9_job_33 + - stage_9_job_34 + - stage_9_job_35 + - stage_9_job_36 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_11_job_48: + name: rviz moveit-resources-fanuc-moveit-config costmap-2d jsk-topic-tools image-view2 + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_10_job_37 + - stage_10_job_38 + - stage_10_job_39 + - stage_10_job_40 + - stage_10_job_41 + - stage_10_job_42 + - stage_10_job_43 + - stage_10_job_44 + - stage_10_job_45 + - stage_10_job_46 + - stage_10_job_47 + 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-jsk-topic-tools ros-noetic-image-view2 + 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-jsk-topic-tools ros-noetic-image-view2 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_11_job_49: + name: laser-filters rqt-robot-dashboard rtabmap-conversions openni2-launch face-detector + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_10_job_37 + - stage_10_job_38 + - stage_10_job_39 + - stage_10_job_40 + - stage_10_job_41 + - stage_10_job_42 + - stage_10_job_43 + - stage_10_job_44 + - stage_10_job_45 + - stage_10_job_46 + - stage_10_job_47 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-laser-filters ros-noetic-rqt-robot-dashboard ros-noetic-rtabmap-conversions + ros-noetic-openni2-launch ros-noetic-face-detector + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-laser-filters ros-noetic-rqt-robot-dashboard ros-noetic-rtabmap-conversions + ros-noetic-openni2-launch ros-noetic-face-detector + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_11_job_50: + name: gazebo-ros-control hector-gazebo-plugins gazebo-plugins effort-controllers + ackermann-steering-controller + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_10_job_37 + - stage_10_job_38 + - stage_10_job_39 + - stage_10_job_40 + - stage_10_job_41 + - stage_10_job_42 + - stage_10_job_43 + - stage_10_job_44 + - stage_10_job_45 + - stage_10_job_46 + - stage_10_job_47 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-gazebo-ros-control ros-noetic-hector-gazebo-plugins ros-noetic-gazebo-plugins + ros-noetic-effort-controllers ros-noetic-ackermann-steering-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-gazebo-ros-control ros-noetic-hector-gazebo-plugins + ros-noetic-gazebo-plugins ros-noetic-effort-controllers ros-noetic-ackermann-steering-controller + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_11_job_51: + name: octomap-server laser-assembler rqt-srv rqt-action turtlebot3-bringup + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_10_job_37 + - stage_10_job_38 + - stage_10_job_39 + - stage_10_job_40 + - stage_10_job_41 + - stage_10_job_42 + - stage_10_job_43 + - stage_10_job_44 + - stage_10_job_45 + - stage_10_job_46 + - stage_10_job_47 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-octomap-server ros-noetic-laser-assembler ros-noetic-rqt-srv + ros-noetic-rqt-action ros-noetic-turtlebot3-bringup + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-octomap-server ros-noetic-laser-assembler ros-noetic-rqt-srv + ros-noetic-rqt-action ros-noetic-turtlebot3-bringup + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_11_job_52: + name: cras-py-common geometry diagnostics interactive-marker-tutorials turtlebot3-gazebo + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_10_job_37 + - stage_10_job_38 + - stage_10_job_39 + - stage_10_job_40 + - stage_10_job_41 + - stage_10_job_42 + - stage_10_job_43 + - stage_10_job_44 + - stage_10_job_45 + - stage_10_job_46 + - stage_10_job_47 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-cras-py-common ros-noetic-geometry ros-noetic-diagnostics + ros-noetic-interactive-marker-tutorials ros-noetic-turtlebot3-gazebo + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-cras-py-common ros-noetic-geometry ros-noetic-diagnostics + ros-noetic-interactive-marker-tutorials ros-noetic-turtlebot3-gazebo + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_11_job_53: + name: hector-mapping perception-pcl image-pipeline geometry-tutorials velodyne-pointcloud + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_10_job_37 + - stage_10_job_38 + - stage_10_job_39 + - stage_10_job_40 + - stage_10_job_41 + - stage_10_job_42 + - stage_10_job_43 + - stage_10_job_44 + - stage_10_job_45 + - stage_10_job_46 + - stage_10_job_47 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-hector-mapping ros-noetic-perception-pcl ros-noetic-image-pipeline + ros-noetic-geometry-tutorials ros-noetic-velodyne-pointcloud + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-hector-mapping ros-noetic-perception-pcl ros-noetic-image-pipeline + ros-noetic-geometry-tutorials ros-noetic-velodyne-pointcloud + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_11_job_54: + name: velodyne-gazebo-plugins slam-toolbox slam-gmapping rosserial-arduino rosserial + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_10_job_37 + - stage_10_job_38 + - stage_10_job_39 + - stage_10_job_40 + - stage_10_job_41 + - stage_10_job_42 + - stage_10_job_43 + - stage_10_job_44 + - stage_10_job_45 + - stage_10_job_46 + - stage_10_job_47 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-velodyne-gazebo-plugins ros-noetic-slam-toolbox ros-noetic-slam-gmapping + ros-noetic-rosserial-arduino ros-noetic-rosserial + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-velodyne-gazebo-plugins ros-noetic-slam-toolbox + ros-noetic-slam-gmapping ros-noetic-rosserial-arduino ros-noetic-rosserial + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_11_job_55: + name: magnetometer-compass dynamic-robot-state-publisher + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_10_job_37 + - stage_10_job_38 + - stage_10_job_39 + - stage_10_job_40 + - stage_10_job_41 + - stage_10_job_42 + - stage_10_job_43 + - stage_10_job_44 + - stage_10_job_45 + - stage_10_job_46 + - stage_10_job_47 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-magnetometer-compass ros-noetic-dynamic-robot-state-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-magnetometer-compass ros-noetic-dynamic-robot-state-publisher + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_56: + name: moveit-resources-panda-moveit-config nav-core jsk-tools jsk-data jsk-rqt-plugins + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_11_job_48 + - stage_11_job_49 + - stage_11_job_50 + - stage_11_job_51 + - stage_11_job_52 + - stage_11_job_53 + - stage_11_job_54 + - stage_11_job_55 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-resources-panda-moveit-config ros-noetic-nav-core + ros-noetic-jsk-tools ros-noetic-jsk-data ros-noetic-jsk-rqt-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-resources-panda-moveit-config ros-noetic-nav-core + ros-noetic-jsk-tools ros-noetic-jsk-data ros-noetic-jsk-rqt-plugins + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_57: + name: rtabmap-sync rtabmap-util rqt-rviz rtabmap-rviz-plugins rtabmap-costmap-plugins + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_11_job_48 + - stage_11_job_49 + - stage_11_job_50 + - stage_11_job_51 + - stage_11_job_52 + - stage_11_job_53 + - stage_11_job_54 + - stage_11_job_55 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rtabmap-sync ros-noetic-rtabmap-util ros-noetic-rqt-rviz + ros-noetic-rtabmap-rviz-plugins ros-noetic-rtabmap-costmap-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rtabmap-sync ros-noetic-rtabmap-util ros-noetic-rqt-rviz + ros-noetic-rtabmap-rviz-plugins ros-noetic-rtabmap-costmap-plugins + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_58: + name: ros-controllers rqt-common-plugins rviz-python-tutorial rviz-plugin-tutorials + librviz-tutorial + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_11_job_48 + - stage_11_job_49 + - stage_11_job_50 + - stage_11_job_51 + - stage_11_job_52 + - stage_11_job_53 + - stage_11_job_54 + - stage_11_job_55 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-ros-controllers ros-noetic-rqt-common-plugins ros-noetic-rviz-python-tutorial + ros-noetic-rviz-plugin-tutorials ros-noetic-librviz-tutorial + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-ros-controllers ros-noetic-rqt-common-plugins + ros-noetic-rviz-python-tutorial ros-noetic-rviz-plugin-tutorials ros-noetic-librviz-tutorial + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_59: + name: cras-topic-tools costmap-converter urdf-tutorial robot gazebo-ros-pkgs + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_11_job_48 + - stage_11_job_49 + - stage_11_job_50 + - stage_11_job_51 + - stage_11_job_52 + - stage_11_job_53 + - stage_11_job_54 + - stage_11_job_55 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-cras-topic-tools ros-noetic-costmap-converter ros-noetic-urdf-tutorial + ros-noetic-robot ros-noetic-gazebo-ros-pkgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-cras-topic-tools ros-noetic-costmap-converter + ros-noetic-urdf-tutorial ros-noetic-robot ros-noetic-gazebo-ros-pkgs + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_12_job_60: + name: laser-pipeline rviz-imu-plugin rviz-visual-tools velodyne-simulator octomap-mapping + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_11_job_48 + - stage_11_job_49 + - stage_11_job_50 + - stage_11_job_51 + - stage_11_job_52 + - stage_11_job_53 + - stage_11_job_54 + - stage_11_job_55 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-laser-pipeline ros-noetic-rviz-imu-plugin ros-noetic-rviz-visual-tools + ros-noetic-velodyne-simulator ros-noetic-octomap-mapping + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-laser-pipeline ros-noetic-rviz-imu-plugin ros-noetic-rviz-visual-tools + ros-noetic-velodyne-simulator ros-noetic-octomap-mapping + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_61: + name: moveit-core base-local-planner navfn clear-costmap-recovery jsk-recognition-utils + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_12_job_56 + - stage_12_job_57 + - stage_12_job_58 + - stage_12_job_59 + - stage_12_job_60 + 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-jsk-recognition-utils + 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-jsk-recognition-utils + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_62: + name: rtabmap-viz rtabmap-slam rtabmap-odom rqt-robot-plugins mbf-costmap-core + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_12_job_56 + - stage_12_job_57 + - stage_12_job_58 + - stage_12_job_59 + - stage_12_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-rtabmap-viz ros-noetic-rtabmap-slam ros-noetic-rtabmap-odom + ros-noetic-rqt-robot-plugins ros-noetic-mbf-costmap-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-rtabmap-viz ros-noetic-rtabmap-slam ros-noetic-rtabmap-odom + ros-noetic-rqt-robot-plugins ros-noetic-mbf-costmap-core + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_63: + name: visualization-tutorials point-cloud-transport urdf-sim-tutorial perception + move-slow-and-clear + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_12_job_56 + - stage_12_job_57 + - stage_12_job_58 + - stage_12_job_59 + - stage_12_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-visualization-tutorials ros-noetic-point-cloud-transport + ros-noetic-urdf-sim-tutorial ros-noetic-perception ros-noetic-move-slow-and-clear + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-visualization-tutorials ros-noetic-point-cloud-transport + ros-noetic-urdf-sim-tutorial ros-noetic-perception ros-noetic-move-slow-and-clear + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_13_job_64: + name: imu-tools image-transport-codecs + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_12_job_56 + - stage_12_job_57 + - stage_12_job_58 + - stage_12_job_59 + - stage_12_job_60 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-imu-tools ros-noetic-image-transport-codecs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-imu-tools ros-noetic-image-transport-codecs + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_14_job_65: + name: moveit-ros-occupancy-map-monitor rotate-recovery moveit-resources-prbt-ikfast-manipulator-plugin + dwa-local-planner moveit-simple-controller-manager + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_13_job_61 + - stage_13_job_62 + - stage_13_job_63 + - stage_13_job_64 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_14_job_66: + name: chomp-motion-planner jsk-rviz-plugins rtabmap-launch viz teb-local-planner + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_13_job_61 + - stage_13_job_62 + - stage_13_job_63 + - stage_13_job_64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-chomp-motion-planner ros-noetic-jsk-rviz-plugins ros-noetic-rtabmap-launch + ros-noetic-viz ros-noetic-teb-local-planner + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-chomp-motion-planner ros-noetic-jsk-rviz-plugins + ros-noetic-rtabmap-launch ros-noetic-viz ros-noetic-teb-local-planner + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_14_job_67: + name: simulators global-planner draco-point-cloud-transport carrot-planner sensor-filters + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_13_job_61 + - stage_13_job_62 + - stage_13_job_63 + - stage_13_job_64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-simulators ros-noetic-global-planner ros-noetic-draco-point-cloud-transport + ros-noetic-carrot-planner ros-noetic-sensor-filters + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-simulators ros-noetic-global-planner ros-noetic-draco-point-cloud-transport + ros-noetic-carrot-planner ros-noetic-sensor-filters + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_14_job_68: + name: point-cloud-color + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_13_job_61 + - stage_13_job_62 + - stage_13_job_63 + - stage_13_job_64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-point-cloud-color + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-point-cloud-color + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_69: + name: moveit-ros-planning move-base moveit-resources-prbt-moveit-config moveit-ros-control-interface + jsk-interactive-marker + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_14_job_65 + - stage_14_job_66 + - stage_14_job_67 + - stage_14_job_68 + 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-jsk-interactive-marker + 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-jsk-interactive-marker + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_15_job_70: + name: desktop point-cloud-transport-plugins + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_14_job_65 + - stage_14_job_66 + - stage_14_job_67 + - stage_14_job_68 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-desktop ros-noetic-point-cloud-transport-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-desktop ros-noetic-point-cloud-transport-plugins + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_71: + name: moveit-kinematics moveit-ros-warehouse moveit-ros-robot-interaction moveit-ros-perception + moveit-fake-controller-manager + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_15_job_69 + - stage_15_job_70 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_72: + name: moveit-resources-prbt-pg70-support moveit-planners-ompl turtlebot3-navigation + husky-navigation jsk-interactive + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_15_job_69 + - stage_15_job_70 + 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-husky-navigation ros-noetic-jsk-interactive + 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-husky-navigation ros-noetic-jsk-interactive + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_16_job_73: + name: desktop-full navigation moveit-visual-tools + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_15_job_69 + - stage_15_job_70 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-desktop-full ros-noetic-navigation ros-noetic-moveit-visual-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-desktop-full ros-noetic-navigation ros-noetic-moveit-visual-tools + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_74: + name: moveit-ros-move-group moveit-plugins moveit-ros-benchmarks rtabmap-demos + jsk-interactive-test + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_16_job_71 + - stage_16_job_72 + - stage_16_job_73 + 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-rtabmap-demos ros-noetic-jsk-interactive-test + 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-rtabmap-demos ros-noetic-jsk-interactive-test + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_17_job_75: + name: robot-body-filter + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_16_job_71 + - stage_16_job_72 + - stage_16_job_73 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-robot-body-filter + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-robot-body-filter + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_18_job_76: + name: moveit-ros-manipulation rtabmap-legacy rtabmap-examples jsk-visualization + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_17_job_74 + - stage_17_job_75 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-manipulation ros-noetic-rtabmap-legacy ros-noetic-rtabmap-examples + ros-noetic-jsk-visualization + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-manipulation ros-noetic-rtabmap-legacy + ros-noetic-rtabmap-examples ros-noetic-jsk-visualization + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_19_job_77: + name: moveit-ros-planning-interface rtabmap-ros + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_18_job_76 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-ros-planning-interface ros-noetic-rtabmap-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-ros-planning-interface ros-noetic-rtabmap-ros + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_20_job_78: + name: moveit-commander moveit-ros-visualization moveit-planners-chomp moveit-servo + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_19_job_77 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-moveit-commander ros-noetic-moveit-ros-visualization + ros-noetic-moveit-planners-chomp ros-noetic-moveit-servo + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-moveit-commander ros-noetic-moveit-ros-visualization + ros-noetic-moveit-planners-chomp ros-noetic-moveit-servo + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_21_job_79: + name: pilz-industrial-motion-planner-testutils moveit-setup-assistant moveit-ros + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_20_job_78 + 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 + 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 + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh + stage_22_job_80: + name: pilz-industrial-motion-planner panda-moveit-config moveit-planners moveit + runs-on: ubuntu-latest + strategy: + fail-fast: false + needs: + - stage_21_job_79 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-noetic-pilz-industrial-motion-planner ros-noetic-panda-moveit-config + ros-noetic-moveit-planners ros-noetic-moveit + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-noetic-pilz-industrial-motion-planner ros-noetic-panda-moveit-config + ros-noetic-moveit-planners ros-noetic-moveit + DOCKER_IMAGE: condaforge/linux-anvil-cos7-x86_64 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/run_docker_build.sh +name: build_linux +on: + push: + branches: + - buildbranch_linux 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..ad493473c --- /dev/null +++ b/buildorder.txt @@ -0,0 +1,354 @@ +ros-noetic-rosout +ros-noetic-rospy +ros-noetic-tf2 +ros-noetic-geometric-shapes +ros-noetic-voxel-grid +ros-noetic-ecl-core +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-rosserial-python +ros-noetic-turtlebot3-teleop +ros-noetic-teleop-twist-keyboard +ros-noetic-dynamixel-sdk +ros-noetic-rtabmap-python +ros-noetic-rosbash-params +ros-noetic-tf2-bullet +ros-noetic-static-transform-mux +ros-noetic-snmp-ros +ros-noetic-rostest +ros-noetic-rqt-gui-py +ros-noetic-rqt-gui-cpp +ros-noetic-bond-core +ros-noetic-nodelet-tutorial-math +ros-noetic-topic-tools +ros-noetic-rosbag-storage +ros-noetic-message-filters +ros-noetic-urdf +ros-noetic-xacro +ros-noetic-map-server +ros-noetic-diagnostic-aggregator +ros-noetic-diagnostic-updater +ros-noetic-filters +ros-noetic-rospy-tutorials +ros-noetic-rqt-runtime-monitor +ros-noetic-rqt-web +ros-noetic-rqt-top +ros-noetic-rqt-shell +ros-noetic-rqt-py-console +ros-noetic-rosauth +ros-noetic-kdl-parser-py +ros-noetic-rosbag +ros-noetic-kdl-parser +ros-noetic-moveit-resources-panda-description +ros-noetic-srdfdom +ros-noetic-pr2-description +ros-noetic-moveit-resources-prbt-support +ros-noetic-joint-limits-interface +ros-noetic-self-test +ros-noetic-turtlebot3-description +ros-noetic-velodyne-description +ros-noetic-realsense2-description +ros-noetic-franka-description +ros-noetic-ros-tutorials +ros-noetic-swri-console +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-jsk-gui-msgs +ros-noetic-rtabmap-msgs +ros-noetic-rqt-topic +ros-noetic-spacenav-node +ros-noetic-joy +ros-noetic-hls-lfcd-lds-driver +ros-noetic-rqt-robot-steering +ros-noetic-cras-msgs +ros-noetic-mavros-msgs +ros-noetic-gps-common +ros-noetic-actionlib +ros-noetic-roswtf +ros-noetic-joint-state-publisher-gui +ros-noetic-moveit-msgs +ros-noetic-dynamic-reconfigure +ros-noetic-rqt-logger-level +ros-noetic-pcl-conversions +ros-noetic-rqt-bag +ros-noetic-controller-manager-msgs +ros-noetic-camera-info-manager +ros-noetic-jsk-recognition-msgs +ros-noetic-rtabmap +ros-noetic-grid-map-cv +ros-noetic-rqt-image-view +ros-noetic-posedetection-msgs +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-criutils +ros-noetic-movie-publisher +ros-noetic-electronic-io +ros-noetic-tf2-ros +ros-noetic-rqt-py-common +ros-noetic-sound-play +ros-noetic-nodelet-topic-tools +ros-noetic-jsk-network-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-usb-cam +ros-noetic-theora-image-transport +ros-noetic-smach-ros +ros-noetic-rqt-dep +ros-noetic-rosapi +ros-noetic-turtle-actionlib +ros-noetic-velodyne-laserscan +ros-noetic-image-common +ros-noetic-joy-teleop +ros-noetic-rqt-controller-manager +ros-noetic-handeye +ros-noetic-depthimage-to-laserscan +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-mavros +ros-noetic-image-transport-plugins +ros-noetic-common-tutorials +ros-noetic-ros-control +ros-noetic-tf2-tools +ros-noetic-ros-babel-fish +ros-noetic-tf2-client +ros-noetic-plotjuggler-ros +ros-noetic-laser-geometry +ros-noetic-interactive-markers +ros-noetic-robot-state-publisher +ros-noetic-dynamic-tf-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-grid-map-ros +ros-noetic-diff-drive-controller +ros-noetic-octomap-ros +ros-noetic-rqt-msg +ros-noetic-gmapping +ros-noetic-realsense2-camera +ros-noetic-apriltag-ros +ros-noetic-cras-cpp-common +ros-noetic-gripper-action-controller +ros-noetic-diagnostic-common-diagnostics +ros-noetic-rqt-pose-view +ros-noetic-rqt-launch +ros-noetic-rqt-bag-plugins +ros-noetic-mbf-utility +ros-noetic-robot-localization +ros-noetic-ros-base +ros-noetic-image-rotate +ros-noetic-turtle-tf2 +ros-noetic-turtle-tf +ros-noetic-find-object-2d +ros-noetic-velodyne-driver +ros-noetic-imu-filter-madgwick +ros-noetic-imu-complementary-filter +ros-noetic-fake-localization +ros-noetic-pr2-teleop +ros-noetic-p2os-driver +ros-noetic-hector-trajectory-server +ros-noetic-mavros-extras +ros-noetic-rosserial-client +ros-noetic-rosbridge-suite +ros-noetic-imu-transformer +ros-noetic-tf-remapper-cpp +ros-noetic-tf2-server +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-jsk-topic-tools +ros-noetic-image-view2 +ros-noetic-laser-filters +ros-noetic-rqt-robot-dashboard +ros-noetic-rtabmap-conversions +ros-noetic-openni2-launch +ros-noetic-face-detector +ros-noetic-gazebo-ros-control +ros-noetic-hector-gazebo-plugins +ros-noetic-gazebo-plugins +ros-noetic-effort-controllers +ros-noetic-ackermann-steering-controller +ros-noetic-octomap-server +ros-noetic-laser-assembler +ros-noetic-rqt-srv +ros-noetic-rqt-action +ros-noetic-turtlebot3-bringup +ros-noetic-cras-py-common +ros-noetic-geometry +ros-noetic-diagnostics +ros-noetic-interactive-marker-tutorials +ros-noetic-turtlebot3-gazebo +ros-noetic-hector-mapping +ros-noetic-perception-pcl +ros-noetic-image-pipeline +ros-noetic-geometry-tutorials +ros-noetic-velodyne-pointcloud +ros-noetic-velodyne-gazebo-plugins +ros-noetic-slam-toolbox +ros-noetic-slam-gmapping +ros-noetic-rosserial-arduino +ros-noetic-rosserial +ros-noetic-magnetometer-compass +ros-noetic-dynamic-robot-state-publisher +ros-noetic-moveit-resources-panda-moveit-config +ros-noetic-nav-core +ros-noetic-jsk-tools +ros-noetic-jsk-data +ros-noetic-jsk-rqt-plugins +ros-noetic-rtabmap-sync +ros-noetic-rtabmap-util +ros-noetic-rqt-rviz +ros-noetic-rtabmap-rviz-plugins +ros-noetic-rtabmap-costmap-plugins +ros-noetic-ros-controllers +ros-noetic-rqt-common-plugins +ros-noetic-rviz-python-tutorial +ros-noetic-rviz-plugin-tutorials +ros-noetic-librviz-tutorial +ros-noetic-cras-topic-tools +ros-noetic-costmap-converter +ros-noetic-urdf-tutorial +ros-noetic-robot +ros-noetic-gazebo-ros-pkgs +ros-noetic-laser-pipeline +ros-noetic-rviz-imu-plugin +ros-noetic-rviz-visual-tools +ros-noetic-velodyne-simulator +ros-noetic-octomap-mapping +ros-noetic-moveit-core +ros-noetic-base-local-planner +ros-noetic-navfn +ros-noetic-clear-costmap-recovery +ros-noetic-jsk-recognition-utils +ros-noetic-rtabmap-viz +ros-noetic-rtabmap-slam +ros-noetic-rtabmap-odom +ros-noetic-rqt-robot-plugins +ros-noetic-mbf-costmap-core +ros-noetic-visualization-tutorials +ros-noetic-point-cloud-transport +ros-noetic-urdf-sim-tutorial +ros-noetic-perception +ros-noetic-move-slow-and-clear +ros-noetic-imu-tools +ros-noetic-image-transport-codecs +ros-noetic-moveit-ros-occupancy-map-monitor +ros-noetic-rotate-recovery +ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin +ros-noetic-dwa-local-planner +ros-noetic-moveit-simple-controller-manager +ros-noetic-chomp-motion-planner +ros-noetic-jsk-rviz-plugins +ros-noetic-rtabmap-launch +ros-noetic-viz +ros-noetic-teb-local-planner +ros-noetic-simulators +ros-noetic-global-planner +ros-noetic-draco-point-cloud-transport +ros-noetic-carrot-planner +ros-noetic-sensor-filters +ros-noetic-point-cloud-color +ros-noetic-moveit-ros-planning +ros-noetic-move-base +ros-noetic-moveit-resources-prbt-moveit-config +ros-noetic-moveit-ros-control-interface +ros-noetic-jsk-interactive-marker +ros-noetic-desktop +ros-noetic-point-cloud-transport-plugins +ros-noetic-moveit-kinematics +ros-noetic-moveit-ros-warehouse +ros-noetic-moveit-ros-robot-interaction +ros-noetic-moveit-ros-perception +ros-noetic-moveit-fake-controller-manager +ros-noetic-moveit-resources-prbt-pg70-support +ros-noetic-moveit-planners-ompl +ros-noetic-turtlebot3-navigation +ros-noetic-husky-navigation +ros-noetic-jsk-interactive +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-rtabmap-demos +ros-noetic-jsk-interactive-test +ros-noetic-robot-body-filter +ros-noetic-moveit-ros-manipulation +ros-noetic-rtabmap-legacy +ros-noetic-rtabmap-examples +ros-noetic-jsk-visualization +ros-noetic-moveit-ros-planning-interface +ros-noetic-rtabmap-ros +ros-noetic-moveit-commander +ros-noetic-moveit-ros-visualization +ros-noetic-moveit-planners-chomp +ros-noetic-moveit-servo +ros-noetic-pilz-industrial-motion-planner-testutils +ros-noetic-moveit-setup-assistant +ros-noetic-moveit-ros +ros-noetic-pilz-industrial-motion-planner +ros-noetic-panda-moveit-config +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-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..0c37cb8e4 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..e5b25c98c --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..8d9b953ce --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..529125131 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_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-apriltag-ros/bld_catkin.bat b/recipes/ros-noetic-apriltag-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-apriltag-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-apriltag-ros/build_catkin.sh b/recipes/ros-noetic-apriltag-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-apriltag-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-apriltag-ros/recipe.yaml b/recipes/ros-noetic-apriltag-ros/recipe.yaml new file mode 100644 index 000000000..73bc1266b --- /dev/null +++ b/recipes/ros-noetic-apriltag-ros/recipe.yaml @@ -0,0 +1,95 @@ +package: + name: ros-noetic-apriltag-ros + version: 3.2.1 +source: + git_url: https://github.com/AprilRobotics/apriltag_ros-release.git + git_rev: release/noetic/apriltag_ros/3.2.1-3 + folder: ros-noetic-apriltag-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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 + - libopencv + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-apriltag + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - eigen + - libopencv + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-apriltag + - ros-noetic-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-message-runtime + - 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') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext 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..3f7faa835 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..9080d619e --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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-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..653823fe1 --- /dev/null +++ b/recipes/ros-noetic-bondpy/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-bondpy + version: 1.8.6 +source: + git_url: https://github.com/ros-gbp/bond_core-release.git + git_rev: release/noetic/bondpy/1.8.6-1 + folder: ros-noetic-bondpy/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bond + - ros-noetic-catkin + - ros-noetic-rospy + - ros-noetic-smclib + - setuptools + run: + - libuuid + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-smclib + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-camera-calibration-parsers/bld_catkin.bat b/recipes/ros-noetic-camera-calibration-parsers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-camera-calibration-parsers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-camera-calibration-parsers/build_catkin.sh b/recipes/ros-noetic-camera-calibration-parsers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-camera-calibration-parsers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-camera-calibration-parsers/recipe.yaml b/recipes/ros-noetic-camera-calibration-parsers/recipe.yaml new file mode 100644 index 000000000..1c465019d --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..00143cb6e --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..d302150dd --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..9b28535f9 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-chomp-motion-planner/bld_catkin.bat b/recipes/ros-noetic-chomp-motion-planner/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-chomp-motion-planner/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-chomp-motion-planner/build_catkin.sh b/recipes/ros-noetic-chomp-motion-planner/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-chomp-motion-planner/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-chomp-motion-planner/recipe.yaml b/recipes/ros-noetic-chomp-motion-planner/recipe.yaml new file mode 100644 index 000000000..4a616de23 --- /dev/null +++ b/recipes/ros-noetic-chomp-motion-planner/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-chomp-motion-planner + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/chomp_motion_planner/1.1.13-2 + folder: ros-noetic-chomp-motion-planner/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..96c757225 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..c8b0be00e --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..612b99c1f --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..45d6e984c --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..7d1b60d7f --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..e5a366b91 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..c1ad2bfc3 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..0bb1263b1 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..3e181314e --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-laser-geometry + - ros-noetic-map-msgs + - ros-noetic-map-server + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-visualization-msgs + - ros-noetic-voxel-grid + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-laser-geometry + - ros-noetic-map-msgs + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - ros-noetic-voxel-grid + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-costmap-converter/bld_catkin.bat b/recipes/ros-noetic-costmap-converter/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-costmap-converter/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-costmap-converter/build_catkin.sh b/recipes/ros-noetic-costmap-converter/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-costmap-converter/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-costmap-converter/patch/ros-noetic-costmap-converter.patch b/recipes/ros-noetic-costmap-converter/patch/ros-noetic-costmap-converter.patch new file mode 100644 index 000000000..2713f9fec --- /dev/null +++ b/recipes/ros-noetic-costmap-converter/patch/ros-noetic-costmap-converter.patch @@ -0,0 +1,77 @@ +From cb6af72f331a881fb399e651d6c9aaaf536a63e3 Mon Sep 17 00:00:00 2001 +From: Ben Wolsieffer +Date: Thu, 10 Aug 2023 13:29:02 -0400 +Subject: [PATCH] Make BlobDetector inherit from cv::Feature2D + +BlobDetector currently inherits from cv::SimpleBlobDetector, which is an +interface class that doesn't provide any functionality itself. On the +other hand, every time OpenCV adds a new pure virtual method to this +interface, it breaks BlobDetector. + +This patch makes BlobDetector inherit from cv::Feature2D instead, which +should hopefully have fewer breaking changes. This requires adding a +typedef for Params, which was originally provided by +cv::SimpleBlobDetector. I also took the opportunity to make all the +parameters reference this typedef rather than directly use +cv::SimpleBlobDetector::Params. + +It is likely possible to remove inheritance from BlobDetector altogether, +since it doesn't appear to use any functionality from cv::Feature2D +either, but I decided not to do this because BlobDetector is part of the +public interface, and this could increase the likelihood of breaking +downstream packages that use this class (if any do). +--- + .../costmap_to_dynamic_obstacles/blob_detector.h | 10 ++++++---- + src/costmap_to_dynamic_obstacles/blob_detector.cpp | 4 ++-- + 2 files changed, 8 insertions(+), 6 deletions(-) + +diff --git a/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h b/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h +index ac9b80a..9bfe5bf 100644 +--- a/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h ++++ b/include/costmap_converter/costmap_to_dynamic_obstacles/blob_detector.h +@@ -57,14 +57,16 @@ + * + * See http://docs.opencv.org/trunk/d0/d7a/classcv_1_1SimpleBlobDetector.html for the original class. + */ +-class BlobDetector : public cv::SimpleBlobDetector ++class BlobDetector : public cv::Feature2D + { + public: ++ typedef cv::SimpleBlobDetector::Params Params; ++ + //! Default constructor which optionally accepts custom parameters +- BlobDetector(const cv::SimpleBlobDetector::Params& parameters = cv::SimpleBlobDetector::Params()); ++ BlobDetector(const Params& parameters = Params()); + + //! Create shared instance of the blob detector with given parameters +- static cv::Ptr create(const BlobDetector::Params& params); ++ static cv::Ptr create(const Params& params); + + /** + * @brief Detects keypoints in an image and extracts contours +@@ -90,7 +92,7 @@ class BlobDetector : public cv::SimpleBlobDetector + const std::vector>& getContours() { return contours_; } + + //! Update internal parameters +- void updateParameters(const cv::SimpleBlobDetector::Params& parameters); ++ void updateParameters(const Params& parameters); + + protected: + struct Center +diff --git a/src/costmap_to_dynamic_obstacles/blob_detector.cpp b/src/costmap_to_dynamic_obstacles/blob_detector.cpp +index c7352f4..564cb0c 100755 +--- a/src/costmap_to_dynamic_obstacles/blob_detector.cpp ++++ b/src/costmap_to_dynamic_obstacles/blob_detector.cpp +@@ -2,9 +2,9 @@ + #include + #include + +-BlobDetector::BlobDetector(const SimpleBlobDetector::Params& parameters) : params_(parameters) {} ++BlobDetector::BlobDetector(const Params& parameters) : params_(parameters) {} + +-cv::Ptr BlobDetector::create(const cv::SimpleBlobDetector::Params& params) ++cv::Ptr BlobDetector::create(const Params& params) + { + return cv::Ptr (new BlobDetector(params)); // compatibility with older versions + //return cv::makePtr(params); + diff --git a/recipes/ros-noetic-costmap-converter/recipe.yaml b/recipes/ros-noetic-costmap-converter/recipe.yaml new file mode 100644 index 000000000..75353636b --- /dev/null +++ b/recipes/ros-noetic-costmap-converter/recipe.yaml @@ -0,0 +1,70 @@ +package: + name: ros-noetic-costmap-converter + version: 0.0.13 +source: + git_url: https://github.com/rst-tu-dortmund/costmap_converter-release.git + git_rev: release/noetic/costmap_converter/0.0.13-1 + folder: ros-noetic-costmap-converter/src/work + patches: + - patch/ros-noetic-costmap-converter.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-costmap-2d + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cras-cpp-common/bld_catkin.bat b/recipes/ros-noetic-cras-cpp-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cras-cpp-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cras-cpp-common/build_catkin.sh b/recipes/ros-noetic-cras-cpp-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cras-cpp-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cras-cpp-common/recipe.yaml b/recipes/ros-noetic-cras-cpp-common/recipe.yaml new file mode 100644 index 000000000..a86b1552c --- /dev/null +++ b/recipes/ros-noetic-cras-cpp-common/recipe.yaml @@ -0,0 +1,94 @@ +package: + name: ros-noetic-cras-cpp-common + version: 2.3.8 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/ros-utils.git + git_rev: release/noetic/cras_cpp_common/2.3.8-1 + folder: ros-noetic-cras-cpp-common/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bondcpp + - ros-noetic-catkin + - ros-noetic-class-loader + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-filters + - ros-noetic-geometry-msgs + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-roslaunch + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-topic-tools + - urdfdom_headers + run: + - boost + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bondcpp + - ros-noetic-class-loader + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-filters + - ros-noetic-geometry-msgs + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-topic-tools + - urdfdom_headers + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cras-msgs/bld_catkin.bat b/recipes/ros-noetic-cras-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cras-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cras-msgs/build_catkin.sh b/recipes/ros-noetic-cras-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cras-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cras-msgs/recipe.yaml b/recipes/ros-noetic-cras-msgs/recipe.yaml new file mode 100644 index 000000000..6b9a4ac22 --- /dev/null +++ b/recipes/ros-noetic-cras-msgs/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-cras-msgs + version: 1.1.1 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/cras_msgs + git_rev: release/noetic/cras_msgs/1.1.1-1 + folder: ros-noetic-cras-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-roslint + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cras-py-common/bld_catkin.bat b/recipes/ros-noetic-cras-py-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cras-py-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cras-py-common/build_catkin.sh b/recipes/ros-noetic-cras-py-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cras-py-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cras-py-common/recipe.yaml b/recipes/ros-noetic-cras-py-common/recipe.yaml new file mode 100644 index 000000000..89352a49b --- /dev/null +++ b/recipes/ros-noetic-cras-py-common/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-cras-py-common + version: 2.3.8 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/ros-utils.git + git_rev: release/noetic/cras_py_common/2.3.8-1 + folder: ros-noetic-cras-py-common/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cras-cpp-common + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-rosunit + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-rosgraph + - ros-noetic-rosgraph-msgs + - ros-noetic-rospy + - ros-noetic-tf + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-cras-topic-tools/bld_catkin.bat b/recipes/ros-noetic-cras-topic-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-cras-topic-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-cras-topic-tools/build_catkin.sh b/recipes/ros-noetic-cras-topic-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-cras-topic-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-cras-topic-tools/recipe.yaml b/recipes/ros-noetic-cras-topic-tools/recipe.yaml new file mode 100644 index 000000000..4ce8943c0 --- /dev/null +++ b/recipes/ros-noetic-cras-topic-tools/recipe.yaml @@ -0,0 +1,73 @@ +package: + name: ros-noetic-cras-topic-tools + version: 2.3.8 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/ros-utils.git + git_rev: release/noetic/cras_topic_tools/2.3.8-1 + folder: ros-noetic-cras-topic-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cras-cpp-common + - ros-noetic-cras-msgs + - ros-noetic-geometry-msgs + - ros-noetic-nodelet + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-roslaunch + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-rostopic + - ros-noetic-std-msgs + - ros-noetic-topic-tools + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cras-cpp-common + - ros-noetic-cras-msgs + - ros-noetic-cras-py-common + - ros-noetic-nodelet + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-std-msgs + - ros-noetic-topic-tools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-criutils/bld_catkin.bat b/recipes/ros-noetic-criutils/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-criutils/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-criutils/build_catkin.sh b/recipes/ros-noetic-criutils/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-criutils/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-criutils/recipe.yaml b/recipes/ros-noetic-criutils/recipe.yaml new file mode 100644 index 000000000..f2937ca4a --- /dev/null +++ b/recipes/ros-noetic-criutils/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-criutils + version: 0.1.4 +source: + git_url: https://github.com/crigroup/criutils-release.git + git_rev: release/noetic/criutils/0.1.4-2 + folder: ros-noetic-criutils/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - numpy + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-baldor + - ros-noetic-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-image-geometry + - ros-noetic-resource-retriever + - ros-noetic-rostopic + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-visualization-msgs + - termcolor + - 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..f8fe488fa --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..c2e749f90 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..41346f4d0 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-depthimage-to-laserscan/bld_catkin.bat b/recipes/ros-noetic-depthimage-to-laserscan/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-depthimage-to-laserscan/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-depthimage-to-laserscan/build_catkin.sh b/recipes/ros-noetic-depthimage-to-laserscan/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-depthimage-to-laserscan/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-depthimage-to-laserscan/recipe.yaml b/recipes/ros-noetic-depthimage-to-laserscan/recipe.yaml new file mode 100644 index 000000000..ef4ab91fd --- /dev/null +++ b/recipes/ros-noetic-depthimage-to-laserscan/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-depthimage-to-laserscan + version: 1.0.8 +source: + git_url: https://github.com/ros-gbp/depthimage_to_laserscan-release.git + git_rev: release/noetic/depthimage_to_laserscan/1.0.8-1 + folder: ros-noetic-depthimage-to-laserscan/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - gtest + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-geometry + - 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-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..ff6dd8957 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..1bbfce921 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..3f64f31e1 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d5140253c --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..275a60ea8 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(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-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..4b7723496 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..aff24032b --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..0dd3e4814 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-control-msgs + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-hardware-interface + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-rosgraph-msgs + - ros-noetic-rostest + - ros-noetic-rostopic + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-urdf + - ros-noetic-xacro + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-control-msgs + - ros-noetic-controller-interface + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-hardware-interface + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-tf + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-draco-point-cloud-transport/bld_catkin.bat b/recipes/ros-noetic-draco-point-cloud-transport/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-draco-point-cloud-transport/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-draco-point-cloud-transport/build_catkin.sh b/recipes/ros-noetic-draco-point-cloud-transport/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-draco-point-cloud-transport/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-draco-point-cloud-transport/recipe.yaml b/recipes/ros-noetic-draco-point-cloud-transport/recipe.yaml new file mode 100644 index 000000000..792a47792 --- /dev/null +++ b/recipes/ros-noetic-draco-point-cloud-transport/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-draco-point-cloud-transport + version: 1.0.5 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/point_cloud_transport_plugins.git + git_rev: release/noetic/draco_point_cloud_transport/1.0.5-1 + folder: ros-noetic-draco-point-cloud-transport/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - draco + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cras-cpp-common + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-generation + - ros-noetic-pluginlib + - ros-noetic-point-cloud-transport + - ros-noetic-roslint + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - draco + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cras-cpp-common + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-point-cloud-transport + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-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..4d769ffb5 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..9a7234f1a --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-message-generation + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-rostest + - ros-noetic-std-msgs + run: + - boost-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-dynamic-robot-state-publisher/bld_catkin.bat b/recipes/ros-noetic-dynamic-robot-state-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-dynamic-robot-state-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-dynamic-robot-state-publisher/build_catkin.sh b/recipes/ros-noetic-dynamic-robot-state-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-dynamic-robot-state-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-dynamic-robot-state-publisher/recipe.yaml b/recipes/ros-noetic-dynamic-robot-state-publisher/recipe.yaml new file mode 100644 index 000000000..d35f0a647 --- /dev/null +++ b/recipes/ros-noetic-dynamic-robot-state-publisher/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-dynamic-robot-state-publisher + version: 1.2.0 +source: + git_url: https://github.com/peci1/dynamic_robot_state_publisher-release.git + git_rev: release/noetic/dynamic_robot_state_publisher/1.2.0-1 + folder: ros-noetic-dynamic-robot-state-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-kdl-parser + - ros-noetic-robot-state-publisher + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-kdl-parser + - ros-noetic-robot-state-publisher + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-dynamic-tf-publisher/bld_catkin.bat b/recipes/ros-noetic-dynamic-tf-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-dynamic-tf-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-dynamic-tf-publisher/build_catkin.sh b/recipes/ros-noetic-dynamic-tf-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-dynamic-tf-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-dynamic-tf-publisher/recipe.yaml b/recipes/ros-noetic-dynamic-tf-publisher/recipe.yaml new file mode 100644 index 000000000..88a56762f --- /dev/null +++ b/recipes/ros-noetic-dynamic-tf-publisher/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-dynamic-tf-publisher + version: 2.2.12 +source: + git_url: https://github.com/tork-a/jsk_common-release.git + git_rev: release/noetic/dynamic_tf_publisher/2.2.12-1 + folder: ros-noetic-dynamic-tf-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-generation + - ros-noetic-rospy + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-rospy + - ros-noetic-tf + - 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..0809c0602 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-ecl-core/bld_catkin.bat b/recipes/ros-noetic-ecl-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ecl-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-ecl-core/build_catkin.sh b/recipes/ros-noetic-ecl-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ecl-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-ecl-core/recipe.yaml b/recipes/ros-noetic-ecl-core/recipe.yaml new file mode 100644 index 000000000..e5230b994 --- /dev/null +++ b/recipes/ros-noetic-ecl-core/recipe.yaml @@ -0,0 +1,92 @@ +package: + name: ros-noetic-ecl-core + version: 0.62.3 +source: + git_url: https://github.com/yujinrobot-release/ecl_core-release.git + git_rev: release/noetic/ecl_core/0.62.3-1 + folder: ros-noetic-ecl-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-ecl-command-line + - ros-noetic-ecl-concepts + - ros-noetic-ecl-containers + - ros-noetic-ecl-converters + - ros-noetic-ecl-core-apps + - ros-noetic-ecl-devices + - ros-noetic-ecl-eigen + - ros-noetic-ecl-exceptions + - ros-noetic-ecl-formatters + - ros-noetic-ecl-geometry + - ros-noetic-ecl-ipc + - ros-noetic-ecl-linear-algebra + - ros-noetic-ecl-math + - ros-noetic-ecl-mpl + - ros-noetic-ecl-sigslots + - ros-noetic-ecl-statistics + - ros-noetic-ecl-streams + - ros-noetic-ecl-threads + - ros-noetic-ecl-time + - ros-noetic-ecl-type-traits + - ros-noetic-ecl-utilities + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-ecl-command-line + - ros-noetic-ecl-concepts + - ros-noetic-ecl-containers + - ros-noetic-ecl-converters + - ros-noetic-ecl-core-apps + - ros-noetic-ecl-devices + - ros-noetic-ecl-eigen + - ros-noetic-ecl-exceptions + - ros-noetic-ecl-formatters + - ros-noetic-ecl-geometry + - ros-noetic-ecl-ipc + - ros-noetic-ecl-linear-algebra + - ros-noetic-ecl-math + - ros-noetic-ecl-mpl + - ros-noetic-ecl-sigslots + - ros-noetic-ecl-statistics + - ros-noetic-ecl-streams + - ros-noetic-ecl-threads + - ros-noetic-ecl-time + - ros-noetic-ecl-type-traits + - ros-noetic-ecl-utilities + - 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..7be50ab8c --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-electronic-io/bld_catkin.bat b/recipes/ros-noetic-electronic-io/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-electronic-io/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-electronic-io/build_catkin.sh b/recipes/ros-noetic-electronic-io/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-electronic-io/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-electronic-io/recipe.yaml b/recipes/ros-noetic-electronic-io/recipe.yaml new file mode 100644 index 000000000..745f4b467 --- /dev/null +++ b/recipes/ros-noetic-electronic-io/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-electronic-io + version: 1.0.3 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/electronic-io.git + git_rev: release/noetic/electronic_io/1.0.3-1 + folder: ros-noetic-electronic-io/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roslint + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cras-msgs + - ros-noetic-electronic-io-msgs + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-srvs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-executive-smach/bld_catkin.bat b/recipes/ros-noetic-executive-smach/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-executive-smach/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-executive-smach/build_catkin.sh b/recipes/ros-noetic-executive-smach/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-executive-smach/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-executive-smach/recipe.yaml b/recipes/ros-noetic-executive-smach/recipe.yaml new file mode 100644 index 000000000..31931a4a1 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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-face-detector/bld_catkin.bat b/recipes/ros-noetic-face-detector/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-face-detector/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-face-detector/build_catkin.sh b/recipes/ros-noetic-face-detector/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-face-detector/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-face-detector/patch/ros-noetic-face-detector.patch b/recipes/ros-noetic-face-detector/patch/ros-noetic-face-detector.patch new file mode 100644 index 000000000..4651ccde0 --- /dev/null +++ b/recipes/ros-noetic-face-detector/patch/ros-noetic-face-detector.patch @@ -0,0 +1,45 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e865b87..94b2d79 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -22,6 +22,8 @@ find_package(catkin REQUIRED COMPONENTS + tf + ) + ++find_package(yaml-cpp REQUIRED) ++ + find_package(Boost REQUIRED COMPONENTS system thread) + find_package(OpenCV) + +@@ -57,6 +59,7 @@ include_directories( + ${Boost_INCLUDE_DIRS} + ${OpenCV_INCLUDE_DIRS} + ${catkin_INCLUDE_DIRS} ++ ${YAML_INCLUDE_DIRS} + ) + + add_executable(face_detector +@@ -64,7 +67,7 @@ add_executable(face_detector + src/faces.cpp) + add_dependencies(face_detector ${catkin_EXPORTED_TARGETS} ${${PROJECT_NAME}_EXPORTED_TARGETS}) + target_link_libraries(face_detector +- yaml-cpp ++ ${YAML_CPP_LIBRARIES} + ${catkin_LIBRARIES} + ${Boost_LIBRARIES} + ${OpenCV_LIBRARIES}) +diff --git a/src/face_detection.cpp b/src/face_detection.cpp +index 7cf7f3c0..a2132a72 100644 +--- a/src/face_detection.cpp ++++ b/src/face_detection.cpp +@@ -716,7 +716,9 @@ class FaceDetector + else + { + max_id_++; +- pos.object_id = static_cast(&(std::ostringstream() << max_id_))->str(); ++ std::ostringstream oss; ++ oss << max_id_; ++ pos.object_id = oss.str(); + ROS_INFO_STREAM_NAMED("face_detector", "Didn't find face to match, starting new ID " << pos.object_id); + } + result_.face_positions.push_back(pos); diff --git a/recipes/ros-noetic-face-detector/recipe.yaml b/recipes/ros-noetic-face-detector/recipe.yaml new file mode 100644 index 000000000..e2d4fae1b --- /dev/null +++ b/recipes/ros-noetic-face-detector/recipe.yaml @@ -0,0 +1,97 @@ +package: + name: ros-noetic-face-detector + version: 1.4.2 +source: + git_url: https://github.com/OSUrobotics/people-release.git + git_rev: release/noetic/face_detector/1.4.2-1 + folder: ros-noetic-face-detector/src/work + patches: + - patch/ros-noetic-face-detector.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-people-msgs + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-roslaunch + - ros-noetic-roslib + - ros-noetic-roslint + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-stereo-image-proc + - ros-noetic-stereo-msgs + - ros-noetic-tf + - yaml-cpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-people-msgs + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-stereo-image-proc + - ros-noetic-stereo-msgs + - ros-noetic-tf + - yaml-cpp + - 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..fb7d1719d --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..f3f10ab29 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-find-object-2d/bld_catkin.bat b/recipes/ros-noetic-find-object-2d/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-find-object-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-find-object-2d/build_catkin.sh b/recipes/ros-noetic-find-object-2d/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-find-object-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-find-object-2d/recipe.yaml b/recipes/ros-noetic-find-object-2d/recipe.yaml new file mode 100644 index 000000000..699fd3a14 --- /dev/null +++ b/recipes/ros-noetic-find-object-2d/recipe.yaml @@ -0,0 +1,85 @@ +package: + name: ros-noetic-find-object-2d + version: 0.7.0 +source: + git_url: https://github.com/introlab/find_object_2d-release.git + git_rev: release/noetic/find_object_2d/0.7.0-2 + folder: ros-noetic-find-object-2d/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-message-filters + - ros-noetic-message-generation + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-message-runtime + - 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') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext 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..cc111da03 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..83fe74105 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-franka-description/bld_catkin.bat b/recipes/ros-noetic-franka-description/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-franka-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-franka-description/build_catkin.sh b/recipes/ros-noetic-franka-description/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-franka-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-franka-description/recipe.yaml b/recipes/ros-noetic-franka-description/recipe.yaml new file mode 100644 index 000000000..1b3c363a3 --- /dev/null +++ b/recipes/ros-noetic-franka-description/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-franka-description + version: 0.10.1 +source: + git_url: https://github.com/frankaemika/franka_ros-release.git + git_rev: release/noetic/franka_description/0.10.1-1 + folder: ros-noetic-franka-description/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..10732a8e6 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-trajectory-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-trajectory-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-plugins/bld_catkin.bat b/recipes/ros-noetic-gazebo-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-plugins/build_catkin.sh b/recipes/ros-noetic-gazebo-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.linux.patch b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.linux.patch new file mode 100644 index 000000000..6e08c556b --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.linux.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 389e8719..7026671b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,6 +3,8 @@ project(gazebo_plugins) + + option(ENABLE_DISPLAY_TESTS "Enable the building of tests that requires a display" OFF) + ++add_compile_options(-Wall) ++ + find_package(catkin REQUIRED COMPONENTS + gazebo_dev + message_generation diff --git a/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.patch b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.patch new file mode 100644 index 000000000..c8fcde64c --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/patch/ros-noetic-gazebo-plugins.patch @@ -0,0 +1,13 @@ +diff --git a/gazebo_plugins/CMakeLists.txt b/gazebo_plugins/CMakeLists.txt +index 38c94d1d1..29e421a71 100644 +--- a/gazebo_plugins/CMakeLists.txt ++++ b/gazebo_plugins/CMakeLists.txt +@@ -313,7 +313,7 @@ add_library(gazebo_ros_skid_steer_drive src/gazebo_ros_skid_steer_drive.cpp) + target_link_libraries(gazebo_ros_skid_steer_drive ${catkin_LIBRARIES} ${Boost_LIBRARIES}) + + add_library(gazebo_ros_video src/gazebo_ros_video.cpp) +-target_link_libraries(gazebo_ros_video ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${OGRE_LIBRARIES} ${opencv_LIBRARIES}) ++target_link_libraries(gazebo_ros_video ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${OGRE_LIBRARIES} ${OpenCV_LIBRARIES}) + + add_library(gazebo_ros_planar_move src/gazebo_ros_planar_move.cpp) + target_link_libraries(gazebo_ros_planar_move ${catkin_LIBRARIES} ${Boost_LIBRARIES}) diff --git a/recipes/ros-noetic-gazebo-plugins/recipe.yaml b/recipes/ros-noetic-gazebo-plugins/recipe.yaml new file mode 100644 index 000000000..6f6f7c573 --- /dev/null +++ b/recipes/ros-noetic-gazebo-plugins/recipe.yaml @@ -0,0 +1,108 @@ +package: + name: ros-noetic-gazebo-plugins + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_plugins/2.9.2-1 + folder: ros-noetic-gazebo-plugins/src/work + patches: + - patch/ros-noetic-gazebo-plugins.patch + - patch/ros-noetic-gazebo-plugins.linux.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-camera-info-manager + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-dev + - ros-noetic-gazebo-msgs + - ros-noetic-gazebo-ros + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-polled-camera + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - tbb + - tbb-devel + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-camera-info-manager + - ros-noetic-cv-bridge + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-dev + - ros-noetic-gazebo-msgs + - ros-noetic-gazebo-ros + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-polled-camera + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-ros-control/bld_catkin.bat b/recipes/ros-noetic-gazebo-ros-control/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-control/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-ros-control/build_catkin.sh b/recipes/ros-noetic-gazebo-ros-control/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-control/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-ros-control/recipe.yaml b/recipes/ros-noetic-gazebo-ros-control/recipe.yaml new file mode 100644 index 000000000..8b4374248 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros-control/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-gazebo-ros-control + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_ros_control/2.9.2-1 + folder: ros-noetic-gazebo-ros-control/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..885a99f7e --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-gazebo-dev + - ros-noetic-gazebo-msgs + - ros-noetic-gazebo-plugins + - ros-noetic-gazebo-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gazebo-ros/bld_catkin.bat b/recipes/ros-noetic-gazebo-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gazebo-ros/build_catkin.sh b/recipes/ros-noetic-gazebo-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gazebo-ros/recipe.yaml b/recipes/ros-noetic-gazebo-ros/recipe.yaml new file mode 100644 index 000000000..14d7fed81 --- /dev/null +++ b/recipes/ros-noetic-gazebo-ros/recipe.yaml @@ -0,0 +1,75 @@ +package: + name: ros-noetic-gazebo-ros + version: 2.9.2 +source: + git_url: https://github.com/ros-gbp/gazebo_ros_pkgs-release.git + git_rev: release/noetic/gazebo_ros/2.9.2-1 + folder: ros-noetic-gazebo-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..744f98846 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..8b4bfac6a --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..c84ba7178 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..55bd0cd53 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..47b7eeacf --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-gmapping/bld_catkin.bat b/recipes/ros-noetic-gmapping/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gmapping/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gmapping/build_catkin.sh b/recipes/ros-noetic-gmapping/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gmapping/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gmapping/patch/ros-noetic-gmapping.patch b/recipes/ros-noetic-gmapping/patch/ros-noetic-gmapping.patch new file mode 100644 index 000000000..fc1a6294f --- /dev/null +++ b/recipes/ros-noetic-gmapping/patch/ros-noetic-gmapping.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 04f3c8d..c4ea9c2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,7 +3,7 @@ project(gmapping) + + find_package(catkin REQUIRED nav_msgs nodelet openslam_gmapping roscpp tf rosbag_storage) + +-find_package(Boost REQUIRED) ++find_package(Boost COMPONENTS thread system program_options REQUIRED) + + include_directories(${Boost_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS}) + diff --git a/recipes/ros-noetic-gmapping/recipe.yaml b/recipes/ros-noetic-gmapping/recipe.yaml new file mode 100644 index 000000000..7da574e26 --- /dev/null +++ b/recipes/ros-noetic-gmapping/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-gmapping + version: 1.4.2 +source: + git_url: https://github.com/ros-gbp/slam_gmapping-release.git + git_rev: release/noetic/gmapping/1.4.2-1 + folder: ros-noetic-gmapping/src/work + patches: + - patch/ros-noetic-gmapping.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-openslam-gmapping + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-openslam-gmapping + - ros-noetic-roscpp + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-gps-common/bld_catkin.bat b/recipes/ros-noetic-gps-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-gps-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-gps-common/build_catkin.sh b/recipes/ros-noetic-gps-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-gps-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-gps-common/recipe.yaml b/recipes/ros-noetic-gps-common/recipe.yaml new file mode 100644 index 000000000..dda2b0e81 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-grid-map-cv/bld_catkin.bat b/recipes/ros-noetic-grid-map-cv/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-grid-map-cv/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-grid-map-cv/build_catkin.sh b/recipes/ros-noetic-grid-map-cv/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-grid-map-cv/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-grid-map-cv/recipe.yaml b/recipes/ros-noetic-grid-map-cv/recipe.yaml new file mode 100644 index 000000000..5be653660 --- /dev/null +++ b/recipes/ros-noetic-grid-map-cv/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-grid-map-cv + version: 1.6.4 +source: + git_url: https://github.com/anybotics/grid_map-release.git + git_rev: release/noetic/grid_map_cv/1.6.4-1 + folder: ros-noetic-grid-map-cv/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - gtest + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-filters + - ros-noetic-grid-map-core + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-filters + - ros-noetic-grid-map-core + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-grid-map-ros/bld_catkin.bat b/recipes/ros-noetic-grid-map-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-grid-map-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-grid-map-ros/build_catkin.sh b/recipes/ros-noetic-grid-map-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-grid-map-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-grid-map-ros/recipe.yaml b/recipes/ros-noetic-grid-map-ros/recipe.yaml new file mode 100644 index 000000000..9727d17c1 --- /dev/null +++ b/recipes/ros-noetic-grid-map-ros/recipe.yaml @@ -0,0 +1,75 @@ +package: + name: ros-noetic-grid-map-ros + version: 1.6.4 +source: + git_url: https://github.com/anybotics/grid_map-release.git + git_rev: release/noetic/grid_map_ros/1.6.4-1 + folder: ros-noetic-grid-map-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - gtest + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-grid-map-core + - ros-noetic-grid-map-cv + - ros-noetic-grid-map-msgs + - ros-noetic-nav-msgs + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-grid-map-core + - ros-noetic-grid-map-cv + - ros-noetic-grid-map-msgs + - ros-noetic-nav-msgs + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - 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-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..309676082 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-handeye/bld_catkin.bat b/recipes/ros-noetic-handeye/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-handeye/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-handeye/build_catkin.sh b/recipes/ros-noetic-handeye/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-handeye/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-handeye/recipe.yaml b/recipes/ros-noetic-handeye/recipe.yaml new file mode 100644 index 000000000..3c6b003bb --- /dev/null +++ b/recipes/ros-noetic-handeye/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-handeye + version: 0.1.2 +source: + git_url: https://github.com/crigroup/handeye-release.git + git_rev: release/noetic/handeye/0.1.2-2 + folder: ros-noetic-handeye/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-rostest + - ros-noetic-std-msgs + run: + - matplotlib-base + - numpy + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-baldor + - ros-noetic-criutils + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-std-msgs + - scipy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-hector-gazebo-plugins/bld_catkin.bat b/recipes/ros-noetic-hector-gazebo-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-hector-gazebo-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-hector-gazebo-plugins/build_catkin.sh b/recipes/ros-noetic-hector-gazebo-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-hector-gazebo-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-hector-gazebo-plugins/recipe.yaml b/recipes/ros-noetic-hector-gazebo-plugins/recipe.yaml new file mode 100644 index 000000000..5e75b5b5d --- /dev/null +++ b/recipes/ros-noetic-hector-gazebo-plugins/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-hector-gazebo-plugins + version: 0.5.4 +source: + git_url: https://github.com/tu-darmstadt-ros-pkg-gbp/hector_gazebo-release.git + git_rev: release/noetic/hector_gazebo_plugins/0.5.4-1 + folder: ros-noetic-hector-gazebo-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-dev + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + run: + - gazebo + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-gazebo-ros + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-hector-mapping/bld_catkin.bat b/recipes/ros-noetic-hector-mapping/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-hector-mapping/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-hector-mapping/build_catkin.sh b/recipes/ros-noetic-hector-mapping/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-hector-mapping/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-hector-mapping/recipe.yaml b/recipes/ros-noetic-hector-mapping/recipe.yaml new file mode 100644 index 000000000..718ad472c --- /dev/null +++ b/recipes/ros-noetic-hector-mapping/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-hector-mapping + version: 0.5.2 +source: + git_url: https://github.com/tu-darmstadt-ros-pkg-gbp/hector_slam-release.git + git_rev: release/noetic/hector_mapping/0.5.2-4 + folder: ros-noetic-hector-mapping/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-catkin + - ros-noetic-laser-geometry + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-roscpp + - ros-noetic-tf + - ros-noetic-visualization-msgs + run: + - boost + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-laser-geometry + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - 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-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..8ebf8b1a1 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..b482fba68 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-husky-navigation/bld_catkin.bat b/recipes/ros-noetic-husky-navigation/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-husky-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-husky-navigation/build_catkin.sh b/recipes/ros-noetic-husky-navigation/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-husky-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-husky-navigation/recipe.yaml b/recipes/ros-noetic-husky-navigation/recipe.yaml new file mode 100644 index 000000000..97161179f --- /dev/null +++ b/recipes/ros-noetic-husky-navigation/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-husky-navigation + version: 0.6.9 +source: + git_url: https://github.com/clearpath-gbp/husky-release.git + git_rev: release/noetic/husky_navigation/0.6.9-1 + folder: ros-noetic-husky-navigation/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-amcl + - ros-noetic-base-local-planner + - ros-noetic-catkin + - ros-noetic-dwa-local-planner + - ros-noetic-gmapping + - ros-noetic-map-server + - ros-noetic-move-base + - ros-noetic-navfn + - ros-noetic-roslaunch + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-amcl + - ros-noetic-base-local-planner + - ros-noetic-dwa-local-planner + - ros-noetic-gmapping + - ros-noetic-map-server + - ros-noetic-move-base + - ros-noetic-navfn + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-common/bld_catkin.bat b/recipes/ros-noetic-image-common/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-common/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-common/build_catkin.sh b/recipes/ros-noetic-image-common/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-common/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-common/recipe.yaml b/recipes/ros-noetic-image-common/recipe.yaml new file mode 100644 index 000000000..e75e44cd0 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..8540becbd --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..75de6c05c --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..f775c6baa --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..8d0590015 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..fdff3b148 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-transport-codecs/bld_catkin.bat b/recipes/ros-noetic-image-transport-codecs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-transport-codecs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-transport-codecs/build_catkin.sh b/recipes/ros-noetic-image-transport-codecs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-transport-codecs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-transport-codecs/recipe.yaml b/recipes/ros-noetic-image-transport-codecs/recipe.yaml new file mode 100644 index 000000000..abcb61d2f --- /dev/null +++ b/recipes/ros-noetic-image-transport-codecs/recipe.yaml @@ -0,0 +1,76 @@ +package: + name: ros-noetic-image-transport-codecs + version: 2.3.8 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/ros-utils.git + git_rev: release/noetic/image_transport_codecs/2.3.8-1 + folder: ros-noetic-image-transport-codecs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - libjpeg-turbo + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-class-loader + - ros-noetic-compressed-depth-image-transport + - ros-noetic-compressed-image-transport + - ros-noetic-cras-cpp-common + - ros-noetic-cras-topic-tools + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-pluginlib + - ros-noetic-rosbag + - ros-noetic-roslint + - ros-noetic-sensor-msgs + - ros-noetic-theora-image-transport + - ros-noetic-topic-tools + run: + - libjpeg-turbo + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-class-loader + - ros-noetic-compressed-depth-image-transport + - ros-noetic-compressed-image-transport + - ros-noetic-cras-cpp-common + - ros-noetic-cras-topic-tools + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-pluginlib + - ros-noetic-sensor-msgs + - ros-noetic-theora-image-transport + - ros-noetic-topic-tools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-image-transport-plugins/bld_catkin.bat b/recipes/ros-noetic-image-transport-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-transport-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-image-transport-plugins/build_catkin.sh b/recipes/ros-noetic-image-transport-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-transport-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-image-transport-plugins/recipe.yaml b/recipes/ros-noetic-image-transport-plugins/recipe.yaml new file mode 100644 index 000000000..64c804b5c --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..458acf482 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..100eab7c8 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-image-view2/bld_catkin.bat b/recipes/ros-noetic-image-view2/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-image-view2/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%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-view2/build_catkin.sh b/recipes/ros-noetic-image-view2/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-image-view2/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${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-view2/recipe.yaml b/recipes/ros-noetic-image-view2/recipe.yaml new file mode 100644 index 000000000..98ad7a963 --- /dev/null +++ b/recipes/ros-noetic-image-view2/recipe.yaml @@ -0,0 +1,91 @@ +package: + name: ros-noetic-image-view2 + version: 2.2.12 +source: + git_url: https://github.com/tork-a/jsk_common-release.git + git_rev: release/noetic/image_view2/2.2.12-1 + folder: ros-noetic-image-view2/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-image-view + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-pcl-ros + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - scipy + - 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-geometry + - ros-noetic-image-transport + - ros-noetic-image-view + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-pcl-ros + - 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') }} + - 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..244daf361 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..a583c2a07 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..39807ec30 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..e0b80cf92 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-imu-complementary-filter + - ros-noetic-imu-filter-madgwick + - ros-noetic-rviz-imu-plugin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-imu-complementary-filter + - ros-noetic-imu-filter-madgwick + - ros-noetic-rviz-imu-plugin + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-imu-transformer/bld_catkin.bat b/recipes/ros-noetic-imu-transformer/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-imu-transformer/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-imu-transformer/build_catkin.sh b/recipes/ros-noetic-imu-transformer/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-imu-transformer/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-imu-transformer/recipe.yaml b/recipes/ros-noetic-imu-transformer/recipe.yaml new file mode 100644 index 000000000..99b758ce2 --- /dev/null +++ b/recipes/ros-noetic-imu-transformer/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-imu-transformer + version: 0.3.1 +source: + git_url: https://github.com/ros-gbp/imu_pipeline-release.git + git_rev: release/noetic/imu_transformer/0.3.1-1 + folder: ros-noetic-imu-transformer/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-roslaunch + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-topic-tools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-topic-tools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-interactive-marker-tutorials/bld_catkin.bat b/recipes/ros-noetic-interactive-marker-tutorials/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-tutorials/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-interactive-marker-tutorials/build_catkin.sh b/recipes/ros-noetic-interactive-marker-tutorials/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-tutorials/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-interactive-marker-tutorials/patch/ros-noetic-interactive-marker-tutorials.patch b/recipes/ros-noetic-interactive-marker-tutorials/patch/ros-noetic-interactive-marker-tutorials.patch new file mode 100644 index 000000000..31758ea76 --- /dev/null +++ b/recipes/ros-noetic-interactive-marker-tutorials/patch/ros-noetic-interactive-marker-tutorials.patch @@ -0,0 +1,45 @@ +diff --git a/scripts/menu.py b/scripts/menu.py +index e2d1854..dc93108 100755 +--- a/scripts/menu.py ++++ b/scripts/menu.py +@@ -29,6 +29,8 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + """ + ++from __future__ import print_function ++ + import rospy + + from interactive_markers.interactive_marker_server import * +@@ -68,7 +70,7 @@ def modeCb(feedback): + + rospy.loginfo("Switching to menu entry #" + str(h_mode_last)) + menu_handler.reApply( server ) +- print "DONE" ++ print("DONE") + server.applyChanges() + + def makeBox( msg ): +diff --git a/scripts/simple_marker.py b/scripts/simple_marker.py +index fe44c12..0d13c9a 100755 +--- a/scripts/simple_marker.py ++++ b/scripts/simple_marker.py +@@ -29,6 +29,8 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + """ + ++from __future__ import print_function ++ + import rospy + + from interactive_markers.interactive_marker_server import * +@@ -36,7 +38,7 @@ from visualization_msgs.msg import * + + def processFeedback(feedback): + p = feedback.pose.position +- print feedback.marker_name + " is now at " + str(p.x) + ", " + str(p.y) + ", " + str(p.z) ++ print(feedback.marker_name + " is now at " + str(p.x) + ", " + str(p.y) + ", " + str(p.z)) + + if __name__=="__main__": + rospy.init_node("simple_marker") + diff --git a/recipes/ros-noetic-interactive-marker-tutorials/recipe.yaml b/recipes/ros-noetic-interactive-marker-tutorials/recipe.yaml new file mode 100644 index 000000000..4b9d2a835 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..2103a48e5 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..2a5c68681 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..0a723e73d --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..1c24163b6 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..2f84b1ba9 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..3d0a9ee8b --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-code-coverage + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - ros-noetic-xacro + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-angles + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-trajectory-msgs + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-joy-teleop/bld_catkin.bat b/recipes/ros-noetic-joy-teleop/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-joy-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-joy-teleop/build_catkin.sh b/recipes/ros-noetic-joy-teleop/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-joy-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-joy-teleop/recipe.yaml b/recipes/ros-noetic-joy-teleop/recipe.yaml new file mode 100644 index 000000000..22a8e4aae --- /dev/null +++ b/recipes/ros-noetic-joy-teleop/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-joy-teleop + version: 0.5.0 +source: + git_url: https://github.com/ros-gbp/teleop_tools-release.git + git_rev: release/noetic/joy_teleop/0.5.0-1 + folder: ros-noetic-joy-teleop/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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-rospy + - ros-noetic-rosservice + - ros-noetic-rostopic + - ros-noetic-sensor-msgs + - ros-noetic-teleop-tools-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-joy/bld_catkin.bat b/recipes/ros-noetic-joy/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-joy/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-joy/build_catkin.sh b/recipes/ros-noetic-joy/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-joy/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-joy/recipe.yaml b/recipes/ros-noetic-joy/recipe.yaml new file mode 100644 index 000000000..78a1e42df --- /dev/null +++ b/recipes/ros-noetic-joy/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-joy + version: 1.15.1 +source: + git_url: https://github.com/ros-gbp/joystick_drivers-release.git + git_rev: release/noetic/joy/1.15.1-1 + folder: ros-noetic-joy/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-updater + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-updater + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-jsk-data/bld_catkin.bat b/recipes/ros-noetic-jsk-data/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-jsk-data/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-jsk-data/build_catkin.sh b/recipes/ros-noetic-jsk-data/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-jsk-data/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-jsk-data/recipe.yaml b/recipes/ros-noetic-jsk-data/recipe.yaml new file mode 100644 index 000000000..817ae740e --- /dev/null +++ b/recipes/ros-noetic-jsk-data/recipe.yaml @@ -0,0 +1,73 @@ +package: + name: ros-noetic-jsk-data + version: 2.2.12 +source: + git_url: https://github.com/tork-a/jsk_common-release.git + git_rev: release/noetic/jsk_data/2.2.12-1 + folder: ros-noetic-jsk-data/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - freezegun + - imageio + - nose + - 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-generation + - ros-noetic-roslaunch + - ros-noetic-roslint + - ros-noetic-rostest + run: + - click + - gdown + - paramiko + - python + - pyyaml + - ros-distro-mutex 0.5 noetic + - ros-noetic-depth-image-proc + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-jsk-topic-tools + - ros-noetic-message-runtime + - ros-noetic-nodelet + - ros-noetic-rosbag + - ros-noetic-rqt-bag + - 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-jsk-gui-msgs/bld_catkin.bat b/recipes/ros-noetic-jsk-gui-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-jsk-gui-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-jsk-gui-msgs/build_catkin.sh b/recipes/ros-noetic-jsk-gui-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-jsk-gui-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-jsk-gui-msgs/recipe.yaml b/recipes/ros-noetic-jsk-gui-msgs/recipe.yaml new file mode 100644 index 000000000..45ecd2967 --- /dev/null +++ b/recipes/ros-noetic-jsk-gui-msgs/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-jsk-gui-msgs + version: 4.3.2 +source: + git_url: https://github.com/tork-a/jsk_common_msgs-release.git + git_rev: release/noetic/jsk_gui_msgs/4.3.2-1 + folder: ros-noetic-jsk-gui-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-sensor-msgs + - ros-noetic-std-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 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-jsk-interactive-marker/bld_catkin.bat b/recipes/ros-noetic-jsk-interactive-marker/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-jsk-interactive-marker/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-jsk-interactive-marker/build_catkin.sh b/recipes/ros-noetic-jsk-interactive-marker/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-jsk-interactive-marker/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-jsk-interactive-marker/recipe.yaml b/recipes/ros-noetic-jsk-interactive-marker/recipe.yaml new file mode 100644 index 000000000..bed1cf7c4 --- /dev/null +++ b/recipes/ros-noetic-jsk-interactive-marker/recipe.yaml @@ -0,0 +1,115 @@ +package: + name: ros-noetic-jsk-interactive-marker + version: 2.1.8 +source: + git_url: https://github.com/tork-a/jsk_visualization-release.git + git_rev: release/noetic/jsk_interactive_marker/2.1.8-1 + folder: ros-noetic-jsk-interactive-marker/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-actionlib + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-dynamic-reconfigure + - ros-noetic-dynamic-tf-publisher + - ros-noetic-eigen-conversions + - ros-noetic-geometry-msgs + - ros-noetic-interactive-markers + - ros-noetic-jsk-footstep-msgs + - ros-noetic-jsk-recognition-msgs + - ros-noetic-jsk-recognition-utils + - ros-noetic-jsk-rviz-plugins + - ros-noetic-jsk-topic-tools + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-mk + - ros-noetic-moveit-msgs + - ros-noetic-rosbuild + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rviz + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf-conversions + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - tinyxml + - yaml-cpp + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-dynamic-reconfigure + - ros-noetic-dynamic-tf-publisher + - ros-noetic-eigen-conversions + - ros-noetic-geometry-msgs + - ros-noetic-interactive-markers + - ros-noetic-jsk-footstep-msgs + - ros-noetic-jsk-recognition-msgs + - ros-noetic-jsk-recognition-utils + - ros-noetic-jsk-rviz-plugins + - ros-noetic-jsk-topic-tools + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-moveit-msgs + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rviz + - ros-noetic-sensor-msgs + - ros-noetic-tf + - ros-noetic-tf-conversions + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - tinyxml + - 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-jsk-interactive-test/bld_catkin.bat b/recipes/ros-noetic-jsk-interactive-test/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-jsk-interactive-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-jsk-interactive-test/build_catkin.sh b/recipes/ros-noetic-jsk-interactive-test/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-jsk-interactive-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-jsk-interactive-test/recipe.yaml b/recipes/ros-noetic-jsk-interactive-test/recipe.yaml new file mode 100644 index 000000000..5829b634c --- /dev/null +++ b/recipes/ros-noetic-jsk-interactive-test/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-jsk-interactive-test + version: 2.1.8 +source: + git_url: https://github.com/tork-a/jsk_visualization-release.git + git_rev: release/noetic/jsk_interactive_test/2.1.8-1 + folder: ros-noetic-jsk-interactive-test/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-jsk-interactive + - ros-noetic-jsk-interactive-marker + - ros-noetic-mk + - ros-noetic-rosbuild + - ros-noetic-rospy + - ros-noetic-rviz + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-jsk-interactive + - ros-noetic-jsk-interactive-marker + - ros-noetic-rospy + - ros-noetic-rviz + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-jsk-interactive/bld_catkin.bat b/recipes/ros-noetic-jsk-interactive/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-jsk-interactive/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-jsk-interactive/build_catkin.sh b/recipes/ros-noetic-jsk-interactive/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-jsk-interactive/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-jsk-interactive/recipe.yaml b/recipes/ros-noetic-jsk-interactive/recipe.yaml new file mode 100644 index 000000000..2084afa8b --- /dev/null +++ b/recipes/ros-noetic-jsk-interactive/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-jsk-interactive + version: 2.1.8 +source: + git_url: https://github.com/tork-a/jsk_visualization-release.git + git_rev: release/noetic/jsk_interactive/2.1.8-1 + folder: ros-noetic-jsk-interactive/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-dynamic-tf-publisher + - ros-noetic-geometry-msgs + - ros-noetic-jsk-interactive-marker + - ros-noetic-mk + - ros-noetic-rosbuild + - ros-noetic-rospy + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-dynamic-tf-publisher + - ros-noetic-geometry-msgs + - ros-noetic-jsk-interactive-marker + - ros-noetic-rospy + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-jsk-network-tools/bld_catkin.bat b/recipes/ros-noetic-jsk-network-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-jsk-network-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-jsk-network-tools/build_catkin.sh b/recipes/ros-noetic-jsk-network-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-jsk-network-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-jsk-network-tools/recipe.yaml b/recipes/ros-noetic-jsk-network-tools/recipe.yaml new file mode 100644 index 000000000..d9e9c6978 --- /dev/null +++ b/recipes/ros-noetic-jsk-network-tools/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-jsk-network-tools + version: 2.2.12 +source: + git_url: https://github.com/tork-a/jsk_common-release.git + git_rev: release/noetic/jsk_network_tools/2.2.12-1 + folder: ros-noetic-jsk-network-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-dynamic-reconfigure + - ros-noetic-message-generation + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-runtime + - 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-jsk-recognition-msgs/bld_catkin.bat b/recipes/ros-noetic-jsk-recognition-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-jsk-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-jsk-recognition-msgs/build_catkin.sh b/recipes/ros-noetic-jsk-recognition-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-jsk-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-jsk-recognition-msgs/patch/ros-noetic-jsk-recognition-msgs.patch b/recipes/ros-noetic-jsk-recognition-msgs/patch/ros-noetic-jsk-recognition-msgs.patch new file mode 100644 index 000000000..0955ee2f6 --- /dev/null +++ b/recipes/ros-noetic-jsk-recognition-msgs/patch/ros-noetic-jsk-recognition-msgs.patch @@ -0,0 +1,16 @@ +diff --git a/setup.py b/setup.py +index 90f8d8be6..372e2fed9 100644 +--- a/setup.py ++++ b/setup.py +@@ -9,9 +9,10 @@ d = generate_distutils_setup( + # Uncomment until src/jsk_recognition_msgs + # error: package directory 'jsk_recognition_msgs' does not exist + # [jsk_recognition_msgs:install] +- # packages=['jsk_recognition_msgs'], ++ packages=[], + # [jsk_recognition_msgs:install] error: package directory 'src/jsk_recognition_msgs' does not exist + # package_dir={'': 'src'}, ++ exclude = ['*'] + ) + + setup(**d) diff --git a/recipes/ros-noetic-jsk-recognition-msgs/recipe.yaml b/recipes/ros-noetic-jsk-recognition-msgs/recipe.yaml new file mode 100644 index 000000000..614bebe80 --- /dev/null +++ b/recipes/ros-noetic-jsk-recognition-msgs/recipe.yaml @@ -0,0 +1,65 @@ +package: + name: ros-noetic-jsk-recognition-msgs + version: 1.2.17 +source: + git_url: https://github.com/tork-a/jsk_recognition-release.git + git_rev: release/noetic/jsk_recognition_msgs/1.2.17-2 + folder: ros-noetic-jsk-recognition-msgs/src/work + patches: + - patch/ros-noetic-jsk-recognition-msgs.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-jsk-footstep-msgs + - ros-noetic-message-generation + - ros-noetic-pcl-msgs + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-jsk-footstep-msgs + - ros-noetic-message-generation + - ros-noetic-pcl-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-jsk-recognition-utils/bld_catkin.bat b/recipes/ros-noetic-jsk-recognition-utils/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-jsk-recognition-utils/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-jsk-recognition-utils/build_catkin.sh b/recipes/ros-noetic-jsk-recognition-utils/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-jsk-recognition-utils/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-jsk-recognition-utils/patch/ros-noetic-jsk-recognition-utils.patch b/recipes/ros-noetic-jsk-recognition-utils/patch/ros-noetic-jsk-recognition-utils.patch new file mode 100644 index 000000000..99c25b5f3 --- /dev/null +++ b/recipes/ros-noetic-jsk-recognition-utils/patch/ros-noetic-jsk-recognition-utils.patch @@ -0,0 +1,695 @@ +diff --git a/cmake/UseCython.cmake b/cmake/UseCython.cmake +index f432c890c..0a11631e5 100644 +--- a/cmake/UseCython.cmake ++++ b/cmake/UseCython.cmake +@@ -1,51 +1,83 @@ +-# Define a function to create Cython modules. ++#.rst: + # +-# For more information on the Cython project, see http://cython.org/. +-# "Cython is a language that makes writing C extensions for the Python language +-# as easy as Python itself." ++# The following functions are defined: + # +-# This file defines a CMake function to build a Cython Python module. +-# To use it, first include this file. ++# .. cmake:command:: add_cython_target + # +-# include( UseCython ) ++# Create a custom rule to generate the source code for a Python extension module ++# using cython. + # +-# Then call cython_add_module to create a module. ++# add_cython_target( [] ++# [EMBED_MAIN] ++# [C | CXX] ++# [PY2 | PY3] ++# [OUTPUT_VAR ]) + # +-# cython_add_module( ... ) ++# ```` is the name of the new target, and ```` ++# is the path to a cython source file. Note that, despite the name, no new ++# targets are created by this function. Instead, see ``OUTPUT_VAR`` for ++# retrieving the path to the generated source for subsequent targets. + # +-# To create a standalone executable, the function ++# If only ```` is provided, and it ends in the ".pyx" extension, then it ++# is assumed to be the ````. The name of the input without the ++# extension is used as the target name. If only ```` is provided, and it ++# does not end in the ".pyx" extension, then the ```` is assumed to ++# be ``.pyx``. + # +-# cython_add_standalone_executable( [MAIN_MODULE src1] ... ) ++# The Cython include search path is amended with any entries found in the ++# ``INCLUDE_DIRECTORIES`` property of the directory containing the ++# ```` file. Use ``include_directories`` to add to the Cython ++# include search path. + # +-# To avoid dependence on Python, set the PYTHON_LIBRARY cache variable to point +-# to a static library. If a MAIN_MODULE source is specified, +-# the "if __name__ == '__main__':" from that module is used as the C main() method +-# for the executable. If MAIN_MODULE, the source with the same basename as +-# is assumed to be the MAIN_MODULE. ++# Options: + # +-# Where is the name of the resulting Python module and +-# ... are source files to be compiled into the module, e.g. *.pyx, +-# *.py, *.c, *.cxx, etc. A CMake target is created with name . This can +-# be used for target_link_libraries(), etc. ++# ``EMBED_MAIN`` ++# Embed a main() function in the generated output (for stand-alone ++# applications that initialize their own Python runtime). + # +-# The sample paths set with the CMake include_directories() command will be used +-# for include directories to search for *.pxd when running the Cython complire. ++# ``C | CXX`` ++# Force the generation of either a C or C++ file. By default, a C file is ++# generated, unless the C language is not enabled for the project; in this ++# case, a C++ file is generated by default. + # +-# Cache variables that effect the behavior include: ++# ``PY2 | PY3`` ++# Force compilation using either Python-2 or Python-3 syntax and code ++# semantics. By default, Python-2 syntax and semantics are used if the major ++# version of Python found is 2. Otherwise, Python-3 syntax and semantics are ++# used. + # +-# CYTHON_ANNOTATE +-# CYTHON_NO_DOCSTRINGS +-# CYTHON_FLAGS ++# ``OUTPUT_VAR `` ++# Set the variable ```` in the parent scope to the path to the ++# generated source file. By default, ```` is used as the output ++# variable name. + # +-# Source file properties that effect the build process are ++# Defined variables: + # +-# CYTHON_IS_CXX ++# ```` ++# The path of the generated source file. + # +-# If this is set of a *.pyx file with CMake set_source_files_properties() +-# command, the file will be compiled as a C++ file. ++# Cache variables that affect the behavior include: ++# ++# ``CYTHON_ANNOTATE`` ++# Whether to create an annotated .html file when compiling. ++# ++# ``CYTHON_FLAGS`` ++# Additional flags to pass to the Cython compiler. ++# ++# Example usage ++# ^^^^^^^^^^^^^ ++# ++# .. code-block:: cmake ++# ++# find_package(Cython) ++# ++# # Note: In this case, either one of these arguments may be omitted; their ++# # value would have been inferred from that of the other. ++# add_cython_target(cy_code cy_code.pyx) ++# ++# add_library(cy_code MODULE ${cy_code}) ++# target_link_libraries(cy_code ...) + # +-# See also FindCython.cmake +- + #============================================================================= + # Copyright 2011 Kitware, Inc. + # +@@ -63,225 +95,290 @@ + #============================================================================= + + # Configuration options. +-set( CYTHON_ANNOTATE OFF +- CACHE BOOL "Create an annotated .html file when compiling *.pyx." ) +-set( CYTHON_NO_DOCSTRINGS OFF +- CACHE BOOL "Strip docstrings from the compiled module." ) +-set( CYTHON_FLAGS "" CACHE STRING +- "Extra flags to the cython compiler." ) +-mark_as_advanced( CYTHON_ANNOTATE CYTHON_NO_DOCSTRINGS CYTHON_FLAGS ) +- +-find_package( Cython REQUIRED ) +-find_package( PythonLibs REQUIRED ) +- +-set( CYTHON_CXX_EXTENSION "cxx" ) +-set( CYTHON_C_EXTENSION "c" ) +- +-# Create a *.c or *.cxx file from a *.pyx file. +-# Input the generated file basename. The generate file will put into the variable +-# placed in the "generated_file" argument. Finally all the *.py and *.pyx files. +-function( compile_pyx _name generated_file ) +- # Default to assuming all files are C. +- set( cxx_arg "" ) +- set( extension ${CYTHON_C_EXTENSION} ) +- set( pyx_lang "C" ) +- set( comment "Compiling Cython C source for ${_name}..." ) +- +- set( cython_include_directories "" ) +- set( pxd_dependencies "" ) +- set( c_header_dependencies "" ) +- set( pyx_locations "" ) +- +- foreach( pyx_file ${ARGN} ) +- get_filename_component( pyx_file_basename "${pyx_file}" NAME_WE ) +- +- # Determine if it is a C or C++ file. +- get_source_file_property( property_is_cxx ${pyx_file} CYTHON_IS_CXX ) +- if( ${property_is_cxx} ) +- set( cxx_arg "--cplus" ) +- set( extension ${CYTHON_CXX_EXTENSION} ) +- set( pyx_lang "CXX" ) +- set( comment "Compiling Cython CXX source for ${_name}..." ) +- endif() ++set(CYTHON_ANNOTATE OFF ++ CACHE BOOL "Create an annotated .html file when compiling *.pyx.") ++ ++set(CYTHON_FLAGS "" CACHE STRING ++ "Extra flags to the cython compiler.") ++mark_as_advanced(CYTHON_ANNOTATE CYTHON_FLAGS) ++ ++set(CYTHON_CXX_EXTENSION "cxx") ++set(CYTHON_C_EXTENSION "c") ++cmake_policy(SET CMP0057 NEW) ++ ++get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES) ++ ++function(add_cython_target _name) ++ set(options EMBED_MAIN C CXX PY2 PY3) ++ set(options1 OUTPUT_VAR) ++ cmake_parse_arguments(_args "${options}" "${options1}" "" ${ARGN}) ++ ++ list(GET _args_UNPARSED_ARGUMENTS 0 _arg0) ++ ++ # if provided, use _arg0 as the input file path ++ if(_arg0) ++ set(_source_file ${_arg0}) ++ ++ # otherwise, must determine source file from name, or vice versa ++ else() ++ get_filename_component(_name_ext "${_name}" EXT) ++ ++ # if extension provided, _name is the source file ++ if(_name_ext) ++ set(_source_file ${_name}) ++ get_filename_component(_name "${_source_file}" NAME_WE) + +- # Get the include directories. +- get_source_file_property( pyx_location ${pyx_file} LOCATION ) +- get_filename_component( pyx_path ${pyx_location} PATH ) +- get_directory_property( cmake_include_directories DIRECTORY ${pyx_path} INCLUDE_DIRECTORIES ) +- list( APPEND cython_include_directories ${cmake_include_directories} ) +- list( APPEND pyx_locations "${pyx_location}" ) +- +- # Determine dependencies. +- # Add the pxd file will the same name as the given pyx file. +- unset( corresponding_pxd_file CACHE ) +- find_file( corresponding_pxd_file ${pyx_file_basename}.pxd +- PATHS "${pyx_path}" ${cmake_include_directories} +- NO_DEFAULT_PATH ) +- if( corresponding_pxd_file ) +- list( APPEND pxd_dependencies "${corresponding_pxd_file}" ) ++ # otherwise, assume the source file is ${_name}.pyx ++ else() ++ set(_source_file ${_name}.pyx) + endif() ++ endif() + +- # pxd files to check for additional dependencies. +- set( pxds_to_check "${pyx_file}" "${pxd_dependencies}" ) +- set( pxds_checked "" ) +- set( number_pxds_to_check 1 ) +- while( ${number_pxds_to_check} GREATER 0 ) +- foreach( pxd ${pxds_to_check} ) +- list( APPEND pxds_checked "${pxd}" ) +- list( REMOVE_ITEM pxds_to_check "${pxd}" ) +- +- # check for C header dependencies +- file( STRINGS "${pxd}" extern_from_statements +- REGEX "cdef[ ]+extern[ ]+from.*$" ) +- foreach( statement ${extern_from_statements} ) +- # Had trouble getting the quote in the regex +- string( REGEX REPLACE "cdef[ ]+extern[ ]+from[ ]+[\"]([^\"]+)[\"].*" "\\1" header "${statement}" ) +- unset( header_location CACHE ) +- find_file( header_location ${header} PATHS ${cmake_include_directories} ) +- if( header_location ) +- list( FIND c_header_dependencies "${header_location}" header_idx ) +- if( ${header_idx} LESS 0 ) +- list( APPEND c_header_dependencies "${header_location}" ) +- endif() +- endif() +- endforeach() +- +- # check for pxd dependencies +- +- # Look for cimport statements. +- set( module_dependencies "" ) +- file( STRINGS "${pxd}" cimport_statements REGEX cimport ) +- foreach( statement ${cimport_statements} ) +- if( ${statement} MATCHES from ) +- string( REGEX REPLACE "from[ ]+([^ ]+).*" "\\1" module "${statement}" ) +- else() +- string( REGEX REPLACE "cimport[ ]+([^ ]+).*" "\\1" module "${statement}" ) +- endif() +- list( APPEND module_dependencies ${module} ) +- endforeach() +- list( REMOVE_DUPLICATES module_dependencies ) +- # Add the module to the files to check, if appropriate. +- foreach( module ${module_dependencies} ) +- unset( pxd_location CACHE ) +- find_file( pxd_location ${module}.pxd +- PATHS "${pyx_path}" ${cmake_include_directories} NO_DEFAULT_PATH ) +- if( pxd_location ) +- list( FIND pxds_checked ${pxd_location} pxd_idx ) +- if( ${pxd_idx} LESS 0 ) +- list( FIND pxds_to_check ${pxd_location} pxd_idx ) +- if( ${pxd_idx} LESS 0 ) +- list( APPEND pxds_to_check ${pxd_location} ) +- list( APPEND pxd_dependencies ${pxd_location} ) +- endif() # if it is not already going to be checked +- endif() # if it has not already been checked +- endif() # if pxd file can be found +- endforeach() # for each module dependency discovered +- endforeach() # for each pxd file to check +- list( LENGTH pxds_to_check number_pxds_to_check ) +- endwhile() +- endforeach() # pyx_file ++ set(_embed_main FALSE) + +- # Set additional flags. +- if( CYTHON_ANNOTATE ) +- set( annotate_arg "--annotate" ) ++ if("C" IN_LIST languages) ++ set(_output_syntax "C") ++ elseif("CXX" IN_LIST languages) ++ set(_output_syntax "CXX") ++ else() ++ message(FATAL_ERROR "Either C or CXX must be enabled to use Cython") + endif() + +- if( CYTHON_NO_DOCSTRINGS ) +- set( no_docstrings_arg "--no-docstrings" ) ++ if(_args_EMBED_MAIN) ++ set(_embed_main TRUE) + endif() + +- if( "${CMAKE_BUILD_TYPE}" STREQUAL "Debug" OR +- "${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo" ) +- set( cython_debug_arg "--gdb" ) ++ if(_args_C) ++ set(_output_syntax "C") + endif() + +- # Include directory arguments. +- list( REMOVE_DUPLICATES cython_include_directories ) +- set( include_directory_arg "" ) +- foreach( _include_dir ${cython_include_directories} ) +- set( include_directory_arg ${include_directory_arg} "-I" "${_include_dir}" ) +- endforeach() ++ if(_args_CXX) ++ set(_output_syntax "CXX") ++ endif() + +- # Determining generated file name. +- set( _generated_file "${CMAKE_CURRENT_BINARY_DIR}/${_name}.${extension}" ) +- set_source_files_properties( ${_generated_file} PROPERTIES GENERATED TRUE ) +- set( ${generated_file} ${_generated_file} PARENT_SCOPE ) ++ # Doesn't select an input syntax - Cython ++ # defaults to 2 for Cython 2 and 3 for Cython 3 ++ set(_input_syntax "default") + +- list( REMOVE_DUPLICATES pxd_dependencies ) +- list( REMOVE_DUPLICATES c_header_dependencies ) ++ if(_args_PY2) ++ set(_input_syntax "PY2") ++ endif() + +- # Add the command to run the compiler. +- add_custom_command( OUTPUT ${_generated_file} +- COMMAND ${CYTHON_EXECUTABLE} +- ARGS ${cxx_arg} ${include_directory_arg} +- ${annotate_arg} ${no_docstrings_arg} ${cython_debug_arg} ${CYTHON_FLAGS} +- --output-file ${_generated_file} ${pyx_locations} +- DEPENDS ${pyx_locations} ${pxd_dependencies} +- IMPLICIT_DEPENDS ${pyx_lang} ${c_header_dependencies} +- COMMENT ${comment} +- ) ++ if(_args_PY3) ++ set(_input_syntax "PY3") ++ endif() + +- # Remove their visibility to the user. +- set( corresponding_pxd_file "" CACHE INTERNAL "" ) +- set( header_location "" CACHE INTERNAL "" ) +- set( pxd_location "" CACHE INTERNAL "" ) +-endfunction() +- +-# cython_add_module( src1 src2 ... srcN ) +-# Build the Cython Python module. +-function( cython_add_module _name ) +- set( pyx_module_sources "" ) +- set( other_module_sources "" ) +- foreach( _file ${ARGN} ) +- if( ${_file} MATCHES ".*\\.py[x]?$" ) +- list( APPEND pyx_module_sources ${_file} ) +- else() +- list( APPEND other_module_sources ${_file} ) +- endif() +- endforeach() +- compile_pyx( ${_name} generated_file ${pyx_module_sources} ) +- include_directories( ${PYTHON_INCLUDE_DIRS} ) +- python_add_module( ${_name} ${generated_file} ${other_module_sources} ) +- if( APPLE ) +- set_target_properties( ${_name} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup" ) +- else() +- target_link_libraries( ${_name} ${PYTHON_LIBRARIES} ) ++ set(embed_arg "") ++ if(_embed_main) ++ set(embed_arg "--embed") + endif() +-endfunction() +- +-include( CMakeParseArguments ) +-# cython_add_standalone_executable( _name [MAIN_MODULE src3.py] src1 src2 ... srcN ) +-# Creates a standalone executable the given sources. +-function( cython_add_standalone_executable _name ) +- set( pyx_module_sources "" ) +- set( other_module_sources "" ) +- set( main_module "" ) +- cmake_parse_arguments( cython_arguments "" "MAIN_MODULE" "" ${ARGN} ) +- include_directories( ${PYTHON_INCLUDE_DIRS} ) +- foreach( _file ${cython_arguments_UNPARSED_ARGUMENTS} ) +- if( ${_file} MATCHES ".*\\.py[x]?$" ) +- get_filename_component( _file_we ${_file} NAME_WE ) +- if( "${_file_we}" STREQUAL "${_name}" ) +- set( main_module "${_file}" ) +- elseif( NOT "${_file}" STREQUAL "${cython_arguments_MAIN_MODULE}" ) +- set( PYTHON_MODULE_${_file_we}_static_BUILD_SHARED OFF ) +- compile_pyx( "${_file_we}_static" generated_file "${_file}" ) +- list( APPEND pyx_module_sources "${generated_file}" ) +- endif() +- else() +- list( APPEND other_module_sources ${_file} ) +- endif() +- endforeach() + +- if( cython_arguments_MAIN_MODULE ) +- set( main_module ${cython_arguments_MAIN_MODULE} ) ++ set(cxx_arg "") ++ set(extension "c") ++ if(_output_syntax STREQUAL "CXX") ++ set(cxx_arg "--cplus") ++ set(extension "cxx") ++ endif() ++ ++ set(py_version_arg "") ++ if(_input_syntax STREQUAL "PY2") ++ set(py_version_arg "-2") ++ elseif(_input_syntax STREQUAL "PY3") ++ set(py_version_arg "-3") ++ endif() ++ ++ set(generated_file "${CMAKE_CURRENT_BINARY_DIR}/${_name}.${extension}") ++ set_source_files_properties(${generated_file} PROPERTIES GENERATED TRUE) ++ ++ set(_output_var ${_name}) ++ if(_args_OUTPUT_VAR) ++ set(_output_var ${_args_OUTPUT_VAR}) ++ endif() ++ set(${_output_var} ${generated_file} PARENT_SCOPE) ++ ++ file(RELATIVE_PATH generated_file_relative ++ ${CMAKE_BINARY_DIR} ${generated_file}) ++ ++ set(comment "Generating ${_output_syntax} source ${generated_file_relative}") ++ set(cython_include_directories "") ++ set(pxd_dependencies "") ++ set(c_header_dependencies "") ++ ++ # Get the include directories. ++ get_directory_property(cmake_include_directories ++ DIRECTORY ${CMAKE_CURRENT_LIST_DIR} ++ INCLUDE_DIRECTORIES) ++ list(APPEND cython_include_directories ${cmake_include_directories}) ++ ++ # Determine dependencies. ++ # Add the pxd file with the same basename as the given pyx file. ++ get_source_file_property(pyx_location ${_source_file} LOCATION) ++ get_filename_component(pyx_path ${pyx_location} PATH) ++ get_filename_component(pyx_file_basename ${_source_file} NAME_WE) ++ unset(corresponding_pxd_file CACHE) ++ find_file(corresponding_pxd_file ${pyx_file_basename}.pxd ++ PATHS "${pyx_path}" ${cmake_include_directories} ++ NO_DEFAULT_PATH) ++ if(corresponding_pxd_file) ++ list(APPEND pxd_dependencies "${corresponding_pxd_file}") ++ endif() ++ ++ # pxd files to check for additional dependencies ++ set(pxds_to_check "${_source_file}" "${pxd_dependencies}") ++ set(pxds_checked "") ++ set(number_pxds_to_check 1) ++ while(number_pxds_to_check GREATER 0) ++ foreach(pxd ${pxds_to_check}) ++ list(APPEND pxds_checked "${pxd}") ++ list(REMOVE_ITEM pxds_to_check "${pxd}") ++ ++ # look for C headers ++ file(STRINGS "${pxd}" extern_from_statements ++ REGEX "cdef[ ]+extern[ ]+from.*$") ++ foreach(statement ${extern_from_statements}) ++ # Had trouble getting the quote in the regex ++ string(REGEX REPLACE ++ "cdef[ ]+extern[ ]+from[ ]+[\"]([^\"]+)[\"].*" "\\1" ++ header "${statement}") ++ unset(header_location CACHE) ++ find_file(header_location ${header} PATHS ${cmake_include_directories}) ++ if(header_location) ++ list(FIND c_header_dependencies "${header_location}" header_idx) ++ if(${header_idx} LESS 0) ++ list(APPEND c_header_dependencies "${header_location}") ++ endif() ++ endif() ++ endforeach() ++ ++ # check for pxd dependencies ++ # Look for cimport statements. ++ set(module_dependencies "") ++ file(STRINGS "${pxd}" cimport_statements REGEX cimport) ++ foreach(statement ${cimport_statements}) ++ if(${statement} MATCHES from) ++ string(REGEX REPLACE ++ "from[ ]+([^ ]+).*" "\\1" ++ module "${statement}") ++ else() ++ string(REGEX REPLACE ++ "cimport[ ]+([^ ]+).*" "\\1" ++ module "${statement}") ++ endif() ++ list(APPEND module_dependencies ${module}) ++ endforeach() ++ ++ # check for pxi dependencies ++ # Look for include statements. ++ set(include_dependencies "") ++ file(STRINGS "${pxd}" include_statements REGEX include) ++ foreach(statement ${include_statements}) ++ string(REGEX REPLACE ++ "include[ ]+[\"]([^\"]+)[\"].*" "\\1" ++ module "${statement}") ++ list(APPEND include_dependencies ${module}) ++ endforeach() ++ ++ list(REMOVE_DUPLICATES module_dependencies) ++ list(REMOVE_DUPLICATES include_dependencies) ++ ++ # Add modules to the files to check, if appropriate. ++ foreach(module ${module_dependencies}) ++ unset(pxd_location CACHE) ++ find_file(pxd_location ${module}.pxd ++ PATHS "${pyx_path}" ${cmake_include_directories} ++ NO_DEFAULT_PATH) ++ if(pxd_location) ++ list(FIND pxds_checked ${pxd_location} pxd_idx) ++ if(${pxd_idx} LESS 0) ++ list(FIND pxds_to_check ${pxd_location} pxd_idx) ++ if(${pxd_idx} LESS 0) ++ list(APPEND pxds_to_check ${pxd_location}) ++ list(APPEND pxd_dependencies ${pxd_location}) ++ endif() # if it is not already going to be checked ++ endif() # if it has not already been checked ++ endif() # if pxd file can be found ++ endforeach() # for each module dependency discovered ++ ++ # Add includes to the files to check, if appropriate. ++ foreach(_include ${include_dependencies}) ++ unset(pxi_location CACHE) ++ find_file(pxi_location ${_include} ++ PATHS "${pyx_path}" ${cmake_include_directories} ++ NO_DEFAULT_PATH) ++ if(pxi_location) ++ list(FIND pxds_checked ${pxi_location} pxd_idx) ++ if(${pxd_idx} LESS 0) ++ list(FIND pxds_to_check ${pxi_location} pxd_idx) ++ if(${pxd_idx} LESS 0) ++ list(APPEND pxds_to_check ${pxi_location}) ++ list(APPEND pxd_dependencies ${pxi_location}) ++ endif() # if it is not already going to be checked ++ endif() # if it has not already been checked ++ endif() # if include file can be found ++ endforeach() # for each include dependency discovered ++ endforeach() # for each include file to check ++ ++ list(LENGTH pxds_to_check number_pxds_to_check) ++ endwhile() ++ ++ # Set additional flags. ++ set(annotate_arg "") ++ if(CYTHON_ANNOTATE) ++ set(annotate_arg "--annotate") + endif() +- if( NOT main_module ) +- message( FATAL_ERROR "main module not found." ) ++ ++ set(cython_debug_arg "") ++ set(line_directives_arg "") ++ if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR ++ CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") ++ set(cython_debug_arg "--gdb") ++ set(line_directives_arg "--line-directives") + endif() +- get_filename_component( main_module_we "${main_module}" NAME_WE ) +- set( CYTHON_FLAGS ${CYTHON_FLAGS} --embed ) +- compile_pyx( "${main_module_we}_static" generated_file ${main_module} ) +- add_executable( ${_name} ${generated_file} ${pyx_module_sources} ${other_module_sources} ) +- target_link_libraries( ${_name} ${PYTHON_LIBRARIES} ${pyx_module_libs} ) +-endfunction() ++ ++ # Include directory arguments. ++ list(REMOVE_DUPLICATES cython_include_directories) ++ set(include_directory_arg "") ++ foreach(_include_dir ${cython_include_directories}) ++ set(include_directory_arg ++ ${include_directory_arg} "--include-dir" "${_include_dir}") ++ endforeach() ++ ++ list(REMOVE_DUPLICATES pxd_dependencies) ++ list(REMOVE_DUPLICATES c_header_dependencies) ++ ++ string(REGEX REPLACE " " ";" CYTHON_FLAGS_LIST "${CYTHON_FLAGS}") ++ ++ # Add the command to run the compiler. ++ add_custom_command(OUTPUT ${generated_file} ++ COMMAND ${CYTHON_EXECUTABLE} ++ ARGS ${cxx_arg} ${include_directory_arg} ${py_version_arg} ++ ${embed_arg} ${annotate_arg} ${cython_debug_arg} ++ ${line_directives_arg} ${CYTHON_FLAGS_LIST} ${pyx_location} ++ --output-file ${generated_file} ++ DEPENDS ${_source_file} ++ ${pxd_dependencies} ++ IMPLICIT_DEPENDS ${_output_syntax} ++ ${c_header_dependencies} ++ COMMENT ${comment}) ++ ++ # NOTE(opadron): I thought about making a proper target, but after trying it ++ # out, I decided that it would be far too convenient to use the same name as ++ # the target for the extension module (e.g.: for single-file modules): ++ # ++ # ... ++ # add_cython_target(_module.pyx) ++ # add_library(_module ${_module}) ++ # ... ++ # ++ # The above example would not be possible since the "_module" target name ++ # would already be taken by the cython target. Since I can't think of a ++ # reason why someone would need the custom target instead of just using the ++ # generated file directly, I decided to leave this commented out. ++ # ++ # add_custom_target(${_name} DEPENDS ${generated_file}) ++ ++ # Remove their visibility to the user. ++ set(corresponding_pxd_file "" CACHE INTERNAL "") ++ set(header_location "" CACHE INTERNAL "") ++ set(pxd_location "" CACHE INTERNAL "") ++endfunction() +\ No newline at end of file +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 55c405fd0..06a4adbbc 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -62,6 +62,7 @@ add_subdirectory(python/${PROJECT_NAME}) + + find_package(OpenCV REQUIRED core imgproc) + find_package(PCL REQUIRED) ++find_package(GLEW REQUIRED) + find_package(PkgConfig) + pkg_check_modules(yaml_cpp yaml-cpp REQUIRED) + IF(${yaml_cpp_VERSION} VERSION_LESS "0.5.0") +@@ -72,11 +73,10 @@ if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z defs") + endif() + include_directories( +- include ${catkin_INCLUDE_DIRS} ++ include ${catkin_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS} + ) +-link_libraries(${catkin_LIBRARIES} ${OpenCV_LIBRARIES} ${PCL_LIBRARIES} yaml-cpp) + +-add_library(jsk_recognition_utils SHARED ++add_library(jsk_recognition_utils + src/grid_index.cpp + src/grid_map.cpp + src/grid_line.cpp +@@ -102,6 +102,8 @@ add_library(jsk_recognition_utils SHARED + src/time_util.cpp + ) + ++target_link_libraries(jsk_recognition_utils ${catkin_LIBRARIES} ${OpenCV_LIBRARIES} ${PCL_LIBRARIES} ${yaml_cpp_LIBRARIES} ${GLEW_LIBRARIES}) ++ + if (CATKIN_ENABLE_TESTING) + find_package(rostest REQUIRED) + if("$ENV{ROS_DISTRO}" STRGREATER "indigo") # kinetic and later uses qt5 +diff --git a/cmake/FindCython.cmake b/cmake/FindCython.cmake +index f44f1f707..d7fb4205f 100644 +--- a/cmake/FindCython.cmake ++++ b/cmake/FindCython.cmake +@@ -24,9 +24,9 @@ + + # Use the Cython executable that lives next to the Python executable + # if it is a local installation. +-find_package( PythonInterp ) +-if( PYTHONINTERP_FOUND ) +- get_filename_component( _python_path ${PYTHON_EXECUTABLE} PATH ) ++find_package (Python COMPONENTS Interpreter Development NumPy) ++if( Python_Interpreter_FOUND ) ++ get_filename_component( _python_path ${Python_EXECUTABLE} PATH ) + find_program( CYTHON_EXECUTABLE + NAMES cython cython.bat cython3 + HINTS ${_python_path} +diff --git a/python/jsk_recognition_utils/CMakeLists.txt b/python/jsk_recognition_utils/CMakeLists.txt +index d3feba4f5..496ca09dc 100644 +--- a/python/jsk_recognition_utils/CMakeLists.txt ++++ b/python/jsk_recognition_utils/CMakeLists.txt +@@ -1,16 +1,10 @@ +-if(NOT DEFINED Numpy_INCLUDE_DIRS) +- # Get Numpy include directories +- execute_process( +- COMMAND python$ENV{ROS_PYTHON_VERSION} -c "import sys, numpy; sys.stdout.write(numpy.get_include())" +- OUTPUT_VARIABLE Numpy_INCLUDE_DIRS +- RESULT_VARIABLE retcode) +- if(NOT ${retcode} EQUAL 0) +- message(FATAL_ERROR "Failed to get Numpy include dirs by numpy.get_include(). Exit code: ${retcode}") +- endif() +-endif() ++find_package (Python COMPONENTS Interpreter Development NumPy) ++find_package(Cython) ++ + # Compile nms.pyx +-include_directories(${Numpy_INCLUDE_DIRS}) +-cython_add_module(nms nms.pyx) ++include_directories(${Python_NumPy_INCLUDE_DIRS} ${Python_INCLUDE_DIRS} ${Python_SITELIB}) ++add_cython_target(nms nms.pyx) ++add_library(nms MODULE ${nms}) + set_target_properties(nms PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_PYTHON_DESTINATION}) + install(TARGETS nms + ARCHIVE DESTINATION ${CATKIN_PACKAGE_PYTHON_DESTINATION} diff --git a/recipes/ros-noetic-jsk-recognition-utils/recipe.yaml b/recipes/ros-noetic-jsk-recognition-utils/recipe.yaml new file mode 100644 index 000000000..cc145107e --- /dev/null +++ b/recipes/ros-noetic-jsk-recognition-utils/recipe.yaml @@ -0,0 +1,107 @@ +package: + name: ros-noetic-jsk-recognition-utils + version: 1.2.17 +source: + git_url: https://github.com/tork-a/jsk_recognition-release.git + git_rev: release/noetic/jsk_recognition_utils/1.2.17-2 + folder: ros-noetic-jsk-recognition-utils/src/work + patches: + - patch/ros-noetic-jsk-recognition-utils.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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: + - cython + - glew + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-eigen-conversions + - ros-noetic-geometry-msgs + - ros-noetic-image-geometry + - ros-noetic-jsk-data + - ros-noetic-jsk-recognition-msgs + - ros-noetic-jsk-tools + - ros-noetic-jsk-topic-tools + - ros-noetic-message-generation + - ros-noetic-pcl-msgs + - ros-noetic-pcl-ros + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-tf-conversions + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - setuptools + - yaml-cpp + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - chainer + - glew + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-eigen-conversions + - ros-noetic-geometry-msgs + - ros-noetic-image-geometry + - ros-noetic-image-view + - ros-noetic-jsk-recognition-msgs + - ros-noetic-jsk-topic-tools + - ros-noetic-message-runtime + - ros-noetic-pcl-msgs + - ros-noetic-pcl-ros + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-tf-conversions + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - scikit-image + - shapely + - 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-jsk-rqt-plugins/bld_catkin.bat b/recipes/ros-noetic-jsk-rqt-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-jsk-rqt-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-jsk-rqt-plugins/build_catkin.sh b/recipes/ros-noetic-jsk-rqt-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-jsk-rqt-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-jsk-rqt-plugins/recipe.yaml b/recipes/ros-noetic-jsk-rqt-plugins/recipe.yaml new file mode 100644 index 000000000..caa06d92f --- /dev/null +++ b/recipes/ros-noetic-jsk-rqt-plugins/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-jsk-rqt-plugins + version: 2.1.8 +source: + git_url: https://github.com/tork-a/jsk_visualization-release.git + git_rev: release/noetic/jsk_rqt_plugins/2.1.8-1 + folder: ros-noetic-jsk-rqt-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-view2 + - ros-noetic-message-generation + - ros-noetic-mk + - ros-noetic-rosbuild + - ros-noetic-roslaunch + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-image-publisher + - ros-noetic-image-view2 + - ros-noetic-jsk-gui-msgs + - ros-noetic-message-runtime + - ros-noetic-qt-gui-py-common + - ros-noetic-resource-retriever + - ros-noetic-rqt-gui + - ros-noetic-rqt-gui-py + - ros-noetic-rqt-image-view + - ros-noetic-rqt-plot + - scikit-learn + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-jsk-rviz-plugins/bld_catkin.bat b/recipes/ros-noetic-jsk-rviz-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-jsk-rviz-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-jsk-rviz-plugins/build_catkin.sh b/recipes/ros-noetic-jsk-rviz-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-jsk-rviz-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-jsk-rviz-plugins/patch/ros-noetic-jsk-rviz-plugins.patch b/recipes/ros-noetic-jsk-rviz-plugins/patch/ros-noetic-jsk-rviz-plugins.patch new file mode 100644 index 000000000..f9e71dbc3 --- /dev/null +++ b/recipes/ros-noetic-jsk-rviz-plugins/patch/ros-noetic-jsk-rviz-plugins.patch @@ -0,0 +1,114 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 310db0bd..a23f2288 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -64,12 +64,8 @@ include_directories(src ${Boost_INCLUDE_DIR} ${catkin_INCLUDE_DIRS}) + ## CATKIN_DEPENDS: catkin_packages dependent projects also need + ## DEPENDS: system dependencies of this project that dependent projects also need + +-if(rviz_QT_VERSION VERSION_LESS "5") +- find_package(Qt4 COMPONENTS QtCore QtGui REQUIRED) +- include(${QT_USE_FILE}) +-else() +- find_package(Qt5Widgets REQUIRED) +-endif() ++find_package(Qt5 COMPONENTS Widgets REQUIRED) ++find_package(OpenCV REQUIRED) + add_definitions(-DQT_NO_KEYWORDS -g) + + include_directories(${CMAKE_CURRENT_BINARY_DIR}) +@@ -194,7 +190,7 @@ add_library(jsk_rviz_plugins ${SOURCE_FILES} ${UIC_FILES}) + if(rviz_QT_VERSION VERSION_LESS "5") + target_link_libraries(jsk_rviz_plugins ${QT_LIBRARIES} ${catkin_LIBRARIES} ${rviz_DEFAULT_PLUGIN_LIBRARIES}) + else() +- target_link_libraries(jsk_rviz_plugins Qt5::Widgets ${catkin_LIBRARIES} ${rviz_DEFAULT_PLUGIN_LIBRARIES}) ++ target_link_libraries(jsk_rviz_plugins Qt5::Widgets ${catkin_LIBRARIES} ${OpenCV_LIBRARIES} ${rviz_DEFAULT_PLUGIN_LIBRARIES}) + endif() + add_dependencies(jsk_rviz_plugins + jsk_footstep_msgs_generate_messages_cpp +diff --git a/src/camera_info_display.cpp b/src/camera_info_display.cpp +index eb9de008..09d269aa 100644 +--- a/src/camera_info_display.cpp ++++ b/src/camera_info_display.cpp +@@ -37,6 +37,7 @@ + #include + #include "camera_info_display.h" + #include ++#include + #include + #include + #include +diff --git a/src/facing_visualizer.cpp b/src/facing_visualizer.cpp +index 60f21549..9962aa0d 100644 +--- a/src/facing_visualizer.cpp ++++ b/src/facing_visualizer.cpp +@@ -33,6 +33,7 @@ + * POSSIBILITY OF SUCH DAMAGE. + *********************************************************************/ + ++#include + #include "facing_visualizer.h" + #include + #include +diff --git a/src/overlay_diagnostic_display.h b/src/overlay_diagnostic_display.h +index 01cc7fc0..61fe680d 100644 +--- a/src/overlay_diagnostic_display.h ++++ b/src/overlay_diagnostic_display.h +@@ -42,6 +42,7 @@ + #include + + #include ++#include + + #include + #include +diff --git a/src/overlay_utils.cpp b/src/overlay_utils.cpp +index 73525c43..494e2bdf 100644 +--- a/src/overlay_utils.cpp ++++ b/src/overlay_utils.cpp +@@ -33,6 +33,7 @@ + * POSSIBILITY OF SUCH DAMAGE. + *********************************************************************/ + ++#include + #include "overlay_utils.h" + #include + +diff --git a/src/overlay_utils.h b/src/overlay_utils.h +index 26ebc921..f5d9ce12 100644 +--- a/src/overlay_utils.h ++++ b/src/overlay_utils.h +@@ -37,6 +37,7 @@ + #define JSK_RVIZ_PLUGIN_OVERLAY_UTIL_H_ + + ++#include + #include + #include + #include +diff --git a/src/polygon_array_display.cpp b/src/polygon_array_display.cpp +index b1b1ef35..61fc966c 100644 +--- a/src/polygon_array_display.cpp ++++ b/src/polygon_array_display.cpp +@@ -35,6 +35,8 @@ + + #define BOOST_PARAMETER_MAX_ARITY 7 + ++#include ++#include + #include "polygon_array_display.h" + #include "rviz/properties/parse_color.h" + #include +diff --git a/src/simple_occupancy_grid_array_display.cpp b/src/simple_occupancy_grid_array_display.cpp +index 95bd0f9e..6ca15761 100644 +--- a/src/simple_occupancy_grid_array_display.cpp ++++ b/src/simple_occupancy_grid_array_display.cpp +@@ -33,6 +33,8 @@ + * POSSIBILITY OF SUCH DAMAGE. + *********************************************************************/ + #define BOOST_PARAMETER_MAX_ARITY 7 ++ ++#include + #include "simple_occupancy_grid_array_display.h" + #include + #include diff --git a/recipes/ros-noetic-jsk-rviz-plugins/recipe.yaml b/recipes/ros-noetic-jsk-rviz-plugins/recipe.yaml new file mode 100644 index 000000000..13a3be840 --- /dev/null +++ b/recipes/ros-noetic-jsk-rviz-plugins/recipe.yaml @@ -0,0 +1,113 @@ +package: + name: ros-noetic-jsk-rviz-plugins + version: 2.1.8 +source: + git_url: https://github.com/tork-a/jsk_visualization-release.git + git_rev: release/noetic/jsk_rviz_plugins/2.1.8-1 + folder: ros-noetic-jsk-rviz-plugins/src/work + patches: + - patch/ros-noetic-jsk-rviz-plugins.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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: + - gdown + - 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-diagnostic-msgs + - ros-noetic-dynamic-reconfigure + - ros-noetic-face-detector + - ros-noetic-geometry-msgs + - ros-noetic-image-geometry + - ros-noetic-image-transport + - ros-noetic-joint-state-publisher + - ros-noetic-jsk-data + - ros-noetic-jsk-footstep-msgs + - ros-noetic-jsk-gui-msgs + - ros-noetic-jsk-hark-msgs + - ros-noetic-jsk-recognition-msgs + - ros-noetic-jsk-recognition-utils + - ros-noetic-jsk-topic-tools + - ros-noetic-message-generation + - ros-noetic-mk + - ros-noetic-openni2-launch + - ros-noetic-people-msgs + - ros-noetic-pr2-description + - ros-noetic-robot-state-publisher + - ros-noetic-rosbuild + - ros-noetic-rostest + - ros-noetic-rviz + - ros-noetic-std-msgs + - ros-noetic-urdfdom-py + - ros-noetic-view-controller-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-diagnostic-msgs + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-image-geometry + - ros-noetic-image-publisher + - ros-noetic-jsk-footstep-msgs + - ros-noetic-jsk-gui-msgs + - ros-noetic-jsk-hark-msgs + - ros-noetic-jsk-recognition-msgs + - ros-noetic-jsk-recognition-utils + - ros-noetic-jsk-topic-tools + - ros-noetic-message-generation + - ros-noetic-people-msgs + - ros-noetic-posedetection-msgs + - ros-noetic-rviz + - ros-noetic-std-msgs + - ros-noetic-urdfdom-py + - ros-noetic-view-controller-msgs + - scipy + - 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-jsk-tools/bld_catkin.bat b/recipes/ros-noetic-jsk-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-jsk-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-jsk-tools/build_catkin.sh b/recipes/ros-noetic-jsk-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-jsk-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-jsk-tools/recipe.yaml b/recipes/ros-noetic-jsk-tools/recipe.yaml new file mode 100644 index 000000000..a9ef2ef2c --- /dev/null +++ b/recipes/ros-noetic-jsk-tools/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-jsk-tools + version: 2.2.12 +source: + git_url: https://github.com/tork-a/jsk_common-release.git + git_rev: release/noetic/jsk_tools/2.2.12-1 + folder: ros-noetic-jsk-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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): git + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosgraph-msgs + - ros-noetic-roslint + - ros-noetic-rostest + - sel(build_platform == target_platform): git + run: + - colorama + - pygithub + - python + - requests + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-diagnostic-aggregator + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-jsk-gui-msgs + - ros-noetic-jsk-network-tools + - ros-noetic-jsk-topic-tools + - ros-noetic-rosbag + - ros-noetic-rosemacs + - ros-noetic-rosgraph-msgs + - ros-noetic-rospy + - ros-noetic-rqt-reconfigure + - rosdep + - slacker + - tabulate + - texttable + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-jsk-topic-tools/bld_catkin.bat b/recipes/ros-noetic-jsk-topic-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-jsk-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-jsk-topic-tools/build_catkin.sh b/recipes/ros-noetic-jsk-topic-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-jsk-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-jsk-topic-tools/recipe.yaml b/recipes/ros-noetic-jsk-topic-tools/recipe.yaml new file mode 100644 index 000000000..349120cc0 --- /dev/null +++ b/recipes/ros-noetic-jsk-topic-tools/recipe.yaml @@ -0,0 +1,96 @@ +package: + name: ros-noetic-jsk-topic-tools + version: 2.2.12 +source: + git_url: https://github.com/tork-a/jsk_common-release.git + git_rev: release/noetic/jsk_topic_tools/2.2.12-1 + folder: ros-noetic-jsk-topic-tools/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-dynamic-reconfigure + - ros-noetic-dynamic-tf-publisher + - ros-noetic-eigen-conversions + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-message-generation + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-roscpp-tutorials + - ros-noetic-roslaunch + - ros-noetic-roslint + - ros-noetic-rosnode + - ros-noetic-rostest + - ros-noetic-rostime + - ros-noetic-rostopic + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-topic-tools + run: + - libopencv + - numpy + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-aggregator + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-dynamic-tf-publisher + - ros-noetic-eigen-conversions + - ros-noetic-geometry-msgs + - ros-noetic-image-transport + - ros-noetic-message-runtime + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-roslaunch + - ros-noetic-rosnode + - ros-noetic-rostime + - ros-noetic-rostopic + - ros-noetic-sensor-msgs + - ros-noetic-sound-play + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-topic-tools + - scipy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-jsk-visualization/bld_catkin.bat b/recipes/ros-noetic-jsk-visualization/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-jsk-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-jsk-visualization/build_catkin.sh b/recipes/ros-noetic-jsk-visualization/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-jsk-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-jsk-visualization/recipe.yaml b/recipes/ros-noetic-jsk-visualization/recipe.yaml new file mode 100644 index 000000000..5187f04ab --- /dev/null +++ b/recipes/ros-noetic-jsk-visualization/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-jsk-visualization + version: 2.1.8 +source: + git_url: https://github.com/tork-a/jsk_visualization-release.git + git_rev: release/noetic/jsk_visualization/2.1.8-1 + folder: ros-noetic-jsk-visualization/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-jsk-interactive + - ros-noetic-jsk-interactive-marker + - ros-noetic-jsk-interactive-test + - ros-noetic-jsk-rqt-plugins + - ros-noetic-jsk-rviz-plugins + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-jsk-interactive + - ros-noetic-jsk-interactive-marker + - ros-noetic-jsk-interactive-test + - ros-noetic-jsk-rqt-plugins + - ros-noetic-jsk-rviz-plugins + - 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..73b89df84 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..45b118e23 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - 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..5cbbffe61 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..d5bf3a548 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..a61e1e86a --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..76bb5cc11 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..9ffe3a3e1 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-magnetometer-compass/bld_catkin.bat b/recipes/ros-noetic-magnetometer-compass/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-magnetometer-compass/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-magnetometer-compass/build_catkin.sh b/recipes/ros-noetic-magnetometer-compass/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-magnetometer-compass/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-magnetometer-compass/recipe.yaml b/recipes/ros-noetic-magnetometer-compass/recipe.yaml new file mode 100644 index 000000000..515bbce89 --- /dev/null +++ b/recipes/ros-noetic-magnetometer-compass/recipe.yaml @@ -0,0 +1,76 @@ +package: + name: ros-noetic-magnetometer-compass + version: 1.0.3 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/compass.git + git_rev: release/noetic/magnetometer_compass/1.0.3-1 + folder: ros-noetic-magnetometer-compass/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - geographiclib-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-compass-msgs + - ros-noetic-cras-cpp-common + - ros-noetic-geometry-msgs + - ros-noetic-imu-transformer + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - geographiclib-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-compass-msgs + - ros-noetic-geometry-msgs + - ros-noetic-imu-transformer + - ros-noetic-message-filters + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-map-msgs/bld_catkin.bat b/recipes/ros-noetic-map-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-map-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-map-msgs/build_catkin.sh b/recipes/ros-noetic-map-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-map-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-map-msgs/recipe.yaml b/recipes/ros-noetic-map-msgs/recipe.yaml new file mode 100644 index 000000000..e8fda165d --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..01c4ded45 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-extras/bld_catkin.bat b/recipes/ros-noetic-mavros-extras/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-mavros-extras/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%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-extras/build_catkin.sh b/recipes/ros-noetic-mavros-extras/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-mavros-extras/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${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-extras/patch/ros-noetic-mavros-extras.patch b/recipes/ros-noetic-mavros-extras/patch/ros-noetic-mavros-extras.patch new file mode 100644 index 000000000..faf1b0990 --- /dev/null +++ b/recipes/ros-noetic-mavros-extras/patch/ros-noetic-mavros-extras.patch @@ -0,0 +1,12 @@ +diff --git a/src/plugins/mag_calibration_status.cpp b/src/plugins/mag_calibration_status.cpp +index 70c9d15de..0c974192f 100644 +--- a/src/plugins/mag_calibration_status.cpp ++++ b/src/plugins/mag_calibration_status.cpp +@@ -8,6 +8,7 @@ + * @{ + */ + ++#include + #include + #include + #include diff --git a/recipes/ros-noetic-mavros-extras/recipe.yaml b/recipes/ros-noetic-mavros-extras/recipe.yaml new file mode 100644 index 000000000..68379c9e8 --- /dev/null +++ b/recipes/ros-noetic-mavros-extras/recipe.yaml @@ -0,0 +1,73 @@ +package: + name: ros-noetic-mavros-extras + version: 1.17.0 +source: + git_url: https://github.com/mavlink/mavros-release.git + git_rev: release/noetic/mavros_extras/1.17.0-1 + folder: ros-noetic-mavros-extras/src/work + patches: + - patch/ros-noetic-mavros-extras.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-mavros + - ros-noetic-mavros-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-tf2-eigen + - ros-noetic-urdf + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-mavros + - ros-noetic-mavros-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-tf2-eigen + - 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-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..d35dcaa47 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-mavros/bld_catkin.bat b/recipes/ros-noetic-mavros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-mavros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%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/build_catkin.sh b/recipes/ros-noetic-mavros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-mavros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${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/patch/ros-noetic-mavros.patch b/recipes/ros-noetic-mavros/patch/ros-noetic-mavros.patch new file mode 100644 index 000000000..aeb0f2c2c --- /dev/null +++ b/recipes/ros-noetic-mavros/patch/ros-noetic-mavros.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3cc117abe..54854d79e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -111,7 +111,7 @@ target_link_libraries(mavros + ${Boost_LIBRARIES} + ${GeographicLib_LIBRARIES} + ) +-if(NOT APPLE) ++if(UNIX AND NOT APPLE) + target_link_libraries(mavros + atomic + ) diff --git a/recipes/ros-noetic-mavros/recipe.yaml b/recipes/ros-noetic-mavros/recipe.yaml new file mode 100644 index 000000000..0f6e6662b --- /dev/null +++ b/recipes/ros-noetic-mavros/recipe.yaml @@ -0,0 +1,100 @@ +package: + name: ros-noetic-mavros + version: 1.17.0 +source: + git_url: https://github.com/mavlink/mavros-release.git + git_rev: release/noetic/mavros/1.17.0-1 + folder: ros-noetic-mavros/src/work + patches: + - patch/ros-noetic-mavros.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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 + - geographiclib-cpp + - gtest + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-eigen-conversions + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-libmavconn + - ros-noetic-mavlink + - ros-noetic-mavros-msgs + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole-bridge + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + run: + - boost + - eigen + - geographiclib-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-eigen-conversions + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-libmavconn + - ros-noetic-mavlink + - ros-noetic-mavros-msgs + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole-bridge + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-mbf-costmap-core/bld_catkin.bat b/recipes/ros-noetic-mbf-costmap-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-mbf-costmap-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-mbf-costmap-core/build_catkin.sh b/recipes/ros-noetic-mbf-costmap-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-mbf-costmap-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-mbf-costmap-core/recipe.yaml b/recipes/ros-noetic-mbf-costmap-core/recipe.yaml new file mode 100644 index 000000000..2f32dbdda --- /dev/null +++ b/recipes/ros-noetic-mbf-costmap-core/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-mbf-costmap-core + version: 0.4.0 +source: + git_url: https://github.com/uos-gbp/move_base_flex-release.git + git_rev: release/noetic/mbf_costmap_core/0.4.0-1 + folder: ros-noetic-mbf-costmap-core/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-mbf-abstract-core + - ros-noetic-mbf-utility + - ros-noetic-nav-core + - ros-noetic-std-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-geometry-msgs + - ros-noetic-mbf-abstract-core + - ros-noetic-mbf-utility + - ros-noetic-nav-core + - ros-noetic-std-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-mbf-utility/bld_catkin.bat b/recipes/ros-noetic-mbf-utility/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-mbf-utility/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-mbf-utility/build_catkin.sh b/recipes/ros-noetic-mbf-utility/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-mbf-utility/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-mbf-utility/recipe.yaml b/recipes/ros-noetic-mbf-utility/recipe.yaml new file mode 100644 index 000000000..3c30cffb2 --- /dev/null +++ b/recipes/ros-noetic-mbf-utility/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-mbf-utility + version: 0.4.0 +source: + git_url: https://github.com/uos-gbp/move_base_flex-release.git + git_rev: release/noetic/mbf_utility/0.4.0-1 + folder: ros-noetic-mbf-utility/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-tf + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-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..dde6383fe --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..030592c6d --- /dev/null +++ b/recipes/ros-noetic-microstrain-inertial-driver/recipe.yaml @@ -0,0 +1,86 @@ +package: + name: ros-noetic-microstrain-inertial-driver + version: 3.2.1 +source: + git_url: https://github.com/LORD-MicroStrain/microstrain_inertial-release.git + git_rev: release/noetic/microstrain_inertial_driver/3.2.1-1 + folder: ros-noetic-microstrain-inertial-driver/src/work + patches: + - patch/ros-noetic-microstrain-inertial-driver.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-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..3095b6a13 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..3f548f5da --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..307b65182 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..8c38ddc0a --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..6d3d631b4 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..81b464428 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..407ff4c9c --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..7c8c334b1 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-chomp-motion-planner + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-chomp-motion-planner + - ros-noetic-moveit-core + - ros-noetic-pluginlib + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-planners-ompl/bld_catkin.bat b/recipes/ros-noetic-moveit-planners-ompl/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-ompl/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-planners-ompl/build_catkin.sh b/recipes/ros-noetic-moveit-planners-ompl/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-ompl/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-planners-ompl/recipe.yaml b/recipes/ros-noetic-moveit-planners-ompl/recipe.yaml new file mode 100644 index 000000000..0674083a2 --- /dev/null +++ b/recipes/ros-noetic-moveit-planners-ompl/recipe.yaml @@ -0,0 +1,72 @@ +package: + name: ros-noetic-moveit-planners-ompl + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_planners_ompl/1.1.13-2 + folder: ros-noetic-moveit-planners-ompl/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..8bf05f285 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..a1f771ef0 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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-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..5c08fff7d --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..e70630203 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..5ae9a0ecb --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..dda0c1f89 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..714f4744e --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..8df54825b --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..a417ddd70 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..7ce6e7265 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..26b990ed8 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..9fd30ecf7 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..5fdc061d7 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-catkin + - ros-noetic-moveit-core + - ros-noetic-moveit-resources-fanuc-moveit-config + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-moveit-core + - ros-noetic-moveit-kinematics + - ros-noetic-moveit-ros-planning + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/build_catkin.sh b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/recipe.yaml b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/recipe.yaml new file mode 100644 index 000000000..97a40f70f --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-occupancy-map-monitor/recipe.yaml @@ -0,0 +1,64 @@ +package: + name: ros-noetic-moveit-ros-occupancy-map-monitor + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_occupancy_map_monitor/1.1.13-2 + folder: ros-noetic-moveit-ros-occupancy-map-monitor/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometric-shapes + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-octomap + - ros-noetic-pluginlib + - ros-noetic-rosunit + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometric-shapes + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-octomap + - ros-noetic-pluginlib + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-moveit-ros-perception/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-perception/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-perception/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-perception/build_catkin.sh b/recipes/ros-noetic-moveit-ros-perception/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-perception/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-perception/recipe.yaml b/recipes/ros-noetic-moveit-ros-perception/recipe.yaml new file mode 100644 index 000000000..3273e5385 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-perception/recipe.yaml @@ -0,0 +1,107 @@ +package: + name: ros-noetic-moveit-ros-perception + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_ros_perception/1.1.13-2 + folder: ros-noetic-moveit-ros-perception/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - eigen + - freeglut + - glew + - libgomp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-occupancy-map-monitor + - ros-noetic-moveit-ros-planning + - ros-noetic-nodelet + - ros-noetic-object-recognition-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - freeglut + - glew + - libgomp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-moveit-core + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-occupancy-map-monitor + - ros-noetic-moveit-ros-planning + - ros-noetic-nodelet + - ros-noetic-object-recognition-msgs + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-moveit-ros-planning-interface/bld_catkin.bat b/recipes/ros-noetic-moveit-ros-planning-interface/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning-interface/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-moveit-ros-planning-interface/build_catkin.sh b/recipes/ros-noetic-moveit-ros-planning-interface/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning-interface/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-moveit-ros-planning-interface/patch/ros-noetic-moveit-ros-planning-interface.patch b/recipes/ros-noetic-moveit-ros-planning-interface/patch/ros-noetic-moveit-ros-planning-interface.patch new file mode 100644 index 000000000..272c0009e --- /dev/null +++ b/recipes/ros-noetic-moveit-ros-planning-interface/patch/ros-noetic-moveit-ros-planning-interface.patch @@ -0,0 +1,87 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 73f1aa3ea4..67528cf75c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -19,6 +19,9 @@ find_package(catkin REQUIRED COMPONENTS + ) + moveit_build_options() + ++find_package(PkgConfig REQUIRED) ++pkg_check_modules(EIGENPY REQUIRED eigenpy) ++ + find_package(PythonInterp REQUIRED) + find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" REQUIRED) + +@@ -77,8 +80,11 @@ include_directories(SYSTEM + ${catkin_INCLUDE_DIRS} + ${Boost_INCLUDE_DIRS} + ${EIGEN3_INCLUDE_DIRS} ++ ${EIGENPY_INCLUDE_DIRS} + ${PYTHON_INCLUDE_DIRS}) + ++link_directories(${EIGENPY_LIBRARY_DIRS}) ++ + add_subdirectory(py_bindings_tools) + add_subdirectory(common_planning_interface_objects) + add_subdirectory(planning_scene_interface) +diff --git a/move_group_interface/CMakeLists.txt b/move_group_interface/CMakeLists.txt +index d822174bf0..c3eb1686c0 100644 +--- a/move_group_interface/CMakeLists.txt ++++ b/move_group_interface/CMakeLists.txt +@@ -2,7 +2,7 @@ set(MOVEIT_LIB_NAME moveit_move_group_interface) + + add_library(${MOVEIT_LIB_NAME} src/move_group_interface.cpp) + set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") +-target_link_libraries(${MOVEIT_LIB_NAME} moveit_common_planning_interface_objects moveit_planning_scene_interface ${catkin_LIBRARIES} ${Boost_LIBRARIES}) ++target_link_libraries(${MOVEIT_LIB_NAME} moveit_common_planning_interface_objects moveit_planning_scene_interface ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${EIGENPY_LIBRARIES}) + add_dependencies(${MOVEIT_LIB_NAME} ${catkin_EXPORTED_TARGETS}) + + add_library(${MOVEIT_LIB_NAME}_python src/wrap_python_move_group.cpp) +diff --git a/move_group_interface/include/moveit/move_group_interface/move_group_interface.h b/move_group_interface/include/moveit/move_group_interface/move_group_interface.h +index 17de157197..fdae58ab37 100644 +--- a/move_group_interface/include/moveit/move_group_interface/move_group_interface.h ++++ b/move_group_interface/include/moveit/move_group_interface/move_group_interface.h +@@ -56,6 +56,20 @@ + #include + #include + ++#include ++ ++// Import/export for windows dll's and visibility for gcc shared libraries. ++ ++#ifdef ROS_BUILD_SHARED_LIBS // ros is being built around shared libraries ++ #ifdef moveit_move_group_interface_EXPORTS // we are building a shared lib/dll ++ #define MOVEIT_MOVE_GROUP_INTERFACE_DECL ROS_HELPER_EXPORT ++ #else // we are using shared lib/dll ++ #define MOVEIT_MOVE_GROUP_INTERFACE_DECL ROS_HELPER_IMPORT ++ #endif ++#else // ros is being built around static libraries ++ #define MOVEIT_MOVE_GROUP_INTERFACE_DECL ++#endif ++ + namespace moveit + { + /** \brief Simple interface to MoveIt components */ +@@ -70,7 +84,7 @@ MOVEIT_CLASS_FORWARD(MoveGroupInterface); // Defines MoveGroupInterfacePtr, Con + \brief Client class to conveniently use the ROS interfaces provided by the move_group node. + + This class includes many default settings to make things easy to use. */ +-class MoveGroupInterface ++class MOVEIT_MOVE_GROUP_INTERFACE_DECL MoveGroupInterface + { + public: + /** \brief Default ROS parameter name from where to read the robot's URDF. Set to 'robot_description' */ +diff --git a/py_bindings_tools/CMakeLists.txt b/py_bindings_tools/CMakeLists.txt +index 1f82d7e4dc..9ef98d8136 100644 +--- a/py_bindings_tools/CMakeLists.txt ++++ b/py_bindings_tools/CMakeLists.txt +@@ -1,5 +1,9 @@ + set(MOVEIT_LIB_NAME moveit_py_bindings_tools) + ++find_package(PythonInterp REQUIRED) ++find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" REQUIRED) ++ ++ + add_library(${MOVEIT_LIB_NAME} src/roscpp_initializer.cpp) + set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") + target_link_libraries(${MOVEIT_LIB_NAME} ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES}) diff --git a/recipes/ros-noetic-moveit-ros-planning-interface/recipe.yaml b/recipes/ros-noetic-moveit-ros-planning-interface/recipe.yaml new file mode 100644 index 000000000..8914fbf6f --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..edcca348e --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..00b4ebfdc --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..e083cf765 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..69a3c1a34 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..2f3f3de4e --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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-servo/bld_catkin.bat b/recipes/ros-noetic-moveit-servo/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-moveit-servo/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%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-servo/build_catkin.sh b/recipes/ros-noetic-moveit-servo/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-moveit-servo/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${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-servo/patch/ros-noetic-moveit-servo.patch b/recipes/ros-noetic-moveit-servo/patch/ros-noetic-moveit-servo.patch new file mode 100644 index 000000000..0c25814f2 --- /dev/null +++ b/recipes/ros-noetic-moveit-servo/patch/ros-noetic-moveit-servo.patch @@ -0,0 +1,26 @@ +diff --git a/include/moveit_servo/servo_calcs.h b/include/moveit_servo/servo_calcs.h +index c67afb6e0..5d2488284 100644 +--- a/include/moveit_servo/servo_calcs.h ++++ b/include/moveit_servo/servo_calcs.h +@@ -265,7 +265,7 @@ private: + + const int gazebo_redundant_message_count_ = 30; + +- uint num_joints_; ++ std::size_t num_joints_; + + // True -> allow drift in this dimension. In the command frame. [x, y, z, roll, pitch, yaw] + std::array drift_dimensions_ = { { false, false, false, false, false, false } }; +diff --git a/src/cpp_interface_example/cpp_interface_example.cpp b/src/cpp_interface_example/cpp_interface_example.cpp +index 53e919ee3..028fb2fc0 100644 +--- a/src/cpp_interface_example/cpp_interface_example.cpp ++++ b/src/cpp_interface_example/cpp_interface_example.cpp +@@ -108,7 +108,7 @@ int main(int argc, char** argv) + auto joint_servo_pub = nh.advertise(servo.getParameters().joint_command_in_topic, 1); + + ros::Rate cmd_rate(100); +- uint num_commands = 0; ++ std::size_t num_commands = 0; + + // Send a few Cartesian velocity commands + while (ros::ok() && num_commands < 200) diff --git a/recipes/ros-noetic-moveit-servo/recipe.yaml b/recipes/ros-noetic-moveit-servo/recipe.yaml new file mode 100644 index 000000000..1be7d7f28 --- /dev/null +++ b/recipes/ros-noetic-moveit-servo/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-moveit-servo + version: 1.1.13 +source: + git_url: https://github.com/ros-gbp/moveit-release.git + git_rev: release/noetic/moveit_servo/1.1.13-2 + folder: ros-noetic-moveit-servo/src/work + patches: + - patch/ros-noetic-moveit-servo.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - 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-control-toolbox + - ros-noetic-geometry-msgs + - ros-noetic-moveit-msgs + - ros-noetic-moveit-resources-panda-moveit-config + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-rosparam-shortcuts + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2-eigen + - ros-noetic-trajectory-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-geometry-msgs + - ros-noetic-joy-teleop + - ros-noetic-moveit-msgs + - ros-noetic-moveit-ros-planning-interface + - ros-noetic-rosparam-shortcuts + - ros-noetic-sensor-msgs + - ros-noetic-spacenav-node + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2-eigen + - ros-noetic-trajectory-msgs + - 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..23ad9f02a --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..1f550d1bd --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..bb3491e2d --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..c2cec2e84 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-moveit-commander + - ros-noetic-moveit-core + - ros-noetic-moveit-planners + - ros-noetic-moveit-plugins + - ros-noetic-moveit-ros + - ros-noetic-moveit-setup-assistant + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-movie-publisher/bld_catkin.bat b/recipes/ros-noetic-movie-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-movie-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-movie-publisher/build_catkin.sh b/recipes/ros-noetic-movie-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-movie-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-movie-publisher/recipe.yaml b/recipes/ros-noetic-movie-publisher/recipe.yaml new file mode 100644 index 000000000..4a1513b41 --- /dev/null +++ b/recipes/ros-noetic-movie-publisher/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-movie-publisher + version: 1.4.0 +source: + git_url: https://github.com/peci1/movie_publisher-release.git + git_rev: release/noetic/movie_publisher/1.4.0-1 + folder: ros-noetic-movie-publisher/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - ffmpeg + - imageio + - libopencv + - py-opencv + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-rosbash-params + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-nav-core/bld_catkin.bat b/recipes/ros-noetic-nav-core/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-nav-core/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-nav-core/build_catkin.sh b/recipes/ros-noetic-nav-core/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-nav-core/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-nav-core/recipe.yaml b/recipes/ros-noetic-nav-core/recipe.yaml new file mode 100644 index 000000000..d79ab7b46 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..2e652ac69 --- /dev/null +++ b/recipes/ros-noetic-navfn/recipe.yaml @@ -0,0 +1,75 @@ +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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - netpbm + - 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..a656f4698 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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-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..07fb25ce0 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..5f536c70d --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..e9c0ee5e7 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..8f9a07f8b --- /dev/null +++ b/recipes/ros-noetic-nodelet/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-nodelet + version: 1.11.0 +source: + git_url: https://github.com/ros-gbp/nodelet_core-release.git + git_rev: release/noetic/nodelet/1.11.0-2 + folder: ros-noetic-nodelet/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - libuuid + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bondcpp + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-message-generation + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-std-msgs + run: + - boost-cpp + - libuuid + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-bondcpp + - ros-noetic-message-runtime + - ros-noetic-pluginlib + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-object-recognition-msgs/bld_catkin.bat b/recipes/ros-noetic-object-recognition-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-object-recognition-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-object-recognition-msgs/build_catkin.sh b/recipes/ros-noetic-object-recognition-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-object-recognition-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-object-recognition-msgs/recipe.yaml b/recipes/ros-noetic-object-recognition-msgs/recipe.yaml new file mode 100644 index 000000000..6e2e59291 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-octomap-mapping/bld_catkin.bat b/recipes/ros-noetic-octomap-mapping/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-octomap-mapping/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-octomap-mapping/build_catkin.sh b/recipes/ros-noetic-octomap-mapping/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-octomap-mapping/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-octomap-mapping/recipe.yaml b/recipes/ros-noetic-octomap-mapping/recipe.yaml new file mode 100644 index 000000000..05bf18a87 --- /dev/null +++ b/recipes/ros-noetic-octomap-mapping/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-octomap-mapping + version: 0.6.7 +source: + git_url: https://github.com/ros-gbp/octomap_mapping-release.git + git_rev: release/noetic/octomap_mapping/0.6.7-1 + folder: ros-noetic-octomap-mapping/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-octomap-server + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-octomap-server + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-octomap-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..5c206c461 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-octomap-server/bld_catkin.bat b/recipes/ros-noetic-octomap-server/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-octomap-server/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-octomap-server/build_catkin.sh b/recipes/ros-noetic-octomap-server/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-octomap-server/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-octomap-server/patch/ros-noetic-octomap-server.patch b/recipes/ros-noetic-octomap-server/patch/ros-noetic-octomap-server.patch new file mode 100644 index 000000000..c6c02979c --- /dev/null +++ b/recipes/ros-noetic-octomap-server/patch/ros-noetic-octomap-server.patch @@ -0,0 +1,13 @@ +diff --git a/octomap_server/src/OctomapServer.cpp b/octomap_server/src/OctomapServer.cpp +index d18eb7dd..e034b170 100644 +--- a/octomap_server/src/OctomapServer.cpp ++++ b/octomap_server/src/OctomapServer.cpp +@@ -924,7 +924,7 @@ void OctomapServer::filterGroundPlane(const PCLPointCloud& pc, PCLPointCloud& gr + second_pass.setInputCloud(pc.makeShared()); + second_pass.filter(ground); + +- second_pass.setFilterLimitsNegative (true); ++ second_pass.setNegative (true); + second_pass.filter(nonground); + } + diff --git a/recipes/ros-noetic-octomap-server/recipe.yaml b/recipes/ros-noetic-octomap-server/recipe.yaml new file mode 100644 index 000000000..24a2059ac --- /dev/null +++ b/recipes/ros-noetic-octomap-server/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-octomap-server + version: 0.6.7 +source: + git_url: https://github.com/ros-gbp/octomap_mapping-release.git + git_rev: release/noetic/octomap_server/0.6.7-1 + folder: ros-noetic-octomap-server/src/work + patches: + - patch/ros-noetic-octomap-server.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-octomap-ros + - ros-noetic-pcl-conversions + - ros-noetic-pcl-ros + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-octomap + - ros-noetic-octomap-msgs + - ros-noetic-octomap-ros + - ros-noetic-pcl-conversions + - ros-noetic-pcl-ros + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-openni2-launch/bld_catkin.bat b/recipes/ros-noetic-openni2-launch/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-openni2-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-openni2-launch/build_catkin.sh b/recipes/ros-noetic-openni2-launch/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-openni2-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-openni2-launch/recipe.yaml b/recipes/ros-noetic-openni2-launch/recipe.yaml new file mode 100644 index 000000000..aa6dbf1db --- /dev/null +++ b/recipes/ros-noetic-openni2-launch/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-openni2-launch + version: 1.6.1 +source: + git_url: https://github.com/ros-gbp/openni2_camera-release.git + git_rev: release/noetic/openni2_launch/1.6.1-1 + folder: ros-noetic-openni2-launch/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-roslaunch + run: + - catkin_pkg + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-depth-image-proc + - ros-noetic-image-proc + - ros-noetic-nodelet + - ros-noetic-rgbd-launch + - ros-noetic-rospy + - ros-noetic-roswtf + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-p2os-driver/bld_catkin.bat b/recipes/ros-noetic-p2os-driver/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-p2os-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-p2os-driver/build_catkin.sh b/recipes/ros-noetic-p2os-driver/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-p2os-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-p2os-driver/recipe.yaml b/recipes/ros-noetic-p2os-driver/recipe.yaml new file mode 100644 index 000000000..f9ec27062 --- /dev/null +++ b/recipes/ros-noetic-p2os-driver/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-p2os-driver + version: 2.2.1 +source: + git_url: https://github.com/allenh1/p2os-release.git + git_rev: release/noetic/p2os_driver/2.2.1-2 + folder: ros-noetic-p2os-driver/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-updater + - ros-noetic-geometry-msgs + - ros-noetic-kdl-parser + - ros-noetic-nav-msgs + - ros-noetic-p2os-msgs + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-updater + - ros-noetic-geometry-msgs + - ros-noetic-kdl-parser + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-p2os-msgs + - ros-noetic-roscpp + - 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-panda-moveit-config/bld_catkin.bat b/recipes/ros-noetic-panda-moveit-config/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-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-panda-moveit-config/build_catkin.sh b/recipes/ros-noetic-panda-moveit-config/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-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-panda-moveit-config/recipe.yaml b/recipes/ros-noetic-panda-moveit-config/recipe.yaml new file mode 100644 index 000000000..f7e29018d --- /dev/null +++ b/recipes/ros-noetic-panda-moveit-config/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-panda-moveit-config + version: 0.8.1 +source: + git_url: https://github.com/ros-gbp/panda_moveit_config-release.git + git_rev: release/noetic/panda_moveit_config/0.8.1-1 + folder: ros-noetic-panda-moveit-config/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-franka-description + - ros-noetic-joint-state-publisher + - ros-noetic-joint-state-publisher-gui + - ros-noetic-moveit-fake-controller-manager + - ros-noetic-moveit-kinematics + - ros-noetic-moveit-planners-ompl + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-visualization + - ros-noetic-moveit-setup-assistant + - ros-noetic-moveit-simple-controller-manager + - 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-franka-description + - ros-noetic-joint-state-publisher + - ros-noetic-joint-state-publisher-gui + - ros-noetic-moveit-fake-controller-manager + - ros-noetic-moveit-kinematics + - ros-noetic-moveit-planners-ompl + - ros-noetic-moveit-ros-move-group + - ros-noetic-moveit-ros-visualization + - ros-noetic-moveit-setup-assistant + - ros-noetic-moveit-simple-controller-manager + - 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-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..b25db63de --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..1ef080ebc --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..a67227213 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..2af952d09 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..a2a7dd847 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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-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..7c4555485 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..4e97d0ebf --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - 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-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..71fa3fd65 --- /dev/null +++ b/recipes/ros-noetic-plotjuggler-ros/recipe.yaml @@ -0,0 +1,83 @@ +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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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: + - binutils + - 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: + - binutils + - 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-point-cloud-color/bld_catkin.bat b/recipes/ros-noetic-point-cloud-color/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-point-cloud-color/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-point-cloud-color/build_catkin.sh b/recipes/ros-noetic-point-cloud-color/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-point-cloud-color/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-point-cloud-color/recipe.yaml b/recipes/ros-noetic-point-cloud-color/recipe.yaml new file mode 100644 index 000000000..84ed4116d --- /dev/null +++ b/recipes/ros-noetic-point-cloud-color/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-point-cloud-color + version: 1.2.1 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/point_cloud_color.git + git_rev: release/noetic/point_cloud_color/1.2.1-1 + folder: ros-noetic-point-cloud-color/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-point-cloud-transport + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-point-cloud-transport + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-point-cloud-transport-plugins/bld_catkin.bat b/recipes/ros-noetic-point-cloud-transport-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-point-cloud-transport-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-point-cloud-transport-plugins/build_catkin.sh b/recipes/ros-noetic-point-cloud-transport-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-point-cloud-transport-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-point-cloud-transport-plugins/recipe.yaml b/recipes/ros-noetic-point-cloud-transport-plugins/recipe.yaml new file mode 100644 index 000000000..3fbf8fc6d --- /dev/null +++ b/recipes/ros-noetic-point-cloud-transport-plugins/recipe.yaml @@ -0,0 +1,51 @@ +package: + name: ros-noetic-point-cloud-transport-plugins + version: 1.0.5 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/point_cloud_transport_plugins.git + git_rev: release/noetic/point_cloud_transport_plugins/1.0.5-1 + folder: ros-noetic-point-cloud-transport-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-draco-point-cloud-transport + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-point-cloud-transport/bld_catkin.bat b/recipes/ros-noetic-point-cloud-transport/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-point-cloud-transport/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-point-cloud-transport/build_catkin.sh b/recipes/ros-noetic-point-cloud-transport/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-point-cloud-transport/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-point-cloud-transport/recipe.yaml b/recipes/ros-noetic-point-cloud-transport/recipe.yaml new file mode 100644 index 000000000..1ed7b6794 --- /dev/null +++ b/recipes/ros-noetic-point-cloud-transport/recipe.yaml @@ -0,0 +1,74 @@ +package: + name: ros-noetic-point-cloud-transport + version: 1.0.11 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/point_cloud_transport.git + git_rev: release/noetic/point_cloud_transport/1.0.11-1 + folder: ros-noetic-point-cloud-transport/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cras-cpp-common + - ros-noetic-cras-topic-tools + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-sensor-msgs + - ros-noetic-topic-tools + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cras-cpp-common + - ros-noetic-cras-py-common + - ros-noetic-cras-topic-tools + - ros-noetic-dynamic-reconfigure + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-topic-tools + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-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..cde24be34 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-posedetection-msgs/bld_catkin.bat b/recipes/ros-noetic-posedetection-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-posedetection-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-posedetection-msgs/build_catkin.sh b/recipes/ros-noetic-posedetection-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-posedetection-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-posedetection-msgs/recipe.yaml b/recipes/ros-noetic-posedetection-msgs/recipe.yaml new file mode 100644 index 000000000..40596dfc7 --- /dev/null +++ b/recipes/ros-noetic-posedetection-msgs/recipe.yaml @@ -0,0 +1,78 @@ +package: + name: ros-noetic-posedetection-msgs + version: 4.3.2 +source: + git_url: https://github.com/tork-a/jsk_common_msgs-release.git + git_rev: release/noetic/posedetection_msgs/4.3.2-1 + folder: ros-noetic-posedetection-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - 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-message-filters + - 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') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext 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..f250a71fc --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-pr2-description/bld_catkin.bat b/recipes/ros-noetic-pr2-description/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-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-pr2-description/build_catkin.sh b/recipes/ros-noetic-pr2-description/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-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-pr2-description/recipe.yaml b/recipes/ros-noetic-pr2-description/recipe.yaml new file mode 100644 index 000000000..ade30f9d5 --- /dev/null +++ b/recipes/ros-noetic-pr2-description/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-pr2-description + version: 1.13.1 +source: + git_url: https://github.com/pr2-gbp/pr2_common-release.git + git_rev: release/noetic/pr2_description/1.13.1-1 + folder: ros-noetic-pr2-description/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - gtest + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-convex-decomposition + - ros-noetic-ivcon + - ros-noetic-rosbash + - ros-noetic-xacro + - urdfdom + 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-pr2-teleop/bld_catkin.bat b/recipes/ros-noetic-pr2-teleop/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-pr2-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-pr2-teleop/build_catkin.sh b/recipes/ros-noetic-pr2-teleop/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-pr2-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-pr2-teleop/recipe.yaml b/recipes/ros-noetic-pr2-teleop/recipe.yaml new file mode 100644 index 000000000..f2e03ebf3 --- /dev/null +++ b/recipes/ros-noetic-pr2-teleop/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-pr2-teleop + version: 0.6.2 +source: + git_url: https://github.com/pr2-gbp/pr2_apps-release.git + git_rev: release/noetic/pr2_teleop/0.6.2-1 + folder: ros-noetic-pr2-teleop/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-geometry-msgs + - ros-noetic-pr2-controllers-msgs + - ros-noetic-roscpp + - ros-noetic-roslaunch + - ros-noetic-rospy + - ros-noetic-rostest + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-topic-tools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-geometry-msgs + - ros-noetic-pr2-controllers-msgs + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-topic-tools + - 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..01bec9071 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..3dfe05ca2 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..97b9ab102 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-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..b7b382c4a --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-depth-image-proc + - ros-noetic-image-proc + - ros-noetic-nodelet + - ros-noetic-rostest + - ros-noetic-tf2-ros + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-depth-image-proc + - ros-noetic-image-proc + - ros-noetic-nodelet + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-robot-body-filter/bld_catkin.bat b/recipes/ros-noetic-robot-body-filter/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-robot-body-filter/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-robot-body-filter/build_catkin.sh b/recipes/ros-noetic-robot-body-filter/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-robot-body-filter/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-robot-body-filter/recipe.yaml b/recipes/ros-noetic-robot-body-filter/recipe.yaml new file mode 100644 index 000000000..f2f9fd66f --- /dev/null +++ b/recipes/ros-noetic-robot-body-filter/recipe.yaml @@ -0,0 +1,91 @@ +package: + name: ros-noetic-robot-body-filter + version: 1.3.2 +source: + git_url: https://github.com/peci1/robot_body_filter-release.git + git_rev: release/noetic/robot_body_filter/1.3.2-1 + folder: ros-noetic-robot-body-filter/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pcl + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-dynamic-reconfigure + - ros-noetic-fcl + - ros-noetic-filters + - ros-noetic-geometric-shapes + - ros-noetic-geometry-msgs + - ros-noetic-laser-geometry + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-perception + - ros-noetic-pcl-conversions + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-ros + - ros-noetic-tf2-sensor-msgs + - ros-noetic-urdf + - ros-noetic-visualization-msgs + run: + - pcl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-fcl + - ros-noetic-filters + - ros-noetic-geometric-shapes + - ros-noetic-geometry-msgs + - ros-noetic-laser-geometry + - ros-noetic-message-runtime + - ros-noetic-moveit-core + - ros-noetic-moveit-ros-perception + - ros-noetic-pcl-conversions + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-urdf + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-robot-localization/bld_catkin.bat b/recipes/ros-noetic-robot-localization/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-robot-localization/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-robot-localization/build_catkin.sh b/recipes/ros-noetic-robot-localization/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-robot-localization/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-robot-localization/patch/ros-noetic-robot-localization.patch b/recipes/ros-noetic-robot-localization/patch/ros-noetic-robot-localization.patch new file mode 100644 index 000000000..42fea44f3 --- /dev/null +++ b/recipes/ros-noetic-robot-localization/patch/ros-noetic-robot-localization.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cc7f334..bb20912 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -49,9 +49,6 @@ if(NOT EIGEN3_FOUND) + set(EIGEN_PACKAGE Eigen) + endif() + +-if(NOT MSVC) +- set_directory_properties(PROPERTIES COMPILE_OPTIONS "-Wall;-Werror") +-endif() + add_definitions(-DEIGEN_NO_DEBUG -DEIGEN_MPL2_ONLY) + + set(ROSLINT_CPP_OPTS "--filter=-build/c++11,-runtime/references") diff --git a/recipes/ros-noetic-robot-localization/recipe.yaml b/recipes/ros-noetic-robot-localization/recipe.yaml new file mode 100644 index 000000000..9f26df5fe --- /dev/null +++ b/recipes/ros-noetic-robot-localization/recipe.yaml @@ -0,0 +1,99 @@ +package: + name: ros-noetic-robot-localization + version: 2.7.5 +source: + git_url: https://github.com/cra-ros-pkg/robot_localization-release.git + git_rev: release/noetic/robot_localization/2.7.5-1 + folder: ros-noetic-robot-localization/src/work + patches: + - patch/ros-noetic-robot-localization.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - catkin_pkg + - eigen + - geographiclib-cpp + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-eigen-conversions + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-message-generation + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-rosbag + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - yaml-cpp + run: + - eigen + - geographiclib-cpp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-cmake-modules + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-eigen-conversions + - ros-noetic-geographic-msgs + - ros-noetic-geometry-msgs + - ros-noetic-message-filters + - ros-noetic-message-runtime + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf2 + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - yaml-cpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-robot-state-publisher/bld_catkin.bat b/recipes/ros-noetic-robot-state-publisher/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-robot-state-publisher/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-robot-state-publisher/build_catkin.sh b/recipes/ros-noetic-robot-state-publisher/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-robot-state-publisher/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-robot-state-publisher/recipe.yaml b/recipes/ros-noetic-robot-state-publisher/recipe.yaml new file mode 100644 index 000000000..954c6addc --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..6af089e86 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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/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..082112f93 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - 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..08b90513a --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..4462562fe --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-message-filters + - ros-noetic-ros + - ros-noetic-rosbag + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph + - ros-noetic-rosgraph-msgs + - ros-noetic-roslaunch + - ros-noetic-roslisp + - ros-noetic-rosmaster + - ros-noetic-rosmsg + - ros-noetic-rosnode + - ros-noetic-rosout + - ros-noetic-rosparam + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-rostest + - ros-noetic-rostopic + - ros-noetic-roswtf + - ros-noetic-std-srvs + - ros-noetic-topic-tools + - ros-noetic-xmlrpcpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-message-filters + - ros-noetic-ros + - ros-noetic-rosbag + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-rosgraph + - ros-noetic-rosgraph-msgs + - ros-noetic-roslaunch + - ros-noetic-roslisp + - ros-noetic-rosmaster + - ros-noetic-rosmsg + - ros-noetic-rosnode + - ros-noetic-rosout + - ros-noetic-rosparam + - ros-noetic-rospy + - ros-noetic-rosservice + - ros-noetic-rostest + - ros-noetic-rostopic + - ros-noetic-roswtf + - ros-noetic-std-srvs + - ros-noetic-topic-tools + - ros-noetic-xmlrpcpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-control/bld_catkin.bat b/recipes/ros-noetic-ros-control/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-control/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-control/build_catkin.sh b/recipes/ros-noetic-ros-control/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-control/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-control/recipe.yaml b/recipes/ros-noetic-ros-control/recipe.yaml new file mode 100644 index 000000000..34c961227 --- /dev/null +++ b/recipes/ros-noetic-ros-control/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-ros-control + version: 0.20.0 +source: + git_url: https://github.com/ros-gbp/ros_control-release.git + git_rev: release/noetic/ros_control/0.20.0-1 + folder: ros-noetic-ros-control/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-combined-robot-hw + - ros-noetic-controller-interface + - ros-noetic-controller-manager + - ros-noetic-controller-manager-msgs + - ros-noetic-hardware-interface + - ros-noetic-joint-limits-interface + - ros-noetic-realtime-tools + - ros-noetic-transmission-interface + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-ros-controllers/bld_catkin.bat b/recipes/ros-noetic-ros-controllers/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-ros-controllers/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-ros-controllers/build_catkin.sh b/recipes/ros-noetic-ros-controllers/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-ros-controllers/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-ros-controllers/recipe.yaml b/recipes/ros-noetic-ros-controllers/recipe.yaml new file mode 100644 index 000000000..961e1bcb5 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..bc23aca93 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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-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..1db176931 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..44eace9b8 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..036125adc --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - 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-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..0016d821b --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..c432b35d2 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost-cpp + - numpy + - pillow + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cpp-common + - ros-noetic-rosbag-storage + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roscpp-serialization + - ros-noetic-std-srvs + - ros-noetic-topic-tools + - ros-noetic-xmlrpcpp + run: + - boost-cpp + - pycryptodome + - pycryptodomex + - python + - python-gnupg + - ros-distro-mutex 0.5 noetic + - ros-noetic-genmsg + - ros-noetic-genpy + - ros-noetic-rosbag-storage + - ros-noetic-rosconsole + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-rospy + - ros-noetic-std-srvs + - ros-noetic-topic-tools + - ros-noetic-xmlrpcpp + - rospkg + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosbash-params/bld_catkin.bat b/recipes/ros-noetic-rosbash-params/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosbash-params/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rosbash-params/build_catkin.sh b/recipes/ros-noetic-rosbash-params/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosbash-params/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rosbash-params/recipe.yaml b/recipes/ros-noetic-rosbash-params/recipe.yaml new file mode 100644 index 000000000..3f7834173 --- /dev/null +++ b/recipes/ros-noetic-rosbash-params/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-rosbash-params + version: 1.1.0 +source: + git_url: https://github.com/peci1/rosbash_params-release.git + git_rev: release/noetic/rosbash_params/1.1.0-1 + folder: ros-noetic-rosbash-params/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosbash + - ros-noetic-rospy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-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..f32b90aae --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - 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-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..6f2290b1a --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..a275a8e2c --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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-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..8a07918b8 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..39c8b539e --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..b21b789c3 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..b1fb52649 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..f7aedae20 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..3cdb96de5 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..4aeadc4e7 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..69ec7f7e7 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..86884e7a8 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pyserial + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-rospy + - ros-noetic-rosserial-msgs + run: + - pyserial + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-rospy + - ros-noetic-rosserial-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rosserial/bld_catkin.bat b/recipes/ros-noetic-rosserial/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rosserial/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%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/build_catkin.sh b/recipes/ros-noetic-rosserial/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rosserial/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${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/recipe.yaml b/recipes/ros-noetic-rosserial/recipe.yaml new file mode 100644 index 000000000..be77af7f9 --- /dev/null +++ b/recipes/ros-noetic-rosserial/recipe.yaml @@ -0,0 +1,56 @@ +package: + name: ros-noetic-rosserial + version: 0.9.2 +source: + git_url: https://github.com/ros-gbp/rosserial-release.git + git_rev: release/noetic/rosserial/0.9.2-1 + folder: ros-noetic-rosserial/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-rosserial-client + - ros-noetic-rosserial-msgs + - ros-noetic-rosserial-python + run: + - python + - ros-distro-mutex 0.5 noetic + - 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-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..502b00ce1 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..e523beb4c --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..aea966648 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..7ec9a98a3 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..398d2ce10 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..46d382a74 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..3177aec62 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..158b3f3a3 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..b697968fc --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..3092cacf4 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..41e4cb62f --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..026878406 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..b23fa99c0 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..100db7708 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..61bba9c54 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..32054e910 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..7b8ca19da --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..a37c2429a --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..7196fc12a --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..639550304 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..4920c6a99 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..ac575ed7a --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..1d73b175d --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..0a2ebdc19 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..04a81a081 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..4a8b1937b --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..12df92c7b --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..62723e63e --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..8abeeb863 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..a916fe718 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..4d3814f76 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..729c41bed --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..80161254c --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..934058f01 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..12975d43b --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..dac62348c --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..d98a9bd76 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..3f36ab2b0 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..1cf6741ca --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..46d1c57ac --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..d442fb148 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..549377daa --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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-rtabmap-conversions/bld_catkin.bat b/recipes/ros-noetic-rtabmap-conversions/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-conversions/build_catkin.sh b/recipes/ros-noetic-rtabmap-conversions/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-conversions/patch/ros-noetic-rtabmap-conversions.patch b/recipes/ros-noetic-rtabmap-conversions/patch/ros-noetic-rtabmap-conversions.patch new file mode 100644 index 000000000..35cb68b8f --- /dev/null +++ b/recipes/ros-noetic-rtabmap-conversions/patch/ros-noetic-rtabmap-conversions.patch @@ -0,0 +1,18 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index adbc48dd..455a72b1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,13 @@ + cmake_minimum_required(VERSION 3.5) + project(rtabmap_conversions) + ++set(CMAKE_MODULE_PATH "$ENV{PREFIX}/lib/cmake/vtk-9.2") ++find_package(jsoncpp REQUIRED) ++find_package(libxml2 REQUIRED) ++find_package(NetCDF REQUIRED) ++find_package(HDF5 COMPONENTS HL REQUIRED) ++find_package(LibPROJ REQUIRED) ++ + find_package(catkin REQUIRED COMPONENTS + cv_bridge roscpp sensor_msgs std_msgs geometry_msgs + tf tf_conversions eigen_conversions laser_geometry pcl_conversions diff --git a/recipes/ros-noetic-rtabmap-conversions/recipe.yaml b/recipes/ros-noetic-rtabmap-conversions/recipe.yaml new file mode 100644 index 000000000..40ed972c8 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-conversions/recipe.yaml @@ -0,0 +1,91 @@ +package: + name: ros-noetic-rtabmap-conversions + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_conversions/0.21.3-4 + folder: ros-noetic-rtabmap-conversions/src/work + patches: + - patch/ros-noetic-rtabmap-conversions.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-cv-bridge + - ros-noetic-eigen-conversions + - ros-noetic-geometry-msgs + - ros-noetic-image-geometry + - ros-noetic-laser-geometry + - ros-noetic-pcl-conversions + - ros-noetic-roscpp + - ros-noetic-rtabmap + - ros-noetic-rtabmap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-tf-conversions + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-eigen-conversions + - ros-noetic-geometry-msgs + - ros-noetic-image-geometry + - ros-noetic-laser-geometry + - ros-noetic-pcl-conversions + - ros-noetic-roscpp + - ros-noetic-rtabmap + - ros-noetic-rtabmap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - ros-noetic-tf-conversions + - 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-rtabmap-costmap-plugins/bld_catkin.bat b/recipes/ros-noetic-rtabmap-costmap-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-costmap-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-rtabmap-costmap-plugins/build_catkin.sh b/recipes/ros-noetic-rtabmap-costmap-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-costmap-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-rtabmap-costmap-plugins/recipe.yaml b/recipes/ros-noetic-rtabmap-costmap-plugins/recipe.yaml new file mode 100644 index 000000000..c1f145854 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-costmap-plugins/recipe.yaml @@ -0,0 +1,60 @@ +package: + name: ros-noetic-rtabmap-costmap-plugins + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_costmap_plugins/0.21.3-4 + folder: ros-noetic-rtabmap-costmap-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pcl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-costmap-2d + - ros-noetic-dynamic-reconfigure + - ros-noetic-genmsg + - ros-noetic-message-generation + - ros-noetic-pcl-conversions + - ros-noetic-roscpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-costmap-2d + - ros-noetic-pcl-conversions + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rtabmap-demos/bld_catkin.bat b/recipes/ros-noetic-rtabmap-demos/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-demos/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rtabmap-demos/build_catkin.sh b/recipes/ros-noetic-rtabmap-demos/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-demos/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rtabmap-demos/recipe.yaml b/recipes/ros-noetic-rtabmap-demos/recipe.yaml new file mode 100644 index 000000000..d2bba53e9 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-demos/recipe.yaml @@ -0,0 +1,71 @@ +package: + name: ros-noetic-rtabmap-demos + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_demos/0.21.3-4 + folder: ros-noetic-rtabmap-demos/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-find-object-2d + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-msgs + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-find-object-2d + - ros-noetic-hector-mapping + - ros-noetic-husky-navigation + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-costmap-plugins + - ros-noetic-rtabmap-launch + - ros-noetic-rtabmap-msgs + - ros-noetic-rtabmap-odom + - ros-noetic-rtabmap-rviz-plugins + - ros-noetic-rtabmap-slam + - ros-noetic-rtabmap-sync + - ros-noetic-rtabmap-util + - ros-noetic-rtabmap-viz + - ros-noetic-turtlebot3-bringup + - ros-noetic-turtlebot3-gazebo + - ros-noetic-turtlebot3-navigation + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rtabmap-examples/bld_catkin.bat b/recipes/ros-noetic-rtabmap-examples/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-examples/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rtabmap-examples/build_catkin.sh b/recipes/ros-noetic-rtabmap-examples/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-examples/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rtabmap-examples/recipe.yaml b/recipes/ros-noetic-rtabmap-examples/recipe.yaml new file mode 100644 index 000000000..85cf36955 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-examples/recipe.yaml @@ -0,0 +1,69 @@ +package: + name: ros-noetic-rtabmap-examples + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_examples/0.21.3-4 + folder: ros-noetic-rtabmap-examples/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-roscpp + - ros-noetic-rtabmap-conversions + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-imu-filter-madgwick + - ros-noetic-message-filters + - ros-noetic-realsense2-camera + - ros-noetic-robot-localization + - ros-noetic-roscpp + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-costmap-plugins + - ros-noetic-rtabmap-demos + - ros-noetic-rtabmap-launch + - ros-noetic-rtabmap-msgs + - ros-noetic-rtabmap-odom + - ros-noetic-rtabmap-rviz-plugins + - ros-noetic-rtabmap-slam + - ros-noetic-rtabmap-util + - ros-noetic-rtabmap-viz + - ros-noetic-velodyne-pointcloud + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rtabmap-launch/bld_catkin.bat b/recipes/ros-noetic-rtabmap-launch/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-launch/build_catkin.sh b/recipes/ros-noetic-rtabmap-launch/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-launch/recipe.yaml b/recipes/ros-noetic-rtabmap-launch/recipe.yaml new file mode 100644 index 000000000..c624d2a64 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-launch/recipe.yaml @@ -0,0 +1,57 @@ +package: + name: ros-noetic-rtabmap-launch + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_launch/0.21.3-4 + folder: ros-noetic-rtabmap-launch/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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-rtabmap-costmap-plugins + - ros-noetic-rtabmap-msgs + - ros-noetic-rtabmap-odom + - ros-noetic-rtabmap-rviz-plugins + - ros-noetic-rtabmap-slam + - ros-noetic-rtabmap-util + - ros-noetic-rtabmap-viz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rtabmap-legacy/bld_catkin.bat b/recipes/ros-noetic-rtabmap-legacy/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-legacy/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rtabmap-legacy/build_catkin.sh b/recipes/ros-noetic-rtabmap-legacy/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-legacy/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rtabmap-legacy/recipe.yaml b/recipes/ros-noetic-rtabmap-legacy/recipe.yaml new file mode 100644 index 000000000..002e658ad --- /dev/null +++ b/recipes/ros-noetic-rtabmap-legacy/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-rtabmap-legacy + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_legacy/0.21.3-4 + folder: ros-noetic-rtabmap-legacy/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-image-transport + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-msgs + - ros-noetic-rtabmap-util + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-demos + - ros-noetic-rtabmap-launch + - ros-noetic-rtabmap-msgs + - ros-noetic-rtabmap-odom + - ros-noetic-rtabmap-slam + - ros-noetic-rtabmap-util + - ros-noetic-rtabmap-viz + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rtabmap-msgs/bld_catkin.bat b/recipes/ros-noetic-rtabmap-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-msgs/build_catkin.sh b/recipes/ros-noetic-rtabmap-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-msgs/recipe.yaml b/recipes/ros-noetic-rtabmap-msgs/recipe.yaml new file mode 100644 index 000000000..11e372c05 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-msgs/recipe.yaml @@ -0,0 +1,62 @@ +package: + name: ros-noetic-rtabmap-msgs + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_msgs/0.21.3-4 + folder: ros-noetic-rtabmap-msgs/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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 + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + 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 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rtabmap-odom/bld_catkin.bat b/recipes/ros-noetic-rtabmap-odom/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-odom/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rtabmap-odom/build_catkin.sh b/recipes/ros-noetic-rtabmap-odom/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-odom/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rtabmap-odom/recipe.yaml b/recipes/ros-noetic-rtabmap-odom/recipe.yaml new file mode 100644 index 000000000..90418ce15 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-odom/recipe.yaml @@ -0,0 +1,80 @@ +package: + name: ros-noetic-rtabmap-odom + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_odom/0.21.3-4 + folder: ros-noetic-rtabmap-odom/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-laser-geometry + - ros-noetic-message-filters + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-pcl-conversions + - ros-noetic-pcl-ros + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-msgs + - ros-noetic-rtabmap-sync + - ros-noetic-rtabmap-util + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-image-geometry + - ros-noetic-laser-geometry + - ros-noetic-message-filters + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-pcl-conversions + - ros-noetic-pcl-ros + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-msgs + - ros-noetic-rtabmap-sync + - ros-noetic-rtabmap-util + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rtabmap-python/bld_catkin.bat b/recipes/ros-noetic-rtabmap-python/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-python/build_catkin.sh b/recipes/ros-noetic-rtabmap-python/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-python/recipe.yaml b/recipes/ros-noetic-rtabmap-python/recipe.yaml new file mode 100644 index 000000000..96df9784d --- /dev/null +++ b/recipes/ros-noetic-rtabmap-python/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-rtabmap-python + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_python/0.21.3-4 + folder: ros-noetic-rtabmap-python/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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 + run: + - python + - 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-rtabmap-ros/bld_catkin.bat b/recipes/ros-noetic-rtabmap-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-ros/build_catkin.sh b/recipes/ros-noetic-rtabmap-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-ros/recipe.yaml b/recipes/ros-noetic-rtabmap-ros/recipe.yaml new file mode 100644 index 000000000..304fff544 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-ros/recipe.yaml @@ -0,0 +1,76 @@ +package: + name: ros-noetic-rtabmap-ros + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_ros/0.21.3-4 + folder: ros-noetic-rtabmap-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-costmap-plugins + - ros-noetic-rtabmap-demos + - ros-noetic-rtabmap-examples + - ros-noetic-rtabmap-launch + - ros-noetic-rtabmap-legacy + - ros-noetic-rtabmap-msgs + - ros-noetic-rtabmap-python + - ros-noetic-rtabmap-rviz-plugins + - ros-noetic-rtabmap-slam + - ros-noetic-rtabmap-sync + - ros-noetic-rtabmap-util + - ros-noetic-rtabmap-viz + - 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-rtabmap-rviz-plugins/bld_catkin.bat b/recipes/ros-noetic-rtabmap-rviz-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-rviz-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-rtabmap-rviz-plugins/build_catkin.sh b/recipes/ros-noetic-rtabmap-rviz-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-rviz-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-rtabmap-rviz-plugins/recipe.yaml b/recipes/ros-noetic-rtabmap-rviz-plugins/recipe.yaml new file mode 100644 index 000000000..6b0fd1b76 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-rviz-plugins/recipe.yaml @@ -0,0 +1,81 @@ +package: + name: ros-noetic-rtabmap-rviz-plugins + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_rviz_plugins/0.21.3-4 + folder: ros-noetic-rtabmap-rviz-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-pcl-conversions + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-msgs + - ros-noetic-rviz + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-pcl-conversions + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-msgs + - ros-noetic-rviz + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-tf + - 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-rtabmap-slam/bld_catkin.bat b/recipes/ros-noetic-rtabmap-slam/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-slam/build_catkin.sh b/recipes/ros-noetic-rtabmap-slam/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-slam/recipe.yaml b/recipes/ros-noetic-rtabmap-slam/recipe.yaml new file mode 100644 index 000000000..fedcb492c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-slam/recipe.yaml @@ -0,0 +1,86 @@ +package: + name: ros-noetic-rtabmap-slam + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_slam/0.21.3-4 + folder: ros-noetic-rtabmap-slam/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-apriltag-ros + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-move-base-msgs + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-rtabmap-msgs + - ros-noetic-rtabmap-sync + - ros-noetic-rtabmap-util + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-actionlib + - ros-noetic-actionlib-msgs + - ros-noetic-apriltag-ros + - ros-noetic-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-move-base-msgs + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-pluginlib + - ros-noetic-rtabmap-msgs + - ros-noetic-rtabmap-sync + - ros-noetic-rtabmap-util + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - 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-rtabmap-sync/bld_catkin.bat b/recipes/ros-noetic-rtabmap-sync/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-sync/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rtabmap-sync/build_catkin.sh b/recipes/ros-noetic-rtabmap-sync/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-sync/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rtabmap-sync/recipe.yaml b/recipes/ros-noetic-rtabmap-sync/recipe.yaml new file mode 100644 index 000000000..3151e41c4 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-sync/recipe.yaml @@ -0,0 +1,70 @@ +package: + name: ros-noetic-rtabmap-sync + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_sync/0.21.3-4 + folder: ros-noetic-rtabmap-sync/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-diagnostic-updater + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-msgs + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-diagnostic-updater + - ros-noetic-image-transport + - ros-noetic-message-filters + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-msgs + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rtabmap-util/bld_catkin.bat b/recipes/ros-noetic-rtabmap-util/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-util/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rtabmap-util/build_catkin.sh b/recipes/ros-noetic-rtabmap-util/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-util/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rtabmap-util/recipe.yaml b/recipes/ros-noetic-rtabmap-util/recipe.yaml new file mode 100644 index 000000000..36fc1f601 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-util/recipe.yaml @@ -0,0 +1,86 @@ +package: + name: ros-noetic-rtabmap-util + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_util/0.21.3-4 + folder: ros-noetic-rtabmap-util/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-grid-map-ros + - ros-noetic-image-transport + - ros-noetic-laser-geometry + - ros-noetic-message-filters + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-octomap-msgs + - ros-noetic-pcl-conversions + - ros-noetic-pcl-ros + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-stereo-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-grid-map-ros + - ros-noetic-image-transport + - ros-noetic-laser-geometry + - ros-noetic-message-filters + - ros-noetic-nav-msgs + - ros-noetic-nodelet + - ros-noetic-octomap-msgs + - ros-noetic-pcl-conversions + - ros-noetic-pcl-ros + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-rtabmap-conversions + - ros-noetic-rtabmap-msgs + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-stereo-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-rtabmap-viz/bld_catkin.bat b/recipes/ros-noetic-rtabmap-viz/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-viz/build_catkin.sh b/recipes/ros-noetic-rtabmap-viz/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap-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-rtabmap-viz/recipe.yaml b/recipes/ros-noetic-rtabmap-viz/recipe.yaml new file mode 100644 index 000000000..8ce246674 --- /dev/null +++ b/recipes/ros-noetic-rtabmap-viz/recipe.yaml @@ -0,0 +1,79 @@ +package: + name: ros-noetic-rtabmap-viz + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap_ros-release.git + git_rev: release/noetic/rtabmap_viz/0.21.3-4 + folder: ros-noetic-rtabmap-viz/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-cv-bridge + - ros-noetic-geometry-msgs + - ros-noetic-nav-msgs + - ros-noetic-rtabmap-msgs + - ros-noetic-rtabmap-sync + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - 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-nav-msgs + - ros-noetic-rtabmap-msgs + - ros-noetic-rtabmap-sync + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - ros-noetic-tf + - 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-rtabmap/bld_catkin.bat b/recipes/ros-noetic-rtabmap/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rtabmap/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rtabmap/build_catkin.sh b/recipes/ros-noetic-rtabmap/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rtabmap/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rtabmap/patch/ros-noetic-rtabmap.patch b/recipes/ros-noetic-rtabmap/patch/ros-noetic-rtabmap.patch new file mode 100644 index 000000000..72ee91369 --- /dev/null +++ b/recipes/ros-noetic-rtabmap/patch/ros-noetic-rtabmap.patch @@ -0,0 +1,72 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8658bcc5..2de825c9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -83,14 +83,6 @@ IF(MINGW) + SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-auto-import") + ENDIF(MINGW) + +-# GCC 4 required +-IF(UNIX OR MINGW) +- EXEC_PROGRAM( gcc ARGS "-dumpversion" OUTPUT_VARIABLE GCC_VERSION ) +- IF(GCC_VERSION VERSION_LESS "4.0.0") +- MESSAGE(FATAL_ERROR "GCC ${GCC_VERSION} found, but version 4.x.x minimum is required") +- ENDIF(GCC_VERSION VERSION_LESS "4.0.0") +-ENDIF(UNIX OR MINGW) +- + #The CDT Error Parser cannot handle error messages that span + #more than one line, which is the default gcc behavior. + #In order to force gcc to generate single line error messages with no line wrapping +@@ -167,14 +159,14 @@ OPTION(BUILD_TOOLS "Build tools" ON) + OPTION(BUILD_EXAMPLES "Build examples" ON) + + ####### DEPENDENCIES ####### +-IF(MOBILE_BUILD) ++IF(FALSE) + option(WITH_QT "Include Qt support" OFF) + ELSE() + option(WITH_QT "Include Qt support" ON) + ENDIF() + option(WITH_ORB_OCTREE "Include ORB Octree feature support" ON) + option(WITH_TORCH "Include Torch support (SuperPoint)" OFF) +-option(WITH_PYTHON "Include Python3 support (PyMatcher, PyDetector)" OFF) ++option(WITH_PYTHON "Include Python3 support (PyMatcher, PyDetector)" ON) + option(WITH_PYTHON_THREADING "Use more than one Python interpreter." OFF) + option(WITH_PDAL "Include PDAL support" ON) + option(WITH_FREENECT "Include Freenect support" ON) +@@ -375,6 +367,8 @@ IF(WITH_QT) + ENDIF() + ADD_DEFINITIONS(-DQT_NO_KEYWORDS) # To avoid conflicts with boost signals/foreach and Qt macros + ENDIF(QT4_FOUND OR Qt5_FOUND OR Qt6_FOUND) ++ELSE() ++ add_compile_definitions(DISABLE_VTK) + ENDIF(WITH_QT) + + IF(NOT VTK_FOUND) +diff --git a/corelib/src/CMakeLists.txt b/corelib/src/CMakeLists.txt +index df7cbaa0..4c47fd02 100644 +--- a/corelib/src/CMakeLists.txt ++++ b/corelib/src/CMakeLists.txt +@@ -164,6 +164,13 @@ SET(LIBRARIES + ${ZLIB_LIBRARIES} + ) + ++IF(VTK_FOUND) ++ SET(LIBRARIES ++ ${LIBRARIES} ++ ${VTK_LIBRARIES} ++ ) ++ENDIF() ++ + # Issue that qhull dependency uses optimized and debug keywords, + # which are converted to \$<\$> and \$<\$ + # in RTABMap_coreTargets.cmake (not sure why?!). +@@ -228,6 +235,8 @@ IF(WITH_PYTHON AND Python3_FOUND) + SET(INCLUDE_DIRS + ${TORCH_INCLUDE_DIRS} + ${CMAKE_CURRENT_SOURCE_DIR}/python ++ ${Python3_INCLUDE_DIRS} ++ ${Python3_NumPy_INCLUDE_DIRS} + ${INCLUDE_DIRS} + ) + ENDIF(WITH_PYTHON AND Python3_FOUND) diff --git a/recipes/ros-noetic-rtabmap/recipe.yaml b/recipes/ros-noetic-rtabmap/recipe.yaml new file mode 100644 index 000000000..84cb981dc --- /dev/null +++ b/recipes/ros-noetic-rtabmap/recipe.yaml @@ -0,0 +1,85 @@ +package: + name: ros-noetic-rtabmap + version: 0.21.3 +source: + git_url: https://github.com/introlab/rtabmap-release.git + git_rev: release/noetic/rtabmap/0.21.3-1 + folder: ros-noetic-rtabmap/src/work + patches: + - patch/ros-noetic-rtabmap.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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): pybind11 + - 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 + - pcl + - pip + - sel(build_platform == target_platform): pkg-config + - proj + - pybind11 + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-grid-map-core + - ros-noetic-gtsam + - ros-noetic-libg2o + - ros-noetic-octomap + - ros-noetic-qt-gui-cpp + - sqlite 3.* + - zlib + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - pcl + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-cv-bridge + - ros-noetic-grid-map-core + - ros-noetic-gtsam + - ros-noetic-libg2o + - ros-noetic-octomap + - ros-noetic-qt-gui-cpp + - sqlite + - zlib + - 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-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..5564b0753 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..4e98ff017 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..b71b530d0 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..c4a074db9 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + - sel(linux): "{{ cdt('mesa-libgl-devel') }}" + - sel(linux): "{{ cdt('mesa-dri-drivers') }}" + - sel(linux): "{{ cdt('libselinux') }}" + - sel(linux): "{{ cdt('libxdamage') }}" + - sel(linux): "{{ cdt('libxxf86vm') }}" + - sel(linux): "{{ cdt('libxfixes') }}" + - sel(linux): "{{ cdt('libxext') }}" + - sel(linux): "{{ cdt('libxau') }}" + - sel(linux): "{{ cdt('libxcb') }}" + host: + - numpy + - ogre + - pip + - sel(build_platform == target_platform): pkg-config + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-eigen-stl-containers + - ros-noetic-geometry-msgs + - ros-noetic-graph-msgs + - ros-noetic-interactive-markers + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-rviz + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - ogre + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-eigen-stl-containers + - ros-noetic-geometry-msgs + - ros-noetic-graph-msgs + - ros-noetic-interactive-markers + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-rviz + - ros-noetic-sensor-msgs + - ros-noetic-shape-msgs + - ros-noetic-std-msgs + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-trajectory-msgs + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext diff --git a/recipes/ros-noetic-rviz/bld_catkin.bat b/recipes/ros-noetic-rviz/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-rviz/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-rviz/build_catkin.sh b/recipes/ros-noetic-rviz/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-rviz/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.patch b/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.patch new file mode 100644 index 000000000..ccf0fe54a --- /dev/null +++ b/recipes/ros-noetic-rviz/patch/ros-noetic-rviz.patch @@ -0,0 +1,126 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d623dd4e..e4490137 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,11 @@ + cmake_minimum_required(VERSION 3.0.2) + project(rviz) + ++## Restrict Windows header namespace usage ++if(WIN32) ++ add_definitions(-DNOGDI) ++endif() ++ + if (POLICY CMP0042) + cmake_policy(SET CMP0042 NEW) + endif() +@@ -98,10 +103,10 @@ if(APPLE) + endif() + + # Prefer newer vender-specific OpenGL library +-if (POLICY CMP0072) +- cmake_policy(SET CMP0072 NEW) +-endif() +-find_package(OpenGL REQUIRED) ++# if (POLICY CMP0072) ++# cmake_policy(SET CMP0072 NEW) ++# endif() ++# find_package(OpenGL REQUIRED) + + set(CMAKE_AUTOMOC ON) + +@@ -214,7 +219,7 @@ catkin_package( + + #catkin_lint: ignore_once external_directory + include_directories(src ${EXPORT_HEADER_DIR}) +-include_directories(SYSTEM ++include_directories( + ${EIGEN3_INCLUDE_DIRS} + ${OGRE_INCLUDE_DIRS} + ${OPENGL_INCLUDE_DIR} +diff --git a/ogre_media/fonts/ogre1.10.fontdef b/ogre_media/fonts/ogre1.10.fontdef +index 4b3c5b82..e714db0f 100644 +--- a/ogre_media/fonts/ogre1.10.fontdef ++++ b/ogre_media/fonts/ogre1.10.fontdef +@@ -1,3 +1,12 @@ ++Liberation Sans ++{ ++ type truetype ++ source liberation-sans/LiberationSans-Regular.ttf ++ size 18 ++ resolution 96 ++} ++ ++# Ogre >= 1.10 has changed the format + font "Liberation Sans" + { + type truetype +diff --git a/src/python_bindings/sip/CMakeLists.txt b/src/python_bindings/sip/CMakeLists.txt +index efbb497b..d2f4eb9b 100644 +--- a/src/python_bindings/sip/CMakeLists.txt ++++ b/src/python_bindings/sip/CMakeLists.txt +@@ -48,14 +48,21 @@ set(rviz_sip_INCLUDE_DIRS + ${OGRE_INCLUDE_DIRS} + ${catkin_INCLUDE_DIRS} + ) ++ ++find_package(OpenGL REQUIRED) ++find_package(Threads REQUIRED) + set(rviz_sip_LIBRARIES ${rviz_LIBRARIES} ${PROJECT_NAME}) +-set(rviz_sip_LIBRARY_DIRS ${rviz_LIBRARY_DIRS} ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}) ++set(rviz_sip_LIBRARY_DIRS ${rviz_LIBRARY_DIRS} ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION} /usr/lib/x86_64-linux-gnu/) + if (MSVC) + set(rviz_sip_LDFLAGS_OTHER ${rviz_LDFLAGS_OTHER} /LIBPATH:\"${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}\") + else() + set(rviz_sip_LDFLAGS_OTHER ${rviz_LDFLAGS_OTHER} -Wl,-rpath,\\"${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION}\\") + endif() + ++message(WARNING "rviz_sip_LIBRARIES: ${rviz_sip_LIBRARIES}") ++message(WARNING "rviz_sip_LIBRARY_DIRS: ${rviz_sip_LIBRARY_DIRS}") ++ ++ + if(sip_helper_FOUND) + list(APPEND rviz_BINDINGS "sip") + set(rviz_BINDINGS "${rviz_BINDINGS}" PARENT_SCOPE) +@@ -69,11 +76,21 @@ if(sip_helper_FOUND) + if(DEFINED PYTHON_EXTENSION_MODULE_SUFFIX) + set(rviz_sip_LIBRARY_FILE librviz_sip${PYTHON_EXTENSION_MODULE_SUFFIX}) + elseif(APPLE) +- set(rviz_sip_LIBRARY_FILE librviz_sip.so) ++ # Okay-ish hack for now ++ if(TRUE) ++ set(rviz_sip_LIBRARY_FILE "librviz_sip.cpython-${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}-darwin.so") ++ else() ++ set(rviz_sip_LIBRARY_FILE librviz_sip.so) ++ endif() + elseif(WIN32) + set(rviz_sip_LIBRARY_FILE librviz_sip.pyd) + else() +- set(rviz_sip_LIBRARY_FILE librviz_sip${CMAKE_SHARED_LIBRARY_SUFFIX}) ++ if(TRUE) ++ message(WARNING "Use hack") ++ set(rviz_sip_LIBRARY_FILE "librviz_sip.cpython-${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}-${CMAKE_HOST_SYSTEM_PROCESSOR}-linux-gnu${CMAKE_SHARED_LIBRARY_SUFFIX}") ++ else() ++ set(rviz_sip_LIBRARY_FILE librviz_sip${CMAKE_SHARED_LIBRARY_SUFFIX}) ++ endif() + endif() + #catkin_lint: ignore_once external_file + install(FILES ${CATKIN_DEVEL_PREFIX}/${PYTHON_INSTALL_DIR}/rviz/${rviz_sip_LIBRARY_FILE} +diff --git a/src/rviz/ogre_helpers/render_system.cpp b/src/rviz/ogre_helpers/render_system.cpp +index 4005f982..c0441de8 100644 +--- a/src/rviz/ogre_helpers/render_system.cpp ++++ b/src/rviz/ogre_helpers/render_system.cpp +@@ -159,9 +159,10 @@ void RenderSystem::setupDummyWindowId() + + void RenderSystem::loadOgrePlugins() + { +- std::string plugin_prefix = get_ogre_plugin_path() + "/"; +-#ifdef Q_OS_MAC +- plugin_prefix += "lib"; ++#ifdef _WIN32 ++ std::string plugin_prefix = std::string(std::getenv("CONDA_PREFIX")) + "\\Library\\bin\\"; ++#else ++ std::string plugin_prefix = std::string(std::getenv("CONDA_PREFIX")) + "/lib/OGRE/"; + #endif + ogre_root_->loadPlugin(plugin_prefix + "RenderSystem_GL"); + ogre_root_->loadPlugin(plugin_prefix + "Plugin_OctreeSceneManager"); diff --git a/recipes/ros-noetic-rviz/recipe.yaml b/recipes/ros-noetic-rviz/recipe.yaml new file mode 100644 index 000000000..a9e8f9d95 --- /dev/null +++ b/recipes/ros-noetic-rviz/recipe.yaml @@ -0,0 +1,128 @@ +package: + name: ros-noetic-rviz + version: 1.14.20 +source: + git_url: https://github.com/ros-gbp/rviz-release.git + git_rev: release/noetic/rviz/1.14.20-1 + folder: ros-noetic-rviz/src/work + patches: + - patch/ros-noetic-rviz.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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..6531d3396 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-roscpp + - ros-noetic-rostest + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-msgs + - ros-noetic-diagnostic-updater + - ros-noetic-roscpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-sensor-filters/bld_catkin.bat b/recipes/ros-noetic-sensor-filters/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-sensor-filters/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-sensor-filters/build_catkin.sh b/recipes/ros-noetic-sensor-filters/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-sensor-filters/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-sensor-filters/recipe.yaml b/recipes/ros-noetic-sensor-filters/recipe.yaml new file mode 100644 index 000000000..1357b56e4 --- /dev/null +++ b/recipes/ros-noetic-sensor-filters/recipe.yaml @@ -0,0 +1,63 @@ +package: + name: ros-noetic-sensor-filters + version: 1.1.1 +source: + git_url: https://github.com/ctu-vras/sensor_filters-release.git + git_rev: release/noetic/sensor_filters/1.1.1-1 + folder: ros-noetic-sensor-filters/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-filters + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-point-cloud-transport + - ros-noetic-roscpp + - ros-noetic-roslint + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-filters + - ros-noetic-image-transport + - ros-noetic-nodelet + - ros-noetic-point-cloud-transport + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-sensor-msgs/bld_catkin.bat b/recipes/ros-noetic-sensor-msgs/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-sensor-msgs/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-sensor-msgs/build_catkin.sh b/recipes/ros-noetic-sensor-msgs/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-sensor-msgs/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-sensor-msgs/recipe.yaml b/recipes/ros-noetic-sensor-msgs/recipe.yaml new file mode 100644 index 000000000..40a1abad4 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..bd5c2c092 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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-slam-gmapping/bld_catkin.bat b/recipes/ros-noetic-slam-gmapping/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-slam-gmapping/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-slam-gmapping/build_catkin.sh b/recipes/ros-noetic-slam-gmapping/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-slam-gmapping/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-slam-gmapping/recipe.yaml b/recipes/ros-noetic-slam-gmapping/recipe.yaml new file mode 100644 index 000000000..58f10f4e4 --- /dev/null +++ b/recipes/ros-noetic-slam-gmapping/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-slam-gmapping + version: 1.4.2 +source: + git_url: https://github.com/ros-gbp/slam_gmapping-release.git + git_rev: release/noetic/slam_gmapping/1.4.2-1 + folder: ros-noetic-slam-gmapping/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-gmapping + - ros-noetic-openslam-gmapping + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-gmapping + - ros-noetic-openslam-gmapping + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-slam-toolbox/bld_catkin.bat b/recipes/ros-noetic-slam-toolbox/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-slam-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-slam-toolbox/build_catkin.sh b/recipes/ros-noetic-slam-toolbox/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-slam-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-slam-toolbox/patch/ros-noetic-slam-toolbox.patch b/recipes/ros-noetic-slam-toolbox/patch/ros-noetic-slam-toolbox.patch new file mode 100644 index 000000000..26d997b1e --- /dev/null +++ b/recipes/ros-noetic-slam-toolbox/patch/ros-noetic-slam-toolbox.patch @@ -0,0 +1,169 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b423d97..17e60c8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -40,6 +40,7 @@ find_package(Cholmod REQUIRED) + find_package(LAPACK REQUIRED) + find_package(Ceres REQUIRED COMPONENTS SuiteSparse) + find_package(rostest REQUIRED) ++find_package(TBB REQUIRED CONFIG) + + set(CMAKE_INCLUDE_CURRENT_DIR ON) + add_definitions(-DQT_NO_KEYWORDS) +@@ -90,7 +91,7 @@ add_library(ceres_solver_plugin solvers/ceres_solver.cpp) + target_link_libraries(ceres_solver_plugin ${catkin_LIBRARIES} + ${CERES_LIBRARIES} + ${Boost_LIBRARIES} +- ${TBB_LIBRARIES} ++ TBB::tbb + ) + + #### Tool lib for mapping +diff --git a/lib/karto_sdk/CMakeLists.txt b/lib/karto_sdk/CMakeLists.txt +index ad6ef02..15eab81 100644 +--- a/lib/karto_sdk/CMakeLists.txt ++++ b/lib/karto_sdk/CMakeLists.txt +@@ -8,7 +8,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/") + find_package(catkin REQUIRED) + find_package(Eigen3 REQUIRED) + find_package(Boost REQUIRED system serialization filesystem thread) +-find_package(TBB REQUIRED) ++find_package(TBB REQUIRED CONFIG) + add_compile_options(-std=c++17) + + catkin_package( +@@ -26,7 +26,7 @@ add_definitions(${EIGEN3_DEFINITIONS}) + + include_directories(include ${catkin_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) + add_library(kartoSlamToolbox SHARED src/Karto.cpp src/Mapper.cpp) +-target_link_libraries(kartoSlamToolbox ${Boost_LIBRARIES} ${TBB_LIBRARIES}) ++target_link_libraries(kartoSlamToolbox ${Boost_LIBRARIES} TBB::tbb) + + install(DIRECTORY include/ DESTINATION include) + install(TARGETS kartoSlamToolbox +diff --git a/lib/karto_sdk/include/karto_sdk/Karto.h b/lib/karto_sdk/include/karto_sdk/Karto.h +index c4c4f27..5373b46 100644 +--- a/lib/karto_sdk/include/karto_sdk/Karto.h ++++ b/lib/karto_sdk/include/karto_sdk/Karto.h +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + #include + + #include +diff --git a/lib/karto_sdk/include/karto_sdk/Mapper.h b/lib/karto_sdk/include/karto_sdk/Mapper.h +index 2a439c6..94164f3 100644 +--- a/lib/karto_sdk/include/karto_sdk/Mapper.h ++++ b/lib/karto_sdk/include/karto_sdk/Mapper.h +@@ -26,7 +26,7 @@ + #include + + #include "tbb/parallel_for.h" +-#include "tbb/parallel_do.h" ++#include "tbb/parallel_for_each.h" + #include "tbb/blocked_range.h" + #include + #include +diff --git a/lib/karto_sdk/src/Mapper.cpp b/lib/karto_sdk/src/Mapper.cpp +index 7466216..97384d7 100644 +--- a/lib/karto_sdk/src/Mapper.cpp ++++ b/lib/karto_sdk/src/Mapper.cpp +@@ -776,7 +776,7 @@ namespace karto + m_nAngles = nAngles; + m_searchAngleResolution = searchAngleResolution; + m_doPenalize = doPenalize; +- tbb::parallel_do(m_yPoses, (*this) ); ++ tbb::parallel_for_each(m_yPoses, (*this) ); + + // find value of best response (in [0; 1]) + kt_double bestResponse = -1; +diff --git a/solvers/ceres_solver.cpp b/solvers/ceres_solver.cpp +index 99a03a7..88da9f6 100644 +--- a/solvers/ceres_solver.cpp ++++ b/solvers/ceres_solver.cpp +@@ -341,9 +341,9 @@ void CeresSolver::AddConstraint(karto::Edge* pEdge) + cost_function, loss_function_, + &node1it->second(0), &node1it->second(1), &node1it->second(2), + &node2it->second(0), &node2it->second(1), &node2it->second(2)); +- problem_->SetParameterization(&node1it->second(2), ++ problem_->SetManifold(&node1it->second(2), + angle_local_parameterization_); +- problem_->SetParameterization(&node2it->second(2), ++ problem_->SetManifold(&node2it->second(2), + angle_local_parameterization_); + + blocks_->insert(std::pair( +diff --git a/solvers/ceres_solver.hpp b/solvers/ceres_solver.hpp +index 9c0f060..edcd2a2 100644 +--- a/solvers/ceres_solver.hpp ++++ b/solvers/ceres_solver.hpp +@@ -15,7 +15,7 @@ + + #include + #include +-#include ++#include + #include + #include + +@@ -57,7 +57,7 @@ private: + ceres::Problem::Options options_problem_; + ceres::LossFunction* loss_function_; + ceres::Problem* problem_; +- ceres::LocalParameterization* angle_local_parameterization_; ++ ceres::Manifold* angle_local_parameterization_; + bool was_constant_set_, debug_logging_; + + // graph +diff --git a/solvers/ceres_utils.h b/solvers/ceres_utils.h +index 08b5f62..021d1b1 100644 +--- a/solvers/ceres_utils.h ++++ b/solvers/ceres_utils.h +@@ -4,7 +4,7 @@ + */ + + #include +-#include ++#include + #include + #include + +@@ -34,6 +34,24 @@ template inline T NormalizeAngle(const T& angle_radians) + class AngleLocalParameterization + { + public: ++ template ++ bool Plus(const T* x_radians, ++ const T* delta_radians, ++ T* x_plus_delta_radians) const { ++ *x_plus_delta_radians = NormalizeAngle(*x_radians + *delta_radians); ++ return true; ++ } ++ ++ template ++ bool Minus(const T* y_radians, ++ const T* x_radians, ++ T* y_minus_x_radians) const { ++ *y_minus_x_radians = ++ NormalizeAngle(*y_radians) - NormalizeAngle(*x_radians); ++ ++ return true; ++ } ++ + template + bool operator()(const T* theta_radians, const T* delta_theta_radians, T* theta_radians_plus_delta) const + { +@@ -41,9 +59,9 @@ class AngleLocalParameterization + return true; + } + +- static ceres::LocalParameterization* Create() ++ static ceres::Manifold* Create() + { +- return (new ceres::AutoDiffLocalParameterization); ++ return (new ceres::AutoDiffManifold); + } + }; + diff --git a/recipes/ros-noetic-slam-toolbox/recipe.yaml b/recipes/ros-noetic-slam-toolbox/recipe.yaml new file mode 100644 index 000000000..f1036bd56 --- /dev/null +++ b/recipes/ros-noetic-slam-toolbox/recipe.yaml @@ -0,0 +1,119 @@ +package: + name: ros-noetic-slam-toolbox + version: 1.5.7 +source: + git_url: https://github.com/SteveMacenski/slam_toolbox-release.git + git_rev: release/noetic/slam_toolbox/1.5.7-1 + folder: ros-noetic-slam-toolbox/src/work + patches: + - patch/ros-noetic-slam-toolbox.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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: + - ceres-solver + - eigen + - gtest + - liblapack + - numpy + - 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-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 + - tbb + - tbb-devel + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - ceres-solver + - eigen + - liblapack + - python + - qt-main + - ros-distro-mutex 0.5 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 + - tbb + - tbb-devel + - 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-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..e03189c2d --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-snmp-ros/bld_catkin.bat b/recipes/ros-noetic-snmp-ros/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-snmp-ros/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-snmp-ros/build_catkin.sh b/recipes/ros-noetic-snmp-ros/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-snmp-ros/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-snmp-ros/recipe.yaml b/recipes/ros-noetic-snmp-ros/recipe.yaml new file mode 100644 index 000000000..b7d6996f0 --- /dev/null +++ b/recipes/ros-noetic-snmp-ros/recipe.yaml @@ -0,0 +1,53 @@ +package: + name: ros-noetic-snmp-ros + version: 1.0.2 +source: + git_url: https://github.com/ctu-vras/snmp_ros-release.git + git_rev: release/noetic/snmp_ros/1.0.2-1 + folder: ros-noetic-snmp-ros/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - pysnmp + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-std-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-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..b287b33a3 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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-spacenav-node/bld_catkin.bat b/recipes/ros-noetic-spacenav-node/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-spacenav-node/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-spacenav-node/build_catkin.sh b/recipes/ros-noetic-spacenav-node/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-spacenav-node/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-spacenav-node/patch/ros-noetic-spacenav-node.patch b/recipes/ros-noetic-spacenav-node/patch/ros-noetic-spacenav-node.patch new file mode 100644 index 000000000..a217e7c92 --- /dev/null +++ b/recipes/ros-noetic-spacenav-node/patch/ros-noetic-spacenav-node.patch @@ -0,0 +1,20 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1b1ef70..1c37fbb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -11,9 +11,13 @@ catkin_package(DEPENDS geometry_msgs sensor_msgs) + + roslint_cpp() + ++find_library(SPNAV_LIBRARY ++ NAMES spnav ++) ++ + include_directories(${catkin_INCLUDE_DIRS}) + add_executable(spacenav_node src/spacenav_node.cpp) +-target_link_libraries (spacenav_node spnav X11 ${catkin_LIBRARIES}) ++target_link_libraries (spacenav_node ${SPNAV_LIBRARY} X11 ${catkin_LIBRARIES}) + + if(CATKIN_ENABLE_TESTING) + roslint_add_test() + diff --git a/recipes/ros-noetic-spacenav-node/recipe.yaml b/recipes/ros-noetic-spacenav-node/recipe.yaml new file mode 100644 index 000000000..ac0ff07ed --- /dev/null +++ b/recipes/ros-noetic-spacenav-node/recipe.yaml @@ -0,0 +1,76 @@ +package: + name: ros-noetic-spacenav-node + version: 1.15.1 +source: + git_url: https://github.com/ros-gbp/joystick_drivers-release.git + git_rev: release/noetic/spacenav_node/1.15.1-1 + folder: ros-noetic-spacenav-node/src/work + patches: + - patch/ros-noetic-spacenav-node.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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: + - libspnav + - 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-roslint + - ros-noetic-sensor-msgs + - xorg-libx11 + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - libspnav + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - xorg-libx11 + - 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-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..61e1bc325 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - boost + - console_bridge + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-rostest + - ros-noetic-urdf + - tinyxml2 + run: + - boost + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-urdf + - ros-noetic-urdfdom-py + - tinyxml2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-static-transform-mux/bld_catkin.bat b/recipes/ros-noetic-static-transform-mux/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-static-transform-mux/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-static-transform-mux/build_catkin.sh b/recipes/ros-noetic-static-transform-mux/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-static-transform-mux/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-static-transform-mux/recipe.yaml b/recipes/ros-noetic-static-transform-mux/recipe.yaml new file mode 100644 index 000000000..67438bc8b --- /dev/null +++ b/recipes/ros-noetic-static-transform-mux/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-static-transform-mux + version: 1.1.1 +source: + git_url: https://github.com/peci1/static_transform_mux-release.git + git_rev: release/noetic/static_transform_mux/1.1.1-1 + folder: ros-noetic-static-transform-mux/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-tf2-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-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..139137779 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..fdad1e9e4 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-swri-console/bld_catkin.bat b/recipes/ros-noetic-swri-console/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-swri-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-swri-console/build_catkin.sh b/recipes/ros-noetic-swri-console/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-swri-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-swri-console/recipe.yaml b/recipes/ros-noetic-swri-console/recipe.yaml new file mode 100644 index 000000000..dc6e66f87 --- /dev/null +++ b/recipes/ros-noetic-swri-console/recipe.yaml @@ -0,0 +1,73 @@ +package: + name: ros-noetic-swri-console + version: 1.1.1 +source: + git_url: https://github.com/swri-robotics-gbp/swri_console-release.git + git_rev: release/noetic/swri_console/1.1.1-1 + folder: ros-noetic-swri-console/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-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-rosbag-storage + - ros-noetic-roscpp + - ros-noetic-rosgraph-msgs + - sel(unix): xorg-libx11 + - sel(unix): xorg-libxext + run: + - boost + - python + - qt-main + - ros-distro-mutex 0.5 noetic + - ros-noetic-rosbag-storage + - ros-noetic-roscpp + - ros-noetic-rosgraph-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-teb-local-planner/bld_catkin.bat b/recipes/ros-noetic-teb-local-planner/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-teb-local-planner/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-teb-local-planner/build_catkin.sh b/recipes/ros-noetic-teb-local-planner/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-teb-local-planner/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-teb-local-planner/patch/ros-noetic-teb-local-planner.linux.patch b/recipes/ros-noetic-teb-local-planner/patch/ros-noetic-teb-local-planner.linux.patch new file mode 100644 index 000000000..a6f271260 --- /dev/null +++ b/recipes/ros-noetic-teb-local-planner/patch/ros-noetic-teb-local-planner.linux.patch @@ -0,0 +1,33 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 97fe249..0bc3d7e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -32,7 +32,7 @@ message(STATUS "System: ${CMAKE_SYSTEM}") + SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake_modules) + message(STATUS "${CMAKE_MODULE_PATH}") + find_package(Boost REQUIRED COMPONENTS system thread graph) +-find_package(SUITESPARSE REQUIRED) ++# find_package(SUITESPARSE REQUIRED) + find_package(G2O REQUIRED) + + # Eigen3 FindScript Backward compatibility (ubuntu saucy) +@@ -47,8 +47,8 @@ elseif (EXISTS "FindEigen.cmake") + e.g. by adding it to ${PROJECT_SOURCE_DIR}/cmake_modules.") + endif (EXISTS "FindEigen3.cmake") + +-set(EXTERNAL_INCLUDE_DIRS ${Eigen_INCLUDE_DIRS} ${SUITESPARSE_INCLUDE_DIRS} ${G2O_INCLUDE_DIR}) +-set(EXTERNAL_LIBS ${SUITESPARSE_LIBRARIES} ${G2O_LIBRARIES}) ++set(EXTERNAL_INCLUDE_DIRS ${Eigen_INCLUDE_DIRS} ${G2O_INCLUDE_DIR}) ++set(EXTERNAL_LIBS ${G2O_LIBRARIES}) + + ## Uncomment this if the package has a setup.py. This macro ensures + ## modules and global scripts declared therein get installed +@@ -163,7 +163,7 @@ catkin_package( + tf2 + tf2_ros + visualization_msgs +- DEPENDS SUITESPARSE G2O ++ DEPENDS G2O + ) + + ########### diff --git a/recipes/ros-noetic-teb-local-planner/recipe.yaml b/recipes/ros-noetic-teb-local-planner/recipe.yaml new file mode 100644 index 000000000..0625e93f0 --- /dev/null +++ b/recipes/ros-noetic-teb-local-planner/recipe.yaml @@ -0,0 +1,92 @@ +package: + name: ros-noetic-teb-local-planner + version: 0.9.1 +source: + git_url: https://github.com/rst-tu-dortmund/teb_local_planner-release.git + git_rev: release/noetic/teb_local_planner/0.9.1-1 + folder: ros-noetic-teb-local-planner/src/work + patches: + - patch/ros-noetic-teb-local-planner.linux.patch + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-base-local-planner + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-costmap-2d + - ros-noetic-costmap-converter + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-interactive-markers + - ros-noetic-libg2o + - ros-noetic-mbf-costmap-core + - ros-noetic-mbf-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-eigen + - ros-noetic-tf2-geometry-msgs + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-base-local-planner + - ros-noetic-costmap-2d + - ros-noetic-costmap-converter + - ros-noetic-dynamic-reconfigure + - ros-noetic-geometry-msgs + - ros-noetic-interactive-markers + - ros-noetic-libg2o + - ros-noetic-mbf-costmap-core + - ros-noetic-mbf-msgs + - ros-noetic-message-runtime + - ros-noetic-nav-core + - ros-noetic-nav-msgs + - ros-noetic-pluginlib + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - ros-noetic-visualization-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-teleop-twist-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..8d89ef357 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..911665080 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - orocos-kdl + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-kdl-conversions + - ros-noetic-tf + run: + - eigen + - orocos-kdl + - python + - python-orocos-kdl + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-kdl-conversions + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf-remapper-cpp/bld_catkin.bat b/recipes/ros-noetic-tf-remapper-cpp/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf-remapper-cpp/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf-remapper-cpp/build_catkin.sh b/recipes/ros-noetic-tf-remapper-cpp/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf-remapper-cpp/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf-remapper-cpp/recipe.yaml b/recipes/ros-noetic-tf-remapper-cpp/recipe.yaml new file mode 100644 index 000000000..66ad10756 --- /dev/null +++ b/recipes/ros-noetic-tf-remapper-cpp/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-tf-remapper-cpp + version: 1.1.1 +source: + git_url: https://github.com/peci1/tf_remapper_cpp-release.git + git_rev: release/noetic/tf_remapper_cpp/1.1.1-1 + folder: ros-noetic-tf-remapper-cpp/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf + - ros-noetic-tf2-msgs + - ros-noetic-xmlrpcpp + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-tf2-msgs + - ros-noetic-xmlrpcpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf/bld_catkin.bat b/recipes/ros-noetic-tf/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf/build_catkin.sh b/recipes/ros-noetic-tf/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf/recipe.yaml b/recipes/ros-noetic-tf/recipe.yaml new file mode 100644 index 000000000..81f441417 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..1864c3cf7 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - bullet + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-tf2 + run: + - bullet + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-tf2 + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-client/bld_catkin.bat b/recipes/ros-noetic-tf2-client/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-client/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-client/build_catkin.sh b/recipes/ros-noetic-tf2-client/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-client/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-client/recipe.yaml b/recipes/ros-noetic-tf2-client/recipe.yaml new file mode 100644 index 000000000..2f18a9986 --- /dev/null +++ b/recipes/ros-noetic-tf2-client/recipe.yaml @@ -0,0 +1,59 @@ +package: + name: ros-noetic-tf2-client + version: 1.0.0 +source: + git_url: https://gitlab.fel.cvut.cz/cras/ros-release/tf2_client.git + git_rev: release/noetic/tf2_client/1.0.0-2 + folder: ros-noetic-tf2-client/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-eigen/bld_catkin.bat b/recipes/ros-noetic-tf2-eigen/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-eigen/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-eigen/build_catkin.sh b/recipes/ros-noetic-tf2-eigen/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-eigen/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-eigen/recipe.yaml b/recipes/ros-noetic-tf2-eigen/recipe.yaml new file mode 100644 index 000000000..8f1b3059e --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..8be28a7b2 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - 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..f35bd2345 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-py/bld_catkin.bat b/recipes/ros-noetic-tf2-py/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-py/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-py/build_catkin.sh b/recipes/ros-noetic-tf2-py/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-py/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-py/recipe.yaml b/recipes/ros-noetic-tf2-py/recipe.yaml new file mode 100644 index 000000000..456427b70 --- /dev/null +++ b/recipes/ros-noetic-tf2-py/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: ros-noetic-tf2-py + version: 0.7.7 +source: + git_url: https://github.com/ros-gbp/geometry2-release.git + git_rev: release/noetic/tf2_py/0.7.7-1 + folder: ros-noetic-tf2-py/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..42907b280 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..d378b5d89 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - eigen + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-cmake-modules + - ros-noetic-geometry-msgs + - ros-noetic-rostest + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + run: + - eigen + - python + - python-orocos-kdl + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - ros-noetic-sensor-msgs + - ros-noetic-tf2 + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-server/bld_catkin.bat b/recipes/ros-noetic-tf2-server/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-server/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-server/build_catkin.sh b/recipes/ros-noetic-tf2-server/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-server/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-server/recipe.yaml b/recipes/ros-noetic-tf2-server/recipe.yaml new file mode 100644 index 000000000..43dac769c --- /dev/null +++ b/recipes/ros-noetic-tf2-server/recipe.yaml @@ -0,0 +1,68 @@ +package: + name: ros-noetic-tf2-server + version: 1.1.3 +source: + git_url: https://github.com/peci1/tf2_server-release.git + git_rev: release/noetic/tf2_server/1.1.3-1 + folder: ros-noetic-tf2-server/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - gtest + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-geometry-msgs + - ros-noetic-message-generation + - ros-noetic-message-runtime + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-rostest + - ros-noetic-tf + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - setuptools + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-geometry-msgs + - ros-noetic-message-runtime + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-rospy + - ros-noetic-tf2-msgs + - ros-noetic-tf2-ros + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-tf2-tools/bld_catkin.bat b/recipes/ros-noetic-tf2-tools/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-tf2-tools/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-tf2-tools/build_catkin.sh b/recipes/ros-noetic-tf2-tools/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-tf2-tools/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-tf2-tools/recipe.yaml b/recipes/ros-noetic-tf2-tools/recipe.yaml new file mode 100644 index 000000000..1d4e9345d --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..bc2c00585 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..4f43bcfdd --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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..bcbe144d5 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..debc6bd22 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(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..ceb9b7478 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..d5400f5c3 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..1cdb2bb51 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..17ca3653a --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..cdd73a1c8 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..289d22690 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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-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..2269abc2e --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..59823f64c --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..be2389512 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..2562f8948 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..8a75acd1f --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - mock + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - setuptools + run: + - python + - pyyaml + - ros-distro-mutex 0.5 noetic + - ros-noetic-rospy + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-usb-cam/bld_catkin.bat b/recipes/ros-noetic-usb-cam/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-usb-cam/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-usb-cam/build_catkin.sh b/recipes/ros-noetic-usb-cam/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-usb-cam/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-usb-cam/recipe.yaml b/recipes/ros-noetic-usb-cam/recipe.yaml new file mode 100644 index 000000000..45fd93f80 --- /dev/null +++ b/recipes/ros-noetic-usb-cam/recipe.yaml @@ -0,0 +1,66 @@ +package: + name: ros-noetic-usb-cam + version: 0.3.7 +source: + git_url: https://github.com/ros-gbp/usb_cam-release.git + git_rev: release/noetic/usb_cam/0.3.7-1 + folder: ros-noetic-usb-cam/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - ffmpeg + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-info-manager + - ros-noetic-catkin + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + run: + - ffmpeg + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-camera-info-manager + - ros-noetic-cv-bridge + - ros-noetic-image-transport + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-std-msgs + - ros-noetic-std-srvs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-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..a1a431b22 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-catkin + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-pluginlib + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-urdf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-control-msgs + - ros-noetic-control-toolbox + - ros-noetic-controller-interface + - ros-noetic-forward-command-controller + - ros-noetic-hardware-interface + - ros-noetic-realtime-tools + - ros-noetic-roscpp + - ros-noetic-std-msgs + - ros-noetic-urdf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-velodyne-description/bld_catkin.bat b/recipes/ros-noetic-velodyne-description/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-velodyne-description/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-velodyne-description/build_catkin.sh b/recipes/ros-noetic-velodyne-description/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-velodyne-description/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-velodyne-description/recipe.yaml b/recipes/ros-noetic-velodyne-description/recipe.yaml new file mode 100644 index 000000000..3e99d345c --- /dev/null +++ b/recipes/ros-noetic-velodyne-description/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-velodyne-description + version: 1.0.13 +source: + git_url: https://github.com/DataspeedInc-release/velodyne_simulator-release.git + git_rev: release/noetic/velodyne_description/1.0.13-1 + folder: ros-noetic-velodyne-description/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-urdf + - ros-noetic-xacro + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-velodyne-driver/bld_catkin.bat b/recipes/ros-noetic-velodyne-driver/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-velodyne-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-velodyne-driver/build_catkin.sh b/recipes/ros-noetic-velodyne-driver/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-velodyne-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-velodyne-driver/recipe.yaml b/recipes/ros-noetic-velodyne-driver/recipe.yaml new file mode 100644 index 000000000..0dfeca187 --- /dev/null +++ b/recipes/ros-noetic-velodyne-driver/recipe.yaml @@ -0,0 +1,67 @@ +package: + name: ros-noetic-velodyne-driver + version: 1.7.0 +source: + git_url: https://github.com/ros-drivers-gbp/velodyne-release.git + git_rev: release/noetic/velodyne_driver/1.7.0-1 + folder: ros-noetic-velodyne-driver/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - libpcap + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-roslaunch + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-tf + - ros-noetic-velodyne-msgs + run: + - libpcap + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-tf + - ros-noetic-velodyne-msgs + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-velodyne-gazebo-plugins/bld_catkin.bat b/recipes/ros-noetic-velodyne-gazebo-plugins/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-velodyne-gazebo-plugins/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-velodyne-gazebo-plugins/build_catkin.sh b/recipes/ros-noetic-velodyne-gazebo-plugins/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-velodyne-gazebo-plugins/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-velodyne-gazebo-plugins/recipe.yaml b/recipes/ros-noetic-velodyne-gazebo-plugins/recipe.yaml new file mode 100644 index 000000000..7c5d852a8 --- /dev/null +++ b/recipes/ros-noetic-velodyne-gazebo-plugins/recipe.yaml @@ -0,0 +1,58 @@ +package: + name: ros-noetic-velodyne-gazebo-plugins + version: 1.0.13 +source: + git_url: https://github.com/DataspeedInc-release/velodyne_simulator-release.git + git_rev: release/noetic/velodyne_gazebo_plugins/1.0.13-1 + folder: ros-noetic-velodyne-gazebo-plugins/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + - ros-noetic-gazebo-ros + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-gazebo-ros + - ros-noetic-roscpp + - ros-noetic-sensor-msgs + - ros-noetic-tf + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-velodyne-laserscan/bld_catkin.bat b/recipes/ros-noetic-velodyne-laserscan/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-velodyne-laserscan/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-velodyne-laserscan/build_catkin.sh b/recipes/ros-noetic-velodyne-laserscan/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-velodyne-laserscan/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-velodyne-laserscan/recipe.yaml b/recipes/ros-noetic-velodyne-laserscan/recipe.yaml new file mode 100644 index 000000000..fcf52df67 --- /dev/null +++ b/recipes/ros-noetic-velodyne-laserscan/recipe.yaml @@ -0,0 +1,61 @@ +package: + name: ros-noetic-velodyne-laserscan + version: 1.7.0 +source: + git_url: https://github.com/ros-drivers-gbp/velodyne-release.git + git_rev: release/noetic/velodyne_laserscan/1.7.0-1 + folder: ros-noetic-velodyne-laserscan/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-nodelet + - ros-noetic-roscpp + - ros-noetic-roslaunch + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-sensor-msgs + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-dynamic-reconfigure + - 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-velodyne-pointcloud/bld_catkin.bat b/recipes/ros-noetic-velodyne-pointcloud/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-velodyne-pointcloud/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-velodyne-pointcloud/build_catkin.sh b/recipes/ros-noetic-velodyne-pointcloud/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-velodyne-pointcloud/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-velodyne-pointcloud/recipe.yaml b/recipes/ros-noetic-velodyne-pointcloud/recipe.yaml new file mode 100644 index 000000000..613284801 --- /dev/null +++ b/recipes/ros-noetic-velodyne-pointcloud/recipe.yaml @@ -0,0 +1,79 @@ +package: + name: ros-noetic-velodyne-pointcloud + version: 1.7.0 +source: + git_url: https://github.com/ros-drivers-gbp/velodyne-release.git + git_rev: release/noetic/velodyne_pointcloud/1.7.0-1 + folder: ros-noetic-velodyne-pointcloud/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-roslaunch + - ros-noetic-roslib + - ros-noetic-roslint + - ros-noetic-rostest + - ros-noetic-rosunit + - ros-noetic-sensor-msgs + - ros-noetic-tf2-ros + - ros-noetic-velodyne-driver + - ros-noetic-velodyne-msgs + - yaml-cpp + run: + - eigen + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-angles + - ros-noetic-diagnostic-updater + - ros-noetic-dynamic-reconfigure + - ros-noetic-nodelet + - ros-noetic-roscpp + - ros-noetic-roslib + - ros-noetic-sensor-msgs + - ros-noetic-tf2-ros + - ros-noetic-velodyne-driver + - ros-noetic-velodyne-laserscan + - ros-noetic-velodyne-msgs + - yaml-cpp + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-velodyne-simulator/bld_catkin.bat b/recipes/ros-noetic-velodyne-simulator/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-velodyne-simulator/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-velodyne-simulator/build_catkin.sh b/recipes/ros-noetic-velodyne-simulator/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-velodyne-simulator/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-velodyne-simulator/recipe.yaml b/recipes/ros-noetic-velodyne-simulator/recipe.yaml new file mode 100644 index 000000000..fe82d02a7 --- /dev/null +++ b/recipes/ros-noetic-velodyne-simulator/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros-noetic-velodyne-simulator + version: 1.0.13 +source: + git_url: https://github.com/DataspeedInc-release/velodyne_simulator-release.git + git_rev: release/noetic/velodyne_simulator/1.0.13-1 + folder: ros-noetic-velodyne-simulator/src/work + +build: + script: + sel(win): bld_catkin.bat + sel(unix): build_catkin.sh + number: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_platform): numpy + host: + - numpy + - pip + - sel(build_platform == target_platform): pkg-config + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-catkin + run: + - python + - ros-distro-mutex 0.5 noetic + - ros-noetic-velodyne-description + - ros-noetic-velodyne-gazebo-plugins + - sel(osx and x86_64): __osx >={{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-noetic-vision-opencv/bld_catkin.bat b/recipes/ros-noetic-vision-opencv/bld_catkin.bat new file mode 100644 index 000000000..f2d597637 --- /dev/null +++ b/recipes/ros-noetic-vision-opencv/bld_catkin.bat @@ -0,0 +1,80 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-noetic-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-noetic-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-noetic-vision-opencv/build_catkin.sh b/recipes/ros-noetic-vision-opencv/build_catkin.sh new file mode 100644 index 000000000..4dd855a8c --- /dev/null +++ b/recipes/ros-noetic-vision-opencv/build_catkin.sh @@ -0,0 +1,119 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-noetic-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-noetic-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-noetic-vision-opencv/recipe.yaml b/recipes/ros-noetic-vision-opencv/recipe.yaml new file mode 100644 index 000000000..f863bae74 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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-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..da7d9105c --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..1315f714b --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_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..95553ff01 --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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..cb92fd08a --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - 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-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..a1bad163d --- /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: 17 +about: + home: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - "{{ compiler('cxx') }}" + - "{{ compiler('c') }}" + - sel(linux64): sysroot_linux-64 2.17 + - ninja + - setuptools + - sel(unix): make + - sel(unix): coreutils + - sel(osx): tapi + - sel(build_platform != target_platform): pkg-config + - cmake + - cython + - sel(build_platform != target_platform): python + - sel(build_platform != target_platform): cross-python_{{ target_platform }} + - sel(build_platform != target_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/vinca.yaml b/vinca.yaml new file mode 100644 index 000000000..fe7a19b2d --- /dev/null +++ b/vinca.yaml @@ -0,0 +1,1189 @@ +ros_distro: noetic +mutex_package: ros-distro-mutex 0.5 noetic + +# mapping for package keys +conda_index: + - robostack.yaml + - packages-ignore.yaml + +build_number: 17 + +# 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: + - eigenpy + - hpp-fcl + - pinocchio + # - ros_core + # - diagnostic_updater + +packages_remove_from_deps: + - stage-ros + - stage + - kobuki-ftdi # needs too many patches for ftdi & usb + - openni2-camera + - libpointmatcher + +build_in_own_azure_stage: + - ros-noetic-jsk-pcl-ros-utils + - ros-noetic-jsk-pcl-ros + - ros-noetic-jsk-perception + +skip_existing: + # - https://conda.anaconda.org/robostack/ + - https://conda.anaconda.org/robostack-staging/ + +# This list contains lots of commented-out package names. That is okay. +# Not all packages need to be rebuilt with every pull request. +# Do not be afraid if you see a package commented out after some time - it just means it is not being built now. +# For sure it will be uncommented and built with next full rebuild. Full rebuilds happen occasionally (few times a year). +# The list of all maintained packages is at https://robostack.github.io/noetic.html . +packages_select_by_deps: + - cras_cpp_common # maintainer peci1 + - cras_py_common # maintainer peci1 + - cras_docs_common # maintainer peci1 + - cras_topic_tools # maintainer peci1 + - image_transport_codecs # maintainer peci1 + - point_cloud_transport # maintainer peci1 + - point_cloud_transport_plugins # maintainer peci1 + - draco_point_cloud_transport # maintainer peci1 + - sensor_filters # maintainer peci1 + - cras_relative_positional_controller # maintainer peci1 + - cras_msgs # maintainer peci1 + - compass_msgs # maintainer peci1 + - magnetometer_compass # maintainer peci1 + - electronic_io_msgs # maintainer peci1 + - electronic_io # maintainer peci1 + - point_cloud_color # maintainer peci1 + - rosmsg_cpp # maintainer peci1 + - snmp_ros # maintainer peci1 + - robot_body_filter # maintainer peci1 + - static_transform_mux # maintainer peci1 + - tf_remapper_cpp # maintainer peci1 + - roslint # maintainer peci1 + - tf2_server # maintainer peci1 + - rosbash_params # maintainer peci1 + - dynamic_robot_state_publisher # maintainer peci1 + - tf2_client # maintainer peci1 + - tf_static_publisher # maintainer peci1 + - movie_publisher # maintainer peci1 + - geometric_shapes + - teleop-twist-keyboard + - rosserial-client + - rosserial-arduino + - rosserial + - global-planner + - navigation + - ecl-core + - ecl-threads + - jsk-visualization + - actionlib + - ros-babel-fish + - ros-babel-fish-test-msgs + - moveit_visual_tools + - moveit-servo + - rviz_visual_tools + - rgbd-launch + - microstrain-inertial-driver + - microstrain-inertial-msgs + - usb-cam + - octomap-ros + - octomap-mapping + - octomap-server + - ackermann-msgs + - fake-localization + - realsense2-description + - openni2-camera + - openni2-launch + - p2os_driver + + - desktop + - desktop-full + # - pybind11_catkin # Needs to be patched to use conda-forge's pybind11 + + - apriltag + - apriltag-ros + - find-object-2d + - rtabmap + - rtabmap-ros + - convex-decomposition + - pcl-ros + - pcl-conversions + ## Only limited number of packages to reduce maintainer burden + - catkin + - ros-control + - ros-controllers + - imu-sensor-controller + - ackermann-steering-controller + - rqt-gui + - velodyne-description + - velodyne-simulator + - effort-controllers + - velocity-controllers + - teb-local-planner + - slam-toolbox + - turtlebot3-teleop + - force-torque-sensor-controller + - gripper-action-controller + - rqt-gui-cpp + - rqt-gui-py + - mavros-msgs + - mavros + - libmavconn + - mavros-extras + - mavlink + - 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 + - plotjuggler + - plotjuggler_ros + - rosbridge_suite + - swri-console + - panda_moveit_config + - handeye + - criutils + - baldor + - catch-ros + + - amcl + - map-server + - move-base + - gmapping + - simulators + - desktop_full + - moveit-ros-move-group + - moveit-ros-manipulation + - moveit + - robot_localization + - gazebo-dev + - gazebo-ros + - hector-gazebo-plugins + - depthimage-to-laserscan + - joy + - nmea-msgs + + # Used to work on robostack-staging, now broken + # - rosfmt # see https://github.com/xqms/rosfmt/issues/12 + # - rosmon # because of https://github.com/xqms/rosfmt/issues/12 + + # - gazebo-ros-control + # - gazebo-plugins + # - lms1xx + # - controller-manager + # - interactive_marker_twist_server + # - diff-drive-controller + # - joint-state-controller + # - robot-localization + # - teleop-twist-joy + # - twist-mux + # - pointgrey-camera-description + # - geometry-msgs + # - nmea-navsat-driver + # - rosserial-server + # - imu-filter-madgwick + # - rosserial-python + # - tf2_web_republisher + # - libfranka + # - franka + # - franka-gripper + # - franka-hw + # - franka-msgs + # - franka-description + # - franka-control + # - franka_example_controllers + # - franka_ros + # - combined-robot-hw + # - panda-moveit-config + # - moveit-ros-visualization + # - moveit-ros-planning-interface + # - niryo_one_simulation + # - teb-local-planner + # - turtlebot3 + # - turtlebot3-fake + # - librealsense2 + # - realsense2_camera + # - ur-msgs + # - rosdoc-lite + # - ros_numpy + # - velodyne-description + # - velodyne-simulator + # - effort-controllers + # - velocity-controllers + # - turtlebot3-teleop + # - turtlebot3-simulations + # - slam-toolbox + # - urg_node + # - urg_c + # - laser_proc + # - naoqi-bridge-msgs + # - naoqi-driver + # - naoqi-libqi + # - naoqi-libqicore + # - audio-common-msgs + # - sound-play + # - pid + + + ## PREVIOUSLY SUPPORTED PACKAGES, NOW NOT PACKAGED ANYMORE UNTIL REQUESTED + ## TODO AFTER REBUILD + # - foxglove_bridge + # - rtabmap + # - mrpt2 + # - ifopt + # - tsid + # - sesame_ros + # - ethercat_grant + # - ros_ign + # - swri-geometry-util + # - swri-opencv-util + # - swri-transform-util + # - swri-console-util + # - swri-opencv-util + # - swri-profiler + # - swri-profiler-tools + # - swri-dbw-interface + # - swri-math-util + # - swri-nodelet + # - swri-prefix-tools + # - swri-profiler-msgs + # - swri-rospy + # - swri-serial-util + # - swri-string-util + # - swri-system-util + # - swri_image_util + # - swri_geometry_util + # - swri_route_util + # - toposens-driver + # - toposens-markers + # - toposens + # - toposens-description + # - toposens-msgs + + ## + # TODO Linux + ## + # - openslam-gmapping + # - multisense-bringup + # - multisense-ros + # - multisense-description + # - multires-image + # - calibration + # - calibration-setup-helper + # - cob-navigation + # - cob-navigation-slam + # - cob-perception-common + # - dlux-global-planner + # - dlux-plugins + # - flexbe-behavior-engine + # - global-planner-tests + # - image-geometry + # - industrial-core + # - lanelet2 + # - lanelet2-examples + # - locomove-base + # - mir-dwb-critics + # - mir-navigation + # - mir-robot + # - moveit-calibration-gui + # - moveit-calibration-plugins + # - moveit-resources-prbt-moveit-config + # - moveit-resources-prbt-pg70-support + # - moveit-resources-prbt-support + # - nav-core-adapter + # - nav-grid-pub-sub + # - neonavigation + # - neonavigation-launch + # - osqp-vendor + # - pass-through-controllers + # - pincher-arm + # - pr2-common-actions + # - pr2-mannequin-mode + # - pr2-mechanism + # - ros-canopen + # - ros-controllers-cartesian + # - ros-realtime + # - safety-limiter + # - test-osm + # - ublox + # - ublox-gps + # - camera-calibration + # - checkerboard-detector + # - cob-image-flip + # - cob-object-detection-visualizer + # - cob-vision-utils + # - compressed-depth-image-transport + # - compressed-image-transport + # - costmap-converter + # - criutils + # - cv-camera + # - depth-image-proc + # - dnn-detect + # - drone-wrapper + # - fetch-depth-layer + # - find-object-2d + # - gazebo-plugins + # - generic-throttle + # - grid-map-cv + # - grid-map-filters + # - grid-map-demos + # - grid-map-ros + # - hector-compressed-map-transport + # - hfl-driver + # - ifm3d + # - ifm3d-core + # - image-cb-detector + # - image-proc + # - image-publisher + # - image-rotate + # - imagesift + # - image-view + # - image-view2 + # - ipa-3d-fov-visualization + # # - jsk-pcl-ros + # - jsk-pcl-ros-utils + # - jsk-perception + # - jsk-rqt-plugins + # - jsk-rviz-plugins + # - jsk-recognition-utils + # - jsk-tools + # - laser-cb-detector + # - libcmt + # - mapviz + # - moveit-ros-perception + # - multi-object-tracking-lidar + # - multisense-lib + # - multirobot-map-merge + # - nerian-stereo + # - opencv-apps + # - posedetection-msgs + # - resized-image-transport + # - robot-calibration + # - rqt-image-view + # - stag-ros + # - stereo-image-proc + # - theora-image-transport + # - turtlebot3-autorace-camera + # - turtlebot3-autorace-detect + # - video-stream-opencv + # - vision-opencv + # - zbar-ros + # - avt-vimba-camera + # - apriltag_ros + # - cv_bridge + # - cv_camera + # - grid-map-filters + # - image-geometry + # - cob-map-accessibility-analysis + # - abb-egm-msgs + # - abb-rapid-msgs + # - abb-rapid-sm-addin-msgs + # - abb-robot-msgs + # - allocators + # - arbotix + # - arbotix-controllers + # - arbotix-python + # - arbotix-sensors + # - audibot + # - audibot-gazebo + # - automotive-autonomy-msgs + # - autoware-external-msgs + # - autoware-msgs + # - bosch-locator-bridge + # - bota-node + # - calibration-estimation + # - calibration-launch + # - calibration-msgs + # - can-dbc-parser + # - canopen-402 + # - canopen-chain-node + # - canopen-master + # - canopen-motor-node + # - cartesian-control-msgs + # - cartesian-interface + # - cartesian-trajectory-controller + # - cartesian-trajectory-interpolation + # - cob-3d-mapping-msgs + # - cob-bms-driver + # - cob-calibration-data + # - cob-collision-monitor + # - cob-collision-velocity-filter + # - cob-common + # - cob-dashboard + # - cob-default-robot-config + # - cob-elmo-homing + # - cob-environments + # - cob-frame-tracker + # - cob-grasp-generation + # - cob-hardware-config + # - cob-hardware-emulation + # - cob-image-flip + # - cob-interactive-teleop + # - cob-light + # - cob-linear-nav + # - cob-lookat-action + # - cob-map-accessibility-analysis + # - cob-mapping-slam + # - cob-mecanum-controller + # - cob-model-identifier + # - cob-moveit-bringup + # - cob-moveit-config + # - cob-msgs + # - cob-navigation-config + # - cob-navigation-global + # - cob-navigation-local + # - cob-object-detection-msgs + # - cob-object-detection-visualizer + # - cob-omni-drive-controller + # - cob-perception-msgs + # - cob-reflector-referencing + # - cob-relayboard + # - cob-safety-controller + # - cob-scan-unifier + # - cob-sick-lms1xx + # - cob-sick-s300 + # - cob-srvs + # - cob-substitute + # - cob-supported-robots + # - cob-trajectory-controller + # - cob-tricycle-controller + # - cob-undercarriage-ctrl + # - cob-utilities + # - cob-vision-utils + # - collada-urdf + # - collada-urdf-jsk-patch + # - combined-robot-hw-tests + # - costmap-cspace + # - costmap-queue + # - darknet-ros-msgs + # - dataspeed-pds-rqt + # - dataspeed-pds-scripts + # - dataspeed-ulc + # - dataspeed-ulc-can + # - driver-common + # - drone-assets + # - drone-wrapper + # - dual-quaternions + # - dual-quaternions-ros + # - dwb-critics + # - dwb-local-planner + # - dwb-msgs + # - dwb-plugins + # - dynamixel-sdk-examples + # - dynamixel-workbench-msgs + # - ecl-converters-lite + # - ecl-core + # - ecl-core-apps + # - ecl-filesystem + # - ecl-io + # - ecl-ipc + # - ecl-lite + # - ecl-navigation + # - ecl-sigslots-lite + # - ecl-statistics + # - ecl-streams + # - ecl-tools + # - executive-smach-visualization + # - exotica-val-description + # - fetch-bringup + # - fingertip-pressure + # - flexbe-core + # - flexbe-input + # - flexbe-mirror + # - flexbe-onboard + # - flexbe-states + # - flexbe-testing + # - flexbe-widget + # - four-wheel-steering-controller + # - foxglove-msgs + # - freight-bringup + # - gazebo-video-monitor-plugins + # - gazebo-video-monitors + # - genmypy + # - geodesy + # - geographic-info + # - gpp-prune-path + # - gpp-update-map + # - graceful-controller-ros + # - hector-components-description + # - hector-compressed-map-transport + # - hector-gazebo + # - hector-localization + # - hector-map-server + # - hector-models + # - hector-pose-estimation + # - hector-sensors-description + # - hector-sensors-gazebo + # - hfl-driver + # - ifm3d-core + # - image-cb-detector + # - imu-from-ios-sensorlog + # - industrial-deprecated + # - industrial-robot-client + # - industrial-robot-simulator + # - industrial-trajectory-filters + # - industrial-utils + # - interval-intersection + # - ixblue-ins + # - jderobot-drones + # - joint-states-settler + # - joint-trajectory-action + # - joint-trajectory-action-tools + # - joint-trajectory-generator + # - joystick-drivers + # - jsk-interactive + # - jsk-interactive-test + # - jsk-recognition + # - kdl-parser + # - kobuki-msgs + # - lanelet2-io + # - lanelet2-maps + # - lanelet2-projection + # - lanelet2-python + # - lanelet2-routing + # - lanelet2-traffic-rules + # - lanelet2-validation + # - laser-cb-detector + # - leo + # - leo-desktop + # - leo-simulator + # - libdlib + # - lockfree + # - locomotor + # - magical-ros2-conversion-tool + # - mbf-costmap-nav + # - mbf-simple-nav + # - mesh-msgs-transform + # - mir-driver + # - mir-gazebo + # - monocam-settler + # - move-base-flex + # - moveit-resources-prbt-ikfast-manipulator-plugin + # - nav-2d-utils + # - nav-core2 + # - nav-grid-iterators + # - navigation-experimental + # - neo-local-planner + # - neonavigation-msgs + # - neonavigation-rviz-plugins + # - ntpd-driver + # - obj-to-pointcloud + # - ocean-battery-driver + # - omron-os32c-driver + # - open-manipulator-gazebo + # - open-manipulator-msgs + # - open-manipulator-p-gazebo + # - open-manipulator-p-simulations + # - open-manipulator-simulations + # - opw-kinematics + # - osm-cartography + # - p2os-driver + # - p2os-launch + # - p2os-urdf + # - paho-mqtt-c + # - parameter-pa + # - picovoice-msgs + # - pilz-control + # - pilz-industrial-motion-planner-testutils + # - pilz-status-indicator-rqt + # - pilz-testutils + # - pincher-arm-bringup + # - pincher-arm-description + # - pincher-arm-ikfast-plugin + # - pincher-arm-moveit-config + # - pincher-arm-moveit-demos + # - planner-cspace + # - power-monitor + # - pr2-app-manager + # - pr2-arm-kinematics + # - pr2-arm-move-ik + # - pr2-common + # - pr2-common-action-msgs + # - pr2-computer-monitor + # - pr2-controller-interface + # - pr2-controller-manager + # - pr2-controllers-msgs + # - pr2-dashboard-aggregator + # - pr2-description + # - pr2-head-action + # - pr2-kinematics + # - pr2-mechanism-model + # - pr2-position-scripts + # - pr2-power-board + # - pr2-power-drivers + # - pr2-run-stop-auto-restart + # - pr2-self-test-msgs + - pr2-teleop + # - pr2-tilt-laser-interface + # - pr2-tuckarm + # - pr2-tuck-arms-action + # - py-trees-ros + # - qt-gui-core + # - razor-imu-9dof + # - rc-hand-eye-calibration-client + # - rc-pick-client + # - rc-reason-clients + # - rc-reason-msgs + # - rc-roi-manager-gui + # - rc-silhouettematch-client + # - rc-tagdetect-client + # - respeaker-ros + # - robot-body-filter + # - robotis-manipulator + # - rokubimini-bus-manager + # - rosatomic + # - rosbag-pandas + # - rosbag-snapshot + # - roscompile + # - ros-control-boilerplate + # - ros-emacs-utils + # - roslisp-repl + # - rosrt + # - route-network + # - rqt-drone-teleop + # - rqt-ground-robot-teleop + # - rqt-pr2-dashboard + # - rqt-py-trees + # - rqt-rosmon + # - rt-usb-9axisimu-driver + # - sbpl-lattice-planner + # - sbpl-recovery + # - scaled-controllers + # - scaled-joint-trajectory-controller + # - sensor-filters + # - settlerlib + # - simple-message + # - single-joint-position-action + # - slider-publisher + # - slime-ros + # - socketcan-bridge + # - sot-core + # - sot-tools + # - speed-scaling-interface + # - speed-scaling-state-controller + # - teleop-tools + # - tesseract-common + # - tesseract-geometry + # - tesseract-support + # - thunder-line-follower-pmr3100 + # - track-odometry + # - trajectory-tracker + # - trajectory-tracker-rviz-plugins + # - turtlebot3-autorace-2020 + # - turtlebot3-autorace-camera + # - turtlebot3-autorace-core + # - turtlebot3-autorace-detect + # - turtlebot3-autorace-driving + # - turtlebot3-autorace-msgs + # - turtlebot3-simulations + # - twist-controller + # - ublox-msgs + # - unique-identifier + # - urdf + # - variant + # - variant-topic-tools + # - voice-text + # - volta-base + # - volta-control + # - volta-description + # - volta-localization + # - volta-msgs + # - volta-navigation + # - volta-rules + # - volta-teleoperator + # - wge100-camera + # - wge100-driver + # - wifi-ddwrt + # - wireless-watcher + # - wu-ros-tools + # - moveit-msgs + # - rviz + # - libuvc-ros + # - actionlib-tools + # - agni-tf-tools + # - app-manager + # - arbotix-firmware + # - arbotix-msgs + # - assimp-devel + # - assisted-teleop + # - async-comm + # - async-web-server-cpp + # - audibot-description + # - automotive-navigation-msgs + # - automotive-platform-msgs + # - autoware-can-msgs + # - autoware-config-msgs + # - autoware-lanelet2-msgs + # - autoware-map-msgs + # - autoware-system-msgs + # - auv-msgs + # - avt-vimba-camera + # - backward-ros + # - bagger + # - baldor + # - boost-sml + # - bota-signal-handler + # - bota-worker + # - can-msgs + # - capabilities + # - carla-msgs + # - cartesian-msgs + # - catch-ros + # - catkin-virtualenv + # - cob-actions + # - cob-android-msgs + # - cob-android-resource-server + # - cob-android-settings + # - cob-base-controller-utils + # - cob-base-velocity-smoother + # - cob-cam3d-throttle + # - cob-control-mode-adapter + # - cob-control-msgs + # - cob-default-env-config + # - cob-description + # - cob-docker-control + # - cob-footprint-observer + # - collada-parser + # - color-util + # - computer-status-msgs + # - control-box-rst + # - controller-manager-tests + # - convex-decomposition + # - costmap-cspace-msgs + # - criutils + # - csm + # - cv-camera + # - dataspeed-can-msg-filters + # - dataspeed-can-tools + # - dataspeed-pds-msgs + # - dataspeed-ulc-msgs + # - dbw-fca-description + # - dbw-fca-msgs + # - dbw-mkz-description + # - dbw-mkz-msgs + # - dbw-polaris-description + # - dbw-polaris-msgs + # - ddynamic-reconfigure + # - ddynamic-reconfigure-python + # - delphi-esr-msgs + # - delphi-mrr-msgs + # - delphi-srr-msgs + # - depthimage-to-laserscan + # - derived-object-msgs + # - dialogflow-task-executive + # - dnn-detect + # - driver-base + # - dynamic-edt-3d + # - dynamic-tf-publisher + # - dynamixel-sdk + # - easy-markers + # - ecl-license + # - eiquadprog + # - ergodic-exploration + # - fadecandy-msgs + # - fcl-catkin + # - fetch-auto-dock-msgs + # - fetch-depth-layer + # - fetch-description + # - fetch-ikfast-plugin + # - fetch-maps + # - find-object-2d + # - fkie-message-filters + # - flexbe-msgs + # - four-wheel-steering-msgs + # - gazebo-ros-control-select-joints + # - gazebo-video-monitor-msgs + # - gdrive-ros + # - generic-throttle + # - goal-passer + # - gpp-interface + # - graceful-controller + # - graft + # - grasping-msgs + # - grid-map-costmap-2d + # - grid-map-sdf + # - hector-gazebo-thermal-camera + # - hector-gazebo-worlds + # - hector-imu-attitude-to-tf + # - hector-imu-tools + # - hector-mapping + # - hector-map-tools + # - hector-marker-drawing + # - hector-nav-msgs + # - hector-pose-estimation-core + # - hector-xacro-tools + # - hokuyo3d + # - ibeo-msgs + # - image-exposure-msgs + # - imu-pipeline + # - imu-processors + # - imu-transformer + # - industrial-msgs + # - industrial-robot-status-controller + # - industrial-robot-status-interface + # - ipa-3d-fov-visualization + # - iris-lama + # - iris-lama-ros + # - ivcon + # - ixblue-ins-driver + # - ixblue-ins-msgs + # - ixblue-stdbin-decoder + # - jderobot-assets + # - joy-listener + # - joystick-interrupt + # - joy-teleop + # - jsk-footstep-msgs + # - jsk-gui-msgs + # - jsk-hark-msgs + # - jsk-network-tools + # - jsk-recognition-msgs + # - jsk-tilt-laser + # - jsk-topic-tools + # - kalman-filter + # - kartech-linear-actuator-msgs + # - kdl-parser-py + # - key-teleop + # - label-manager + # - lanelet2-core + # - laser-filtering + # - laser-filters-jsk-patch + # - laser-scan-densifier + # - laser-scan-sparsifier + # - laser-scan-splitter + # - led-msgs + # - leo-description + # - leo-gazebo + # - leo-teleop + # - leo-viz + # - lgsvl-msgs + # - libpcan + # - locomotor-msgs + # - log-view + # - lpg-planner + # - map-laser + # - map-organizer + # - map-organizer-msgs + # - marker-msgs + # - marti-can-msgs + # - marti-common-msgs + # - marti-data-structures + # - marti-dbw-msgs + # - marti-perception-msgs + # - marti-sensor-msgs + # - marti-status-msgs + # - marti-visualization-msgs + # - mbf-abstract-nav + # - mcl-3dl-msgs + # - mesh-msgs + # - message-to-tf + # - microstrain-3dmgx2-imu + # - mini-maxwell + # - mir-actions + # - mir-description + # - mir-msgs + # - mobile-robot-simulator + # - mobileye-560-660-msgs + # - mocap-optitrack + # - mouse-teleop + # - move-base-sequence + # - moveit-python + # - moveit-resources + # - moveit-runtime + # - mpc-local-planner-msgs + # - mrpt-msgs + # - mrt-cmake-modules + # - multi-object-tracking-lidar + # - multisense-description + # - multisense-lib + # - nav-2d-msgs + # - nav-grid + # - ncd-parser + # - neobotix-usboard-msgs + # - neonavigation-common + # - nerian-stereo + # - network-interface + # - nonpersistent-voxel-layer + # - novatel-oem7-msgs + # - octomap-rviz-plugins + # - odva-ethernetip + # - openzen-sensor + # - oxford-gps-eth + # - p2os-doc + # - p2os-msgs + # - p2os-teleop + # - pacmod-msgs + # - people-msgs + # - pgm-learner + # - pid + # - pilz-industrial-motion-testutils + # - pilz-msgs + # - pilz-utils + # - planner-cspace-msgs + # - pointcloud-to-laserscan + # - polar-scan-matcher + # - pose-follower + # - power-msgs + # - pr2-hardware-interface + # - pr2-machine + # - pr2-mechanism-msgs + # - pr2-msgs + # - pybind11-catkin + # - pyquaternion + # - py-trees + # - py-trees-msgs + # - qpoases-vendor + # - qt-gui-app + # - raw-description + # - rc-common-msgs + # - rcdiscover + # - rc-genicam-api + # - rc-visard-description + # - remote-rosbag-record + # - robot-calibration-msgs + # - robot-controllers-msgs + # - roboticsgroup-upatras-gazebo-plugins + # - rokubimini + # - rokubimini-description + # - rokubimini-msgs + # - ros-babel-fish-test-msgs + # - rosbaglive + # - rosbag-snapshot-msgs + # - rosdiagnostic + # - rosemacs + # - ros-industrial-cmake-boilerplate + # - ros-introspection + # - rosmon-msgs + # - rosparam-shortcuts + # - rospatlite + # - rosping + # - rospy-message-converter + # - ros-pytest + # - rosserial-arduino + # - rosserial-chibios + # - rosserial-embeddedlinux + # - rosserial-mbed + # - rosserial-tivac + # - rosserial-vex-cortex + # - rosserial-vex-v5 + # - rosserial-windows + # - rosserial-xbee + # - rostwitter + # - ros-type-introspection + # - rqt + # - rqt-controller-manager + - rqt-ez-publisher + # - rqt-joint-trajectory-controller + # - rx-service-tools + # - safety-limiter-msgs + # - sbpl + # - schunk-description + # - sdc21x0 + # - sdhlibrary-cpp + # - septentrio-gnss-driver + # - service-tools + # - sick-safetyscanners + # - sick-scan + - slam-gmapping + # - slam-toolbox-rviz + # - slic + # - slime-wrapper + # - smach-viewer + # - socketcan-interface + # - sophus + # - speech-recognition-msgs + # - stag-ros + # - tablet-socket-msgs + # - taskflow + # - teleop-legged-robots + # - teleop-tools-msgs + # - teleop-twist-keyboard + # - test-diagnostic-aggregator + # - tf2-bullet + # - tf2-tools + # - timestamp-tools + # - trajectory-tracker-msgs + # - turtlebot3-gazebo + # - twist-recovery + # - ublox-serialization + # - udp-com + # - ueye-cam + # - unique-id + # - urdf-geometry-parser + # - urg-stamped + # - usb-cam + # - usb-cam-hardware-interface + # - variant-msgs + # - vector-map-msgs + # - video-stream-opencv + # - view-controller-msgs + # - virtual-force-publisher + # - vision-msgs + # - vl53l1x + # - vrpn + # - wge100-camera-firmware + # - wireless-msgs + # - xpp-msgs + # - xpp-states + # - xv-11-laser-driver + # - mesh_client + # - lvr2 + # - ifm3d + # - rviz + # - ur_client_library + # - franka_example_controllers + # - franka_ros + # - catkin + # - jsk_pcl_ros + # - jsk_interactive_marker + # - scan_to_cloud_converter + # - laser_ortho_projector + # - phidgets_drivers + # - knowledge_representation + # - multirobot_map_merge + # - sick_tim + # - kobuki_core + # - sainsmart_relay_usb + # - mqtt_bridge + # - mapviz_plugins + # - exotica_core + # - catkin + + # # + # # DONE Linux + # # + # - jsk_rqt_plugins + # - jsk_common_msgs + # - rviz_satellite + # - tile_map + # - multires_image + # - fkie_message_filters + # - fkie_potree_rviz_plugin + # - fkie_multimaster + # - fetch_open_auto_dock + # - fetch_tools + # - fetch_drivers + # - cob_gazebo_tools + # - cob_gazebo_worlds + # - cob_gazebo_plugins + # - cob_gazebo_objects + # - dynamic_graph + # - dynamic_graph_python + # - dynamic_graph_tutorial + # - eml + # - pose_base_controller + # - ur_client_library + # - robot_self_filter + # - trac_ik + # - opencv_apps + # - lusb + # - image_view2 + # - explore_lite + # - marvelmind_nav + # - sob_layer + # - soem + # - willow_maps + # - ypspur_ros + # - zbar_ros + # - mapviz + # - tf2_web_republisher + # - fetch_ros + # - spacenav_node + # - hebi_cpp_api + # - panda_moveit_config + # - apriltag + # - apriltag_ros + # - behaviortree_cpp_v3 + # - codec_image_transport + # - kdl_parser_py + # - velodyne_simulator + # - catkin + # - hector_gazebo_plugins + # - webots_ros + # - navigation + # - mavros + # - grid_map + # - cnpy + # - robot_localization + # - moveit_visual_tools + # - ros_core + # - rviz + # - desktop + # - desktop_full + # - franka_control + # - moveit + # - class_loader + # - imu_tools + # - velodyne + # - velodyne_pcl + # - perception_pcl + # - teb_local_planner + # - joy + # - libfranka + # - franka_visualization + # - franka_msgs + # - franka_description + # - franka_hw + # - franka_gripper + # - diagnostic_analysis + # - diagnostic_common_diagnostics + # - ros_control + # - ros_controllers + # - rviz_visual_tools + # - slam_karto + # - slam_toolbox + # - turtlebot3 + # - cnpy + # - turtlebot3_fake + # - gmapping + # - interactive_marker_twist_server + # - teleop_twist_joy + # - twist_mux + # - pointgrey_camera_description + # - lms1xx + # - nmea_msgs + # - rosserial + # - nmea_navsat_driver + # - rosserial_server + # - robot_upstart + # - nmea_comms + + ## + # NOT RELEASED ON NOETIC... + ## + # - niryo_one_simulation + + ## + # PROBLEMS: + ## + # - rtabmap_ros # openni is missing, and need to find names for + # {'libfreenect-dev', 'libopenni-dev', 'tango-icon-theme', 'libvtk-qt'} + # - behavior_tree # isn't released? + # - ff # has gcc hardcoded + # - ffha # has gcc hardcoded + # - grid-map-pcl + # - mavros-extras + # - moveit-chomp-optimizer-adapter + # - opengm + +patch_dir: patch diff --git a/vinca_0f028e77a4.json b/vinca_0f028e77a4.json new file mode 100644 index 000000000..1e299f458 --- /dev/null +++ b/vinca_0f028e77a4.json @@ -0,0 +1 @@ +{"packages":{"ros-humble-nav2-collision-monitor-1.1.3-py39h63710d1_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.*","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39h63710d1_1","timestamp":1670448554525,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e4eb4b0e9218da43cd61c01b0f5242f4","name":"ros-humble-nav2-collision-monitor","requires":[],"size":343943,"version":"1.1.3","binstar":{"package_id":"6391072ea2b7121008daae43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c388c103bcec22c2cc98c7740b0730c059e015afbdfd2beca9e8eb080c65c9ea"},"ros-humble-nav2-collision-monitor-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670675123514,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a11f2e77b34309c6875b6799a5f85538","name":"ros-humble-nav2-collision-monitor","requires":[],"size":373015,"version":"1.1.3","binstar":{"package_id":"6391072ea2b7121008daae43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b203beaa661c40ae4b4858401c96e018bbe3245b094feb71fd5cf4ef4d74312"},"ros-humble-nav2-collision-monitor-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675697277104,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e015337f85706829136d063b9b3aaeaa","name":"ros-humble-nav2-collision-monitor","requires":[],"size":378677,"version":"1.1.5","binstar":{"package_id":"6391072ea2b7121008daae43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4baa4192e58cec6424c5be7183e84746f019665b5ecfd7503a36b07d6b6b3af1"},"ros-humble-tl-expected-1.0.2-py39h63710d1_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.*","ros-humble-ros-workspace","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39h63710d1_1","timestamp":1670448410459,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d4643872516aae9dd75a4afbe07c8260","name":"ros-humble-tl-expected","requires":[],"size":420699,"version":"1.0.2","binstar":{"package_id":"6391073054e9ace854461cd0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e54071150880db2ed2b48abb52e36c7157616f1070370b78e7ed8f9d2d08f5b9"},"ros-humble-tl-expected-1.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538813113,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9b7cad777fa31c762bbcbbaf6c882154","name":"ros-humble-tl-expected","requires":[],"size":20473,"version":"1.0.2","binstar":{"package_id":"6391073054e9ace854461cd0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2876b6af22db89c7291cae2a564aa6061ac690bbd95c2af83ccb42b7dd2a673f"},"ros-humble-tl-expected-1.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634683634,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"914b4ff53f6ced82413f35f48de99056","name":"ros-humble-tl-expected","requires":[],"size":21474,"version":"1.0.2","binstar":{"package_id":"6391073054e9ace854461cd0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"564757920f3f2cbf2b0fd728698549281ed30b11283675154b8cb5f687a02140"},"ros-humble-ros-gz-bridge-0.244.9-py39h63710d1_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.1,<12.0a0","libstdcxx-ng >=12","python","python_abi 3.9.*","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.1.*","ros2-distro-mutex 0.1.*"],"build":"py39h63710d1_1","timestamp":1670448882103,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6f65870ce1e9d5c9c25748b901b28808","name":"ros-humble-ros-gz-bridge","requires":[],"size":2422290,"version":"0.244.9","binstar":{"package_id":"6391074c6d07f25db92866c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b0708ab00658015d7dbc2544f379467c668b452658add61541617e6059b83b9a"},"ros-humble-ros-gz-bridge-0.244.9-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","libstdcxx-ng >=12","python","python_abi 3.10.*","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.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670548097518,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3ba4332f0966bb2e2fac8a06dd9236c6","name":"ros-humble-ros-gz-bridge","requires":[],"size":2504453,"version":"0.244.9","binstar":{"package_id":"6391074c6d07f25db92866c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"713adef16feb952b62b3720479de34a64f58c38c29d0df37b797e91a8e5727be"},"ros-humble-ros-gz-bridge-0.244.9-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-gz-interfaces","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-msgs","ros-humble-trajectory-msgs","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692132827,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c4a29dff26f78b1c15d852c6dbde5ccf","name":"ros-humble-ros-gz-bridge","requires":[],"size":2465175,"version":"0.244.9","binstar":{"package_id":"6391074c6d07f25db92866c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7cf6c65edb430f909208ddfe8e739b85f61815107994f0503b33c2d106e07452"},"ros-humble-kinematics-interface-0.0.2-py39h63710d1_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.*","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.1.*","ros2-distro-mutex 0.1.*"],"build":"py39h63710d1_1","timestamp":1670448908053,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"952449800dc487af02e2f62bd11f3a11","name":"ros-humble-kinematics-interface","requires":[],"size":12496,"version":"0.0.2","binstar":{"package_id":"6391074e66b3e4e3dec8e369","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e66de309850ec09e34659c26c6feb675d19f2d13e900dc8a07b65e2743348a6f"},"ros-humble-kinematics-interface-0.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670548202583,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6281b77e25fa363d9f93407e03f398ef","name":"ros-humble-kinematics-interface","requires":[],"size":12526,"version":"0.0.2","binstar":{"package_id":"6391074e66b3e4e3dec8e369","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c073a49bc75c6f5020c690425ea29add642858fb30085c8d3457f8d93148760"},"ros-humble-kinematics-interface-0.1.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691795206,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f21663ed174f1de040f691afc7a1d9a0","name":"ros-humble-kinematics-interface","requires":[],"size":15831,"version":"0.1.0","binstar":{"package_id":"6391074e66b3e4e3dec8e369","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ec3b88283be913c00425ea3ae9f3aec815f2242eaed0beaf70e5388c5c18d6a6"},"ros-humble-sdformat-urdf-1.0.1-py39h63710d1_1.tar.bz2":{"build_number":1,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libsdformat12 >=12.6.0,<13.0a0","libstdcxx-ng >=12","python","python_abi 3.9.*","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.1.*","ros2-distro-mutex 0.1.*","urdfdom_headers"],"build":"py39h63710d1_1","timestamp":1670448966283,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"065922a7950111ea257e9c074250ff49","name":"ros-humble-sdformat-urdf","requires":[],"size":129307,"version":"1.0.1","binstar":{"package_id":"6391075046bec18b89344e01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"729ec9fd95605155ab0802613cfa06cf1e4e881a22169bd505a13f66dec539ef"},"ros-humble-sdformat-urdf-1.0.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libsdformat12 >=12.6.0,<13.0a0","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-ros","ros-humble-pluginlib","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-urdf-parser-plugin","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","urdfdom_headers"],"build":"py310h413e681_2","timestamp":1670542615405,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"49e98caac75e5ebca8e756bd6dbb139e","name":"ros-humble-sdformat-urdf","requires":[],"size":134135,"version":"1.0.1","binstar":{"package_id":"6391075046bec18b89344e01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8fd81061c9ec8b854528c33d70d998b24c952d4bf0cc52417f1b54f9617bbb9"},"ros-humble-sdformat-urdf-1.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libsdformat12 >=12.6.0,<13.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-ros","ros-humble-pluginlib","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-urdf-parser-plugin","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","urdfdom_headers"],"build":"py310h7c61026_3","timestamp":1675686935342,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0d9842c9647bf8463e594420dfba4286","name":"ros-humble-sdformat-urdf","requires":[],"size":136783,"version":"1.0.1","binstar":{"package_id":"6391075046bec18b89344e01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"90ad0a29bc78adb8f6036d35ffa5610449c9abfb3665c5bc4014aab7af43a578"},"ros-humble-octomap-1.9.8-hb0f4dca_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["octomap 1.9.*"],"build":"hb0f4dca_2","timestamp":1670535435116,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"739ede4f941f00d96558e314faa874b8","name":"ros-humble-octomap","requires":[],"size":2835,"version":"1.9.8","binstar":{"package_id":"639258fd2dd70620554cbdaa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48d3b32231e1bdb91c6fe90d2707c2bd346aa3941fd12089e98a4cc29cf49718"},"ros-humble-ament-cmake-core-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","cmake","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-package","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535503599,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a2e1c0a72edf61f37d48a0a11e430f5f","name":"ros-humble-ament-cmake-core","requires":[],"size":30807,"version":"1.3.3","binstar":{"package_id":"639258fea2b7121008e600b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8bd3fef2e636eb9a1da1a26a626a5431a191d5ec1de13e66e549b3fd9e7b369d"},"ros-humble-ament-cmake-core-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","cmake","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-package","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675630808641,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7c8b851f2574c90c32cb6f5f7e4c7ac0","name":"ros-humble-ament-cmake-core","requires":[],"size":33953,"version":"1.3.3","binstar":{"package_id":"639258fea2b7121008e600b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6d556db1e86d3edcf59e160793d4fa40720c80d7e20943811b765a6588e59085"},"ros-humble-ament-package-0.14.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["importlib-metadata","importlib_resources","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","setuptools"],"build":"py310h413e681_2","timestamp":1670535480553,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b42852e0677e422a86d1ddd201c1dc8c","name":"ros-humble-ament-package","requires":[],"size":32056,"version":"0.14.0","binstar":{"package_id":"639258ff2dd70620554cbe15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ade0d52a6113c2309e457ad4c0ef90fcaf7487b77fbbb65ba9b23527265ba382"},"ros-humble-ament-package-0.14.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["importlib-metadata","importlib_resources","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","setuptools"],"build":"py310h7c61026_3","timestamp":1675630778861,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c7f3c6671ec8bc73e69d476673b6b07e","name":"ros-humble-ament-package","requires":[],"size":37422,"version":"0.14.0","binstar":{"package_id":"639258ff2dd70620554cbe15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc5b803da93d942e6463071b7a8c2406e4a65801209f81442b931b0afdb3ad7a"},"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":"x86_64","platform":"linux","depends":[],"build":"humble","timestamp":1670535422711,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b479c5e437daa64dc986f2f8e5176cd3","name":"ros2-distro-mutex","requires":[],"size":3330,"version":"0.2.0","binstar":{"package_id":"639259014f66fd116f323fb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cbbd62a35c7aa783c8a3bcbb23c90f29ded1d7782f3ade0062c1b45dcae835ef"},"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":"x86_64","platform":"linux","depends":[],"build":"humble","timestamp":1675630703035,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6b6f4e5aec0d320ec5496606c5bb1aa7","name":"ros2-distro-mutex","requires":[],"size":3358,"version":"0.3.0","binstar":{"package_id":"639259014f66fd116f323fb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52cd33fa250a9806bb286d0a1c3660bcff2b8c66f8d8526ac40ea607ead94c0f"},"ros-humble-ros-workspace-1.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535654171,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c2b3d7ffa7ad14136cde04467eb7ef73","name":"ros-humble-ros-workspace","requires":[],"size":21638,"version":"1.0.2","binstar":{"package_id":"639259f84f66fd116f32c659","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a14252205e171aeee2f4ccd93077c72289cfaabd029780ee10f2a3e45268a9fa"},"ros-humble-ros-workspace-1.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675630941037,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"33dd40fbab9139eec81f43015417835c","name":"ros-humble-ros-workspace","requires":[],"size":26782,"version":"1.0.2","binstar":{"package_id":"639259f84f66fd116f32c659","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb3f988bbbf3d5a4407288495ea8bc1e8a2f1df0ff9d18bb277456f485a69246"},"ros-humble-ros-environment-3.2.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535669925,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3896182379d31b056c37d940082e950a","name":"ros-humble-ros-environment","requires":[],"size":9719,"version":"3.2.2","binstar":{"package_id":"639259f946bec18b89d119d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b146a98cb7a91bda2f71281158498bffb5903c87e32c361da3ea0a778b7f28a"},"ros-humble-ros-environment-3.2.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675630963552,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c5bb04d375b1e6b1ddff4e58665d1fa8","name":"ros-humble-ros-environment","requires":[],"size":10591,"version":"3.2.2","binstar":{"package_id":"639259f946bec18b89d119d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2187f6b20722963aa46c92abbd11dfe071718bc2eb4475ac9d925a3f9cecf909"},"ros-humble-ament-cmake-export-libraries-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535840674,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"882a55ae9e0dfe1877d24d3989f2ec6d","name":"ros-humble-ament-cmake-export-libraries","requires":[],"size":12400,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ace0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4df05512c15a8ce249b6e806eb62bc18d88f300515d6510ee9e030a8a13b1333"},"ros-humble-ament-cmake-export-libraries-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631112514,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6961d7bed2c516ec94e997d5a5abdeef","name":"ros-humble-ament-cmake-export-libraries","requires":[],"size":13359,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ace0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"971a70f03e29005094d7c59c3b8d6917bc29ad7cada7a54f119ad3785d3b47a7"},"ros-humble-ament-cmake-export-link-flags-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535872100,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"10b03569c3a33a28595949bff64a4ef7","name":"ros-humble-ament-cmake-export-link-flags","requires":[],"size":10310,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ad01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45a9c451e6bd831ba49bc9c45a07a7659498bc4c960062226f739aa059343bc2"},"ros-humble-ament-cmake-export-link-flags-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631161264,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b28bc0b842788d7495509278ee795414","name":"ros-humble-ament-cmake-export-link-flags","requires":[],"size":11254,"version":"1.3.3","binstar":{"package_id":"63925ae16a03c9fad241ad01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c2a70365927a468e230fa87e010c0475652b2afe7bd878992ded4b2b08a5412e"},"ros-humble-ament-cmake-version-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535856453,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1fa3d02a46fa2b504c6e2f3e8d2cb106","name":"ros-humble-ament-cmake-version","requires":[],"size":10100,"version":"1.3.3","binstar":{"package_id":"63925ae2bbbc2b1e961cd1d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da85d310de66da32f7c4778d8751d264a799700163357c1d74f47044e59706ae"},"ros-humble-ament-cmake-version-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631137013,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9e7ca0795a16e09e4663e2ce7dc5d827","name":"ros-humble-ament-cmake-version","requires":[],"size":11072,"version":"1.3.3","binstar":{"package_id":"63925ae2bbbc2b1e961cd1d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6dcebd8215e9e85db13b16edbc42584e9eafb3017b0b66ecc39fe9cd190dc92b"},"ros-humble-ament-cmake-export-definitions-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535903418,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8392b6b872241d5e78c7296b376d51d8","name":"ros-humble-ament-cmake-export-definitions","requires":[],"size":10373,"version":"1.3.3","binstar":{"package_id":"63925ae32dd70620554d8c89","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9179efc937bf4e3f5e877fd796b27775334495182ebd5f44e15b054608f8869"},"ros-humble-ament-cmake-export-definitions-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631210796,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8df9d37317ef2be1eb44997609df06f0","name":"ros-humble-ament-cmake-export-definitions","requires":[],"size":11328,"version":"1.3.3","binstar":{"package_id":"63925ae32dd70620554d8c89","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e2e65a34bb9816614044bd26fd44ec165af70f5a588eca735b57928e7f4bc6f"},"ros-humble-ament-cmake-export-include-directories-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535887692,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"57f4ae7278deeeb9f48d8b06db0e5453","name":"ros-humble-ament-cmake-export-include-directories","requires":[],"size":10666,"version":"1.3.3","binstar":{"package_id":"63925ae4ed6d66bf8f879836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"29f6660a4db03ed4a97f8ae1abc3ce54c037fd7ce709c5d414c1d7faae138ec1"},"ros-humble-ament-cmake-export-include-directories-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631186396,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3f2445713fe3c0dc14f2f9fb07e5cafa","name":"ros-humble-ament-cmake-export-include-directories","requires":[],"size":11657,"version":"1.3.3","binstar":{"package_id":"63925ae4ed6d66bf8f879836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e437b1bfc54370f8e1c0ea11fc235794080bd22d8413da1f15a243bde878e66"},"ros-humble-osrf-pycommon-2.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535870546,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d54169a8ced50b35fe97e85a293804ee","name":"ros-humble-osrf-pycommon","requires":[],"size":48486,"version":"2.0.2","binstar":{"package_id":"63925af746f81babcadd056e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a20e5401eba7aa55935dc08b915120c439f90847de465f53f34424b4a6bd8b4"},"ros-humble-osrf-pycommon-2.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631145895,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"40773cfa6753068b65df9071594618f9","name":"ros-humble-osrf-pycommon","requires":[],"size":64850,"version":"2.0.2","binstar":{"package_id":"63925af746f81babcadd056e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee80b27127869cefbb9f45f145b9b4e4987ed9d3f866e8d3c95763e2e28a5f65"},"ros-humble-iceoryx-hoofs-2.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libacl >=2.3.1,<2.4.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535874948,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"344e53c98bc0db6bb554b1620afb1ce0","name":"ros-humble-iceoryx-hoofs","requires":[],"size":250596,"version":"2.0.2","binstar":{"package_id":"63925af86a03c9fad241bd27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa4a985571154a33cba728eaa8006cc489b58acd05c3507da0b6f5501545824a"},"ros-humble-iceoryx-hoofs-2.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libacl >=2.3.1,<2.4.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631182782,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"17a9b44e80246b1ae9fbdcb9700a963a","name":"ros-humble-iceoryx-hoofs","requires":[],"size":259606,"version":"2.0.2","binstar":{"package_id":"63925af86a03c9fad241bd27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"660f1ba968edce5fcf85fab11c8c6b7dfa6fb73b8cedfd4b67e27fd52ac2c91b"},"ros-humble-google-benchmark-vendor-0.1.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["benchmark","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535893170,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bf4f65e949bb3cd67094c2c56b63c02f","name":"ros-humble-google-benchmark-vendor","requires":[],"size":6994,"version":"0.1.1","binstar":{"package_id":"63925af9d9a997aae7076b55","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d063a67fa051e1505e040e26e32a4c561e0c5a53cb3bda7f251c51185ef8022d"},"ros-humble-google-benchmark-vendor-0.1.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["benchmark","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631171680,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3da6f6aebe3038f355692585e6bfec71","name":"ros-humble-google-benchmark-vendor","requires":[],"size":8048,"version":"0.1.1","binstar":{"package_id":"63925af9d9a997aae7076b55","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"058600322b74877b8e03d4456322956cdf24f7515417e17b12f91ad83267609e"},"ros-humble-ruckig-0.6.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535926003,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d02cba916311a32a32a8611106e4476c","name":"ros-humble-ruckig","requires":[],"size":93678,"version":"0.6.3","binstar":{"package_id":"63925afa2dd70620554d8ea6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55ef7d79372a2cfd9af5f77b260a47cb9aafbd2e0edd72181d13d7945fcc25f6"},"ros-humble-ruckig-0.9.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631269160,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9571a862c49dcb080dac62ef9a2642ce","name":"ros-humble-ruckig","requires":[],"size":99726,"version":"0.9.2","binstar":{"package_id":"63925afa2dd70620554d8ea6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22a8488c94e53b139811d4b4e1ea6b2cfe57642684cd3afefcac6d59205c94f8"},"ros-humble-ament-pycodestyle-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pycodestyle","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535833080,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1cf2503560b1ecbc4a89a8399a477799","name":"ros-humble-ament-pycodestyle","requires":[],"size":12043,"version":"0.12.4","binstar":{"package_id":"63925afa54e9ace854b6da1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c44fc1e4a86ae3b8b7e00ebc1e107ee2ff9743f7c58e50c46f1ec88e82529302"},"ros-humble-ament-pycodestyle-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pycodestyle","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631098545,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f1b52e93f988a9df9768d023f8f94cab","name":"ros-humble-ament-pycodestyle","requires":[],"size":16099,"version":"0.12.5","binstar":{"package_id":"63925afa54e9ace854b6da1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"47aff8e2d61688f8fff085e400620223f6fbfb4ec8d958cc7199c684df848fa2"},"ros-humble-test-interface-files-0.9.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535828293,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ad4c4f0005bb06690be56c2d781f2a86","name":"ros-humble-test-interface-files","requires":[],"size":12326,"version":"0.9.1","binstar":{"package_id":"63925afb2b3749bdb84ce1bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a85a815e020dbb0c926d0fbcc3f8de4ca66db5e28f0691785d1aebbd9779c7b2"},"ros-humble-test-interface-files-0.9.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631113330,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8212fe9a2af4c1c0064569f66943de71","name":"ros-humble-test-interface-files","requires":[],"size":13207,"version":"0.9.1","binstar":{"package_id":"63925afb2b3749bdb84ce1bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6431e8db0086c3e1705b26f1480bc14cbaedc0e08f92da83efcd29d6967221d2"},"ros-humble-ament-cppcheck-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["cppcheck","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535852979,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4e60e3199d15f840e93e0c052d3df23a","name":"ros-humble-ament-cppcheck","requires":[],"size":15356,"version":"0.12.4","binstar":{"package_id":"63925afc2dd70620554d8eed","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2131999928ba27e3536b38212de52c3641e6eeaf8fe4e2c9a9a05a33a8a8167"},"ros-humble-ament-cppcheck-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["cppcheck","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631123294,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d5b68ba2e78808d208ca9a89dd4e1c07","name":"ros-humble-ament-cppcheck","requires":[],"size":22066,"version":"0.12.5","binstar":{"package_id":"63925afc2dd70620554d8eed","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"50c021b4f9e6f454dd706198c40a2f3ce642574c582aa92d766e04752c795b70"},"ros-humble-urdfdom-headers-1.0.6-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535888920,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"45fc8592434766126183a4010a1799ca","name":"ros-humble-urdfdom-headers","requires":[],"size":18885,"version":"1.0.6","binstar":{"package_id":"63925afc4f66fd116f33b7a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f5759e94f03e27ef6f9ea7c6f7c3db4cacb655b9e81c131d895578e940121d4"},"ros-humble-urdfdom-headers-1.0.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631208165,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a3018a04d345eb57ac5a0302a377ff88","name":"ros-humble-urdfdom-headers","requires":[],"size":19976,"version":"1.0.6","binstar":{"package_id":"63925afc4f66fd116f33b7a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b545589b7ebf45b2b25cb4694a311d4586a798987dee3e129b4c708fd229cfa5"},"ros-humble-osrf-testing-tools-cpp-1.5.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535924350,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0b5fc057e77068654b9a02a8c159a9cd","name":"ros-humble-osrf-testing-tools-cpp","requires":[],"size":4324290,"version":"1.5.2","binstar":{"package_id":"63925afd2dd70620554d94b7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5049e87922455869ab9594a29d3b5b707eb449a0eb28ab05f5a4ed989986619b"},"ros-humble-osrf-testing-tools-cpp-1.5.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631210068,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0c03e28ff11917324f5ba8a1442c378d","name":"ros-humble-osrf-testing-tools-cpp","requires":[],"size":4333789,"version":"1.5.2","binstar":{"package_id":"63925afd2dd70620554d94b7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b3015b1bea4b5446c2cc6e46943373b57b047ae0aea589267df6c362eb96a61"},"ros-humble-fastcdr-1.0.24-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535845495,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f6ca4e9b175d063e1dcc2ce8b0ef8026","name":"ros-humble-fastcdr","requires":[],"size":56367,"version":"1.0.24","binstar":{"package_id":"63925afe6e0eca100b409c46","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33f785067eda982090c1ebe149098e2f83c9e90b043d70ed60eef7b70ea09b4e"},"ros-humble-fastcdr-1.0.24-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631142029,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0075f5b84cd8584a702079d78e24767a","name":"ros-humble-fastcdr","requires":[],"size":57371,"version":"1.0.24","binstar":{"package_id":"63925afe6e0eca100b409c46","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"052f030a037faa66c613854aff192507a4b8b202f2d501240bc988db6c385b13"},"ros-humble-ament-lint-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535866675,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cc8884a85f9cc68459fa82f6301362fb","name":"ros-humble-ament-lint","requires":[],"size":7465,"version":"0.12.4","binstar":{"package_id":"63925b1246f81babcadd1213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed69a1fcf12d63737e81d8fabdc8db6561abc8d3ad80de3d4851881e9e5a67bb"},"ros-humble-ament-lint-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631101611,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ec8bf74b751629dc6da14b1922b499c9","name":"ros-humble-ament-lint","requires":[],"size":8079,"version":"0.12.5","binstar":{"package_id":"63925b1246f81babcadd1213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52f599ec68e0afe501cf3b5af0461c03fc9fe93328f15f0cc81aab1539473c09"},"ros-humble-ament-cmake-libraries-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535931986,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9a4354f517b95a0f1ef7749e2928e8bc","name":"ros-humble-ament-cmake-libraries","requires":[],"size":10622,"version":"1.3.3","binstar":{"package_id":"63925b146643907e3b59af63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe1b4b0a3692c91300c40fb6ef16edfab2172f5fb7044edd27efac4c5518bd18"},"ros-humble-ament-cmake-libraries-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631173214,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"16a1d2fbcc69898763c26cde244b5177","name":"ros-humble-ament-cmake-libraries","requires":[],"size":11564,"version":"1.3.3","binstar":{"package_id":"63925b146643907e3b59af63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"244cabe7acff3f34f90f8c8f4d08638a1d5ff4d78d0a5bbbc82d2f756dfb6796"},"ros-humble-ament-cmake-python-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535891822,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2a070aad9cad2b9ba94fd096a61e4433","name":"ros-humble-ament-cmake-python","requires":[],"size":12598,"version":"1.3.3","binstar":{"package_id":"63925b1513f4c7e7c543874f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f4a7a5399dcbef892d5f1fe682c6d1990be4cc72b4307b07687b0b0e2c4ed589"},"ros-humble-ament-cmake-python-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631128839,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cdf0bb7915d63c9f0b5aa0c7de523f27","name":"ros-humble-ament-cmake-python","requires":[],"size":13568,"version":"1.3.3","binstar":{"package_id":"63925b1513f4c7e7c543874f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b5f385ad085b3d82e68d5b2d28c8e3204a6baf0e80edd3703b75f1ca5dcd68b"},"ros-humble-ament-cmake-include-directories-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535951748,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"85cdabc58cfefd591bdbc41c11b785a8","name":"ros-humble-ament-cmake-include-directories","requires":[],"size":10251,"version":"1.3.3","binstar":{"package_id":"63925b17bbbc2b1e961cd6be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca37921183c56ff2d43b1521a18ae12925e2ff23e18bd41fce6a0828383c8fdd"},"ros-humble-ament-cmake-include-directories-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631196285,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ee67d9fa3c4cbeb9d85897d41f77a4a3","name":"ros-humble-ament-cmake-include-directories","requires":[],"size":11170,"version":"1.3.3","binstar":{"package_id":"63925b17bbbc2b1e961cd6be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd7bf62734939a0a55628ea39e9fed98c95551e7432b65252a676b9d4126e2a9"},"ros-humble-gtest-vendor-1.10.9004-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670535912075,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fa7ff2c2d5f3c2eec7185a6a9509c3f5","name":"ros-humble-gtest-vendor","requires":[],"size":176676,"version":"1.10.9004","binstar":{"package_id":"63925b18a2b7121008e798f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80b4f15aeac963148089cb264d9347b0305579705e8c045829385082b57077f0"},"ros-humble-gtest-vendor-1.10.9004-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631149711,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a3d563fbe48b56875a7fc8f617240142","name":"ros-humble-gtest-vendor","requires":[],"size":178424,"version":"1.10.9004","binstar":{"package_id":"63925b18a2b7121008e798f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1170b882580db6d5bd400fd01fe0d98b6ceace23f6c527ddedce8ee38210088d"},"ros-humble-ompl-1.5.2-py310h3fe666b_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","flann","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h3fe666b_2","timestamp":1670536335315,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0a5d57ccf6c0b38191d8a256dd8d9981","name":"ros-humble-ompl","requires":[],"size":5862,"version":"1.5.2","binstar":{"package_id":"63925f834f66fd116f386bb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12cef319e1923e568da1c757d27868e0309187c5f48525dbd0cf1b747ef8b7a9"},"ros-humble-ompl-1.6.0-py310he3f1553_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","flann >=1.9.1,<1.9.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310he3f1553_3","timestamp":1675631874749,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"94ed5753a2d0ae0d064a14549eec82cf","name":"ros-humble-ompl","requires":[],"size":2813303,"version":"1.6.0","binstar":{"package_id":"63925f834f66fd116f386bb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db50faa3a3a58af02875def61c9d9409cbac18184141bf279e4a776339b7564d"},"ros-humble-sdformat-test-files-1.0.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["cmake","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670536352069,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a92d47b31eb7308f0449825d52fc21fe","name":"ros-humble-sdformat-test-files","requires":[],"size":101137,"version":"1.0.1","binstar":{"package_id":"63925f886643907e3b5adc4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6fc30c9d92e26d646b9afc3d5856d0b8b6e18dfee9fcedc1efb2539aaf315007"},"ros-humble-sdformat-test-files-1.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["cmake","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675631905477,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"60f899253a0042ab75a9f2c16b167051","name":"ros-humble-sdformat-test-files","requires":[],"size":102390,"version":"1.0.1","binstar":{"package_id":"63925f886643907e3b5adc4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b972884786e521e8a0ab9029bf0e001b8a90cd9909a20439a889c74d9f248095"},"ros-humble-ament-cmake-test-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670537749234,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"427db211af113e078f59f32681e7b710","name":"ros-humble-ament-cmake-test","requires":[],"size":20764,"version":"1.3.3","binstar":{"package_id":"639260cfa2b7121008ef5089","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a728706b8e4114add67ecf3c9cef6063d8864864a15eaa8f79623570569958e"},"ros-humble-ament-cmake-test-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633494706,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f5e7f2d4509f4e7ec463fcb0c4bae5bc","name":"ros-humble-ament-cmake-test","requires":[],"size":29260,"version":"1.3.3","binstar":{"package_id":"639260cfa2b7121008ef5089","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eaddd0c9459f63ae2643bf566ade7c7888c9a3d67917d24cb79fd1276104083d"},"ros-humble-ament-cmake-export-targets-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670537792318,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"23248d2bb2f93ed968ce96d2269ab7f4","name":"ros-humble-ament-cmake-export-targets","requires":[],"size":10800,"version":"1.3.3","binstar":{"package_id":"639260cfead2dcc8c2cf8be3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"975443e2665d83a900be0bb8d3321e979851a0529c49f5b322d80c5b99321c12"},"ros-humble-ament-cmake-export-targets-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633542573,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6167b3365afa731644af8d2b2d598cc4","name":"ros-humble-ament-cmake-export-targets","requires":[],"size":11769,"version":"1.3.3","binstar":{"package_id":"639260cfead2dcc8c2cf8be3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1170b63150874cce72b08838b4483db356c9c5be2f384d09b546d37bada84e14"},"ros-humble-ament-flake8-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["flake8","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670537725055,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"74192a9bf162b02c7badf8ffdf8b4c98","name":"ros-humble-ament-flake8","requires":[],"size":14803,"version":"0.12.4","binstar":{"package_id":"639260d0114c465c98ae2a08","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7112755c6f34f2aa3238232e7a4422c48c3d51cb1f5513e1c6eafb59b99c907d"},"ros-humble-ament-flake8-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["flake8","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633468022,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3a274517ea431454c7dee00db5aa9679","name":"ros-humble-ament-flake8","requires":[],"size":21038,"version":"0.12.5","binstar":{"package_id":"639260d0114c465c98ae2a08","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"70418379e497f2526ce44388cc6747d14f0fbc84ac7f716385efe2e35df447d4"},"ros-humble-ament-cmake-export-interfaces-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670537811666,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"af54575f58a2444d2ff2f0b94d5d1ba3","name":"ros-humble-ament-cmake-export-interfaces","requires":[],"size":10870,"version":"1.3.3","binstar":{"package_id":"639260d154e9ace854bb639d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6094ececa9bf2ef9db1b933a017a7711203deff7696e35b4c8193ea1cd5d2cf"},"ros-humble-ament-cmake-export-interfaces-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633565297,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"881a077ed81eefee6aa3a2416aebda51","name":"ros-humble-ament-cmake-export-interfaces","requires":[],"size":11845,"version":"1.3.3","binstar":{"package_id":"639260d154e9ace854bb639d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"631b66ccae55e9f341942de39a6ec11c2a24a8cfbebddfbfbd8723d01e70149c"},"ros-humble-ament-cmake-target-dependencies-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-include-directories","ros-humble-ament-cmake-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670537769360,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"24380c0c36b87b5ec3004d3bc2b78f5f","name":"ros-humble-ament-cmake-target-dependencies","requires":[],"size":11726,"version":"1.3.3","binstar":{"package_id":"639260d1ed6d66bf8f8be7c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee86539047e02c23b98a68d4eeb6e1365bd0885f840ffa2d5447a3067fd23ef8"},"ros-humble-ament-cmake-target-dependencies-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-include-directories","ros-humble-ament-cmake-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633518546,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"eaec9513649fe79bc9157b205a955702","name":"ros-humble-ament-cmake-target-dependencies","requires":[],"size":12690,"version":"1.3.3","binstar":{"package_id":"639260d1ed6d66bf8f8be7c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"063be919c42f0c3c7da867979fcdecc5ad54e6093742a48379aee95dd95fb1f5"},"ros-humble-apriltag-3.2.0-py310h0699a7d_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h0699a7d_2","timestamp":1670537532696,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"af8482abc66c8089bd12de321a198e84","name":"ros-humble-apriltag","requires":[],"size":1365016,"version":"3.2.0","binstar":{"package_id":"63926141ead2dcc8c2d024e0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c1490e7645c90272b79fad2c1bd40ae4d3f1f9ee2174c32fa124b6ee282cb96"},"ros-humble-apriltag-3.2.0-py310h0699a7d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h0699a7d_3","timestamp":1675632010322,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d5bda0bc48af1c2e5cbbf5bfe9a43471","name":"ros-humble-apriltag","requires":[],"size":1373026,"version":"3.2.0","binstar":{"package_id":"63926141ead2dcc8c2d024e0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"21cb012f8f615882c42e084c8c8aa38a1d565723cc79dede7678e95011f2a8c2"},"ros-humble-visp-3.5.0-py310hce765d3_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["bzip2 >=1.0.8,<2.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libjpeg-turbo >=2.1.4,<3.0a0","liblapack >=3.9.0,<4.0a0","libopencv >=4.6.0,<4.6.1.0a0","libpng >=1.6.39,<1.7.0a0","libstdcxx-ng >=12","libxml2 >=2.10.3,<2.11.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libx11","xorg-libxext"],"build":"py310hce765d3_2","timestamp":1670537474174,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7ae027c2d0f1adbf9e1cc94106d23be5","name":"ros-humble-visp","requires":[],"size":4460161,"version":"3.5.0","binstar":{"package_id":"6392614546bec18b89d68809","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"26972bf00b6a8d862e5c7433a69ef6b8321625ee36f36e5d646ace729162bfc6"},"ros-humble-visp-3.5.0-py310hc9d36d3_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["bzip2 >=1.0.8,<2.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libjpeg-turbo >=2.1.4,<3.0a0","liblapack >=3.9.0,<4.0a0","libopencv >=4.6.0,<4.6.1.0a0","libpng >=1.6.39,<1.7.0a0","libstdcxx-ng >=12","libxml2 >=2.10.3,<2.11.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.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-libxext"],"build":"py310hc9d36d3_3","timestamp":1675633317522,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"151640866f6c54f8cb1aa207b3d27040","name":"ros-humble-visp","requires":[],"size":4475794,"version":"3.5.0","binstar":{"package_id":"6392614546bec18b89d68809","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"15c36e0a6b88659cd8d37565b2bc21f2e6a47a7ee0692c0bf10d0e8d998ba230"},"ros-humble-ament-cmake-export-dependencies-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670537697017,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e620ddcb9f22196a3c0e965800ea237c","name":"ros-humble-ament-cmake-export-dependencies","requires":[],"size":11197,"version":"1.3.3","binstar":{"package_id":"639261d06643907e3b5c9df0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"39bedd745cbd69832250245eb38907d7af28bdcd0bb6c4e4a9afe8f3992a1892"},"ros-humble-ament-cmake-export-dependencies-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-libraries","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633470253,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"425e37aff49452160b34cf80ddfacd27","name":"ros-humble-ament-cmake-export-dependencies","requires":[],"size":12117,"version":"1.3.3","binstar":{"package_id":"639261d06643907e3b5c9df0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7357a36a2ca116d2503a788add10e9bece3789b60cdcc60e7339ae649c0110a1"},"ros-humble-iceoryx-posh-2.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-iceoryx-hoofs","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670537793756,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2ae957f1561bc691a8c307bafa43b9b8","name":"ros-humble-iceoryx-posh","requires":[],"size":588866,"version":"2.0.2","binstar":{"package_id":"639261d1114c465c98af9d60","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c68dc8dcb1e8ef331840e368efcb5c5195308b1eb16d78b558fe760a3e7d2353"},"ros-humble-iceoryx-posh-2.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-iceoryx-hoofs","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633574472,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fe7c925fd8c603612389dc7489a7d67f","name":"ros-humble-iceoryx-posh","requires":[],"size":585118,"version":"2.0.2","binstar":{"package_id":"639261d1114c465c98af9d60","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b776157187689ebf5a4c9ef3055387df0d4641b5a2eea1634e5f7dc33561e539"},"ros-humble-gmock-vendor-1.10.9004-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-gtest-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670537712938,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ea0910c9456be66caa3ddc691ade1a48","name":"ros-humble-gmock-vendor","requires":[],"size":98139,"version":"1.10.9004","binstar":{"package_id":"639261d22dd7062055553152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e179c68ececf58d22455440f79f5697f9e0d43bb7e89484412a258cc9bcca596"},"ros-humble-gmock-vendor-1.10.9004-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-gtest-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633492583,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e384d13ab33a9bf468ddf10ce64a948d","name":"ros-humble-gmock-vendor","requires":[],"size":99294,"version":"1.10.9004","binstar":{"package_id":"639261d22dd7062055553152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad35aee6c3a5e4a3277b55d2d43be53c2efe6da611561b2a212d3a6ebf62802b"},"ros-humble-ament-lint-auto-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538022909,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"792a72cfa140198de53af24c363e04a9","name":"ros-humble-ament-lint-auto","requires":[],"size":10317,"version":"0.12.4","binstar":{"package_id":"63926306a2b7121008f38412","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3a0a37dd1bb1d9c3060d41799d2ba3d7dd39fdf913701d090d7463f34150c2c"},"ros-humble-ament-lint-auto-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633767692,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a92129e17e38c6ac5c1e9bb9fa31afce","name":"ros-humble-ament-lint-auto","requires":[],"size":11235,"version":"0.12.5","binstar":{"package_id":"63926306a2b7121008f38412","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"efa1bafe8e8671c4dfc392485627fb732dad97a3f5fe7d27e5b870a486cb0d88"},"ros-humble-ament-pep257-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pydocstyle","python","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670537983790,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"14cf298d8ce696c2230e140c9ae739fc","name":"ros-humble-ament-pep257","requires":[],"size":13826,"version":"0.12.4","binstar":{"package_id":"63926307358aafdd3d811b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d37458e76e6b171a1106a97af955ce6b550f41b578467f69d0e36ea31803462"},"ros-humble-ament-pep257-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pydocstyle","python","python_abi 3.10.* *_cp310","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633716552,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"05cb1b30feca5800fedfa212849607e8","name":"ros-humble-ament-pep257","requires":[],"size":19169,"version":"0.12.5","binstar":{"package_id":"63926307358aafdd3d811b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"348709139a5571a95a23a3e37584b9459744474826f07d641b8e18cd6c99d908"},"ros-humble-ament-cmake-pytest-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pytest","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538062411,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"93fc2193f583875a21a859e02f4b41aa","name":"ros-humble-ament-cmake-pytest","requires":[],"size":12171,"version":"1.3.3","binstar":{"package_id":"639263084f66fd116f3ef31f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6bb97821bf3a3ec3b6e6d92122d7ee424685643aa923be3ccd54096d53ecfd4"},"ros-humble-ament-cmake-pytest-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pytest","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633818862,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"12d57a7879fdfc7086f290150e8f2b61","name":"ros-humble-ament-cmake-pytest","requires":[],"size":13228,"version":"1.3.3","binstar":{"package_id":"639263084f66fd116f3ef31f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3e4f37ef802e8ad102834f931d8d34ac603c86a23a176830939b8cce5bc8bff"},"ros-humble-ament-cmake-google-benchmark-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-google-benchmark-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538043408,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6f7706b0694169968222c7eee47a716b","name":"ros-humble-ament-cmake-google-benchmark","requires":[],"size":18468,"version":"1.3.3","binstar":{"package_id":"63926309ed6d66bf8f8e9cc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"23a87a4cb27e7c6942b0b99219ee67aae463308d7836fa43db415a6f743b130d"},"ros-humble-ament-cmake-google-benchmark-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-google-benchmark-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633793843,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1d86337f789594ef7d75c0a44de7d682","name":"ros-humble-ament-cmake-google-benchmark","requires":[],"size":23249,"version":"1.3.3","binstar":{"package_id":"63926309ed6d66bf8f8e9cc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dea88fe0e96d86e8b7d915937f40110d88b83e5a0e100762d4da39cd58b3baa1"},"ros-humble-ament-cmake-gtest-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gtest","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-gtest-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538005936,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4ef4f0f1eac8b84f3b0d212ac6ca8e0a","name":"ros-humble-ament-cmake-gtest","requires":[],"size":12813,"version":"1.3.3","binstar":{"package_id":"6392630a2dd706205557236a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c13040ee32a1cc317395091ed10d889030f34b15c08f811e15e1cdccce59250"},"ros-humble-ament-cmake-gtest-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gtest","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-gtest-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633744172,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b6dff40270ddca4062971e222a6e5e3e","name":"ros-humble-ament-cmake-gtest","requires":[],"size":13771,"version":"1.3.3","binstar":{"package_id":"6392630a2dd706205557236a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa82aa16aca1f13464193f652ea169d51285ad8251ddd29d714e9711cc008435"},"ros-humble-iceoryx-binding-c-2.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670537983264,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"030255667d21df0fd56973f518fbf7ec","name":"ros-humble-iceoryx-binding-c","requires":[],"size":86165,"version":"2.0.2","binstar":{"package_id":"6392631e2dd706205557447d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7fbf8c27f1d0a6d71caf849290635f74721cf0916848a7032c384c15065a38ae"},"ros-humble-iceoryx-binding-c-2.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633722485,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f00936c2a3f13462a73cc7f7b8c7bbf3","name":"ros-humble-iceoryx-binding-c","requires":[],"size":87472,"version":"2.0.2","binstar":{"package_id":"6392631e2dd706205557447d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f1056dd9e57018a6ce0d785add5316174598c41afec95a5e1ccafcda583b55ea"},"ros-humble-ament-mypy-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","mypy","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538012678,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"88bd03e313db6c6b1030b5d67a3f86ca","name":"ros-humble-ament-mypy","requires":[],"size":13537,"version":"0.12.4","binstar":{"package_id":"6392631f1f9cf5f92ad152c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"863344c59c1cf8ac6241eabb9409bac8644d407911f6ad14b5324fcdaed43fc9"},"ros-humble-ament-mypy-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","mypy","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633753253,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"76af53d51c79dbc12bfa30704d0d468a","name":"ros-humble-ament-mypy","requires":[],"size":19064,"version":"0.12.5","binstar":{"package_id":"6392631f1f9cf5f92ad152c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c76f710a85a7b4c6e7a38cc93efe4c97ee49585d87654f36700e17e00c31f43"},"ros-humble-cyclonedds-0.9.1-py310hb42482d_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","openssl >=1.1.1s,<1.1.2a","python","python_abi 3.10.*","ros-humble-iceoryx-binding-c","ros-humble-iceoryx-hoofs","ros-humble-iceoryx-posh","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hb42482d_2","timestamp":1670538323794,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ff34372e453df6439e236cb363dfbf63","name":"ros-humble-cyclonedds","requires":[],"size":1129710,"version":"0.9.1","binstar":{"package_id":"63926468bbbc2b1e962795dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d157f249ac428ec49d5de3723c18d5580b43f7897711c2189f49345680ebdf3"},"ros-humble-cyclonedds-0.9.1-py310h24b8eba_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.10.* *_cp310","ros-humble-iceoryx-binding-c","ros-humble-iceoryx-hoofs","ros-humble-iceoryx-posh","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h24b8eba_3","timestamp":1675859214538,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d1423b87d4638641c436a86732bb4e5b","name":"ros-humble-cyclonedds","requires":[],"size":1124329,"version":"0.9.1","binstar":{"package_id":"63926468bbbc2b1e962795dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d176dca10aac2f8e136a19e895b54ab73f2a3a53b7561df34c11b3b267980200"},"ros-humble-ament-cmake-gmock-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gmock","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-test","ros-humble-gmock-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538267945,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b52b8a34d386918c813d5b0a2ec7c947","name":"ros-humble-ament-cmake-gmock","requires":[],"size":12173,"version":"1.3.3","binstar":{"package_id":"63926469ed6d66bf8f907322","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7d04957738a5726363300baa5b18025463b84ebb2222d47afa2e2a43b40a7203"},"ros-humble-ament-cmake-gmock-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gmock","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-test","ros-humble-gmock-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634015380,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2c2811fa1b2a9d0d02dd8389ac45c1e2","name":"ros-humble-ament-cmake-gmock","requires":[],"size":13202,"version":"1.3.3","binstar":{"package_id":"63926469ed6d66bf8f907322","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"489513cdf048c75eb78dc9bbfdf8290b26987f83bd092e5dc33e8f02a548c2a0"},"ros-humble-ament-copyright-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538229621,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e794bb139ff6bb5f7a2f2d2fdaa69124","name":"ros-humble-ament-copyright","requires":[],"size":47184,"version":"0.12.4","binstar":{"package_id":"6392646bead2dcc8c2d5b754","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a11ae3f1d650930ce2de082a43e90f94e191246a8818ccabd424a8caa528c70"},"ros-humble-ament-copyright-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633963257,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8cde9b5fd7911e0a97dffc390ef48687","name":"ros-humble-ament-copyright","requires":[],"size":61412,"version":"0.12.5","binstar":{"package_id":"6392646bead2dcc8c2d5b754","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f445089cc287280dc40698c706253ee60418eb8879129ab9bdce6385216e846"},"ros-humble-ament-cmake-gen-version-h-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538250772,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b7b483f303308611d15fa17f4cddc498","name":"ros-humble-ament-cmake-gen-version-h","requires":[],"size":12729,"version":"1.3.3","binstar":{"package_id":"6392646bead2dcc8c2d5b7ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"503b72282225c6625b76d6cd522ba3003efdf09880114fcf84e4ca5ebb42237c"},"ros-humble-ament-cmake-gen-version-h-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675633991015,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"45fb0e53a3417e37dbed0d36bbfc8f3a","name":"ros-humble-ament-cmake-gen-version-h","requires":[],"size":13710,"version":"1.3.3","binstar":{"package_id":"6392646bead2dcc8c2d5b7ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f0f2c5dde53a1d3c5b2b18c9fd053f82ea93fe064bfa38ca0013ba44b643846"},"ros-humble-tf-transformations-1.0.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538342691,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5ce2bcd3f9fc2d9ec011119db93d1af5","name":"ros-humble-tf-transformations","requires":[],"size":25091,"version":"1.0.1","binstar":{"package_id":"6392646ca2b7121008f64795","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d311771e8d2c7db388f1b23d17ef3382d89031b7625e2c523f90fa5094dd6b15"},"ros-humble-tf-transformations-1.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634095609,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b1c669566db2643761f20f7c821440e1","name":"ros-humble-tf-transformations","requires":[],"size":36770,"version":"1.0.1","binstar":{"package_id":"6392646ca2b7121008f64795","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc8a955dda96092f591605b9efdc1de52056f159b6308324db86535bd81c3c97"},"ros-humble-domain-coordinator-0.10.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538503138,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5d3f0d063645b3df9584a91f6845e088","name":"ros-humble-domain-coordinator","requires":[],"size":8971,"version":"0.10.0","binstar":{"package_id":"6392654446f81babcaeb8b58","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4fb3a5d31f058c9ef26d26ea9d08773952c5dccff5eb96f0d35686eaae588e40"},"ros-humble-domain-coordinator-0.10.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634235521,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ffc95033516ba5293ca7778c27b3a32b","name":"ros-humble-domain-coordinator","requires":[],"size":10467,"version":"0.10.0","binstar":{"package_id":"6392654446f81babcaeb8b58","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"013d7b79db0df4c575a01a75c9f2659508702129661e6e0fe8cbf9a3add2c477"},"ros-humble-ament-clang-format-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["clang-format","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538544076,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f874c8fc0450172c2ee96c302555369d","name":"ros-humble-ament-clang-format","requires":[],"size":15675,"version":"0.12.4","binstar":{"package_id":"63926545ead2dcc8c2d75bb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"faf57bdebc51fab4a479bc7f662a0bd2b84d61056803168cfbb793ae78d305a9"},"ros-humble-ament-clang-format-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["clang-format","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634288639,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e2970a1188949cbada0f0b055e4d6716","name":"ros-humble-ament-clang-format","requires":[],"size":23647,"version":"0.12.5","binstar":{"package_id":"63926545ead2dcc8c2d75bb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d406aa4cb429b41ff31a92d977ab8ad99a364eab3c1cd82f8f1a39969a18adae"},"ros-humble-ament-pclint-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538562432,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b1952b717c5a484db623ea598ed991fe","name":"ros-humble-ament-pclint","requires":[],"size":46353,"version":"0.12.4","binstar":{"package_id":"639265462dd70620555b14b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4d578149b69f7ed71ec6e5b6ff1023c660fd6892b17e0094a8e81d5c37c0688"},"ros-humble-ament-pclint-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634312467,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a9fde48d7d12c13cfc299e31767d2748","name":"ros-humble-ament-pclint","requires":[],"size":52962,"version":"0.12.5","binstar":{"package_id":"639265462dd70620555b14b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"685d4c38bef5f1f93cadc2beb5563188e6752507c85b42fca37d9339b26a91ef"},"ros-humble-generate-parameter-library-py-0.3.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["jinja2","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","typeguard"],"build":"py310h413e681_2","timestamp":1670538522070,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c1749d3e73d6a55ce6e04b0b71b2b33e","name":"ros-humble-generate-parameter-library-py","requires":[],"size":27612,"version":"0.3.0","binstar":{"package_id":"639265466e0eca100b46a3dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b9aadd3e42528f249ac3dbcbd1a7e0d4849b3713d199df746657835127699ec"},"ros-humble-generate-parameter-library-py-0.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["jinja2","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","typeguard"],"build":"py310h7c61026_3","timestamp":1675634260190,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"be7dc56090cf7e000da4c72faa49ad9a","name":"ros-humble-generate-parameter-library-py","requires":[],"size":43019,"version":"0.3.0","binstar":{"package_id":"639265466e0eca100b46a3dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"07e58810a5b0f0542f65e8223428fafd0629454e3f569ead0d4d7ec91b73e54f"},"ros-humble-ament-cpplint-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538566198,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"26d3bd1355d96a67b6adaf1410f6889e","name":"ros-humble-ament-cpplint","requires":[],"size":118564,"version":"0.12.4","binstar":{"package_id":"6392655b66b3e4e3deb6fa1f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8988155d01721da323d91ed7e50ec4e2d1b0b6dad2e842c11f33f0bb3e24cc97"},"ros-humble-ament-cpplint-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634382456,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f262ba7ae7bee09033c6b8d3e4a0e423","name":"ros-humble-ament-cpplint","requires":[],"size":188281,"version":"0.12.5","binstar":{"package_id":"6392655b66b3e4e3deb6fa1f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bbecfd309a6184322ffb665a521209e19c340c1111ca199a7e0ecc9343cf7bbc"},"ros-humble-ament-xmllint-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libxml2","python","python_abi 3.10.*","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538547640,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d9138733fa09631937eef10e86206b12","name":"ros-humble-ament-xmllint","requires":[],"size":14198,"version":"0.12.4","binstar":{"package_id":"6392655dbbbc2b1e962883ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"217e8c1b780a4575986c886cd0f24f0c23ce551c5d97ffa86c9f33c4ae7e7dbb"},"ros-humble-ament-xmllint-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libxml2","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-lint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634350063,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4d879cf1fc70d719f167262b5676215a","name":"ros-humble-ament-xmllint","requires":[],"size":20085,"version":"0.12.5","binstar":{"package_id":"6392655dbbbc2b1e962883ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7c04f0ceb028c86e20114c608e8f4280c31f8bc7cb8d6905d68acee77ae0ed10"},"ros-humble-ament-cmake-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["cmake","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-definitions","ros-humble-ament-cmake-export-dependencies","ros-humble-ament-cmake-export-include-directories","ros-humble-ament-cmake-export-interfaces","ros-humble-ament-cmake-export-libraries","ros-humble-ament-cmake-export-link-flags","ros-humble-ament-cmake-export-targets","ros-humble-ament-cmake-gen-version-h","ros-humble-ament-cmake-libraries","ros-humble-ament-cmake-python","ros-humble-ament-cmake-target-dependencies","ros-humble-ament-cmake-test","ros-humble-ament-cmake-version","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538529007,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"33442b745827696df2b8169cf938a2ab","name":"ros-humble-ament-cmake","requires":[],"size":10295,"version":"1.3.3","binstar":{"package_id":"6392655e114c465c98b4e28e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c703d678ba8e5d7f109362c0cc877e5beb573bd2d7393787be500cc445f6227d"},"ros-humble-ament-cmake-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["cmake","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-export-definitions","ros-humble-ament-cmake-export-dependencies","ros-humble-ament-cmake-export-include-directories","ros-humble-ament-cmake-export-interfaces","ros-humble-ament-cmake-export-libraries","ros-humble-ament-cmake-export-link-flags","ros-humble-ament-cmake-export-targets","ros-humble-ament-cmake-gen-version-h","ros-humble-ament-cmake-libraries","ros-humble-ament-cmake-python","ros-humble-ament-cmake-target-dependencies","ros-humble-ament-cmake-test","ros-humble-ament-cmake-version","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634317801,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a5002d0444b47a5aef48c4dc26b1bd47","name":"ros-humble-ament-cmake","requires":[],"size":11297,"version":"1.3.3","binstar":{"package_id":"6392655e114c465c98b4e28e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2d97f8809724b0bb5c8777e7a92a47a2b3541b2be74227f9246582a167d6e94"},"ros-humble-ament-index-python-1.4.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538584553,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5e43818167774c5749b92fcd64c7e3b3","name":"ros-humble-ament-index-python","requires":[],"size":15598,"version":"1.4.0","binstar":{"package_id":"6392655fa2b7121008f81ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"06010d440e4164d84ca74d7c7bf79229eecee7ae6d8b9398d381b6c80c42f140"},"ros-humble-ament-index-python-1.4.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634414974,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8d9b29b88d3d5279c21513136889268b","name":"ros-humble-ament-index-python","requires":[],"size":21025,"version":"1.4.0","binstar":{"package_id":"6392655fa2b7121008f81ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c0842ad2d4c657b73d61b65db75fb0c1bb422bc4d1b1f9db5920fc88a70ba91"},"ros-humble-ament-lint-cmake-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538504369,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"543d03af8b0f9c9657b53f93c68fad9d","name":"ros-humble-ament-lint-cmake","requires":[],"size":22530,"version":"0.12.4","binstar":{"package_id":"63926561358aafdd3d848fd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d5d2b2975282fd62e1b85eb8968c60d18f0339a95ca3eb21cdcf77ed313137f0"},"ros-humble-ament-lint-cmake-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634279489,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dbb5fb3536e7266870aa3ba837d226b6","name":"ros-humble-ament-lint-cmake","requires":[],"size":35655,"version":"0.12.5","binstar":{"package_id":"63926561358aafdd3d848fd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"108bab8617a81c82577701e77396c0d47987b2fa384648d916141897a273adca"},"ros-humble-tinyxml-vendor-0.8.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","tinyxml"],"build":"py310h413e681_2","timestamp":1670538778553,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6a304c5b492e50cac720c9450cc482f0","name":"ros-humble-tinyxml-vendor","requires":[],"size":10510,"version":"0.8.3","binstar":{"package_id":"6392664fd9a997aae71722f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ef0f475093a8497f41038d272ea1b66ea32f7924a6a74938e997bb9566ab6b1f"},"ros-humble-tinyxml-vendor-0.8.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tinyxml"],"build":"py310h7c61026_3","timestamp":1675634615856,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a90f4a819b157115d2254eca6d55a87d","name":"ros-humble-tinyxml-vendor","requires":[],"size":11513,"version":"0.8.3","binstar":{"package_id":"6392664fd9a997aae71722f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10c1900fc1c965f457a302f2eabfbb6ed64700e4c98ca7dd18314873494e7ff3"},"ros-humble-eigen-stl-containers-1.0.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538778874,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"da9bf4c308c20e8c14e236ca511a6ad7","name":"ros-humble-eigen-stl-containers","requires":[],"size":11275,"version":"1.0.0","binstar":{"package_id":"639266502b3749bdb85b9f9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5fbe15df82aaba9eae65912cba4023494332788c21550b8710ce34e11fd1fe0d"},"ros-humble-eigen-stl-containers-1.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634627856,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"95b36e665b7d64982395469a0b9922f2","name":"ros-humble-eigen-stl-containers","requires":[],"size":12330,"version":"1.0.0","binstar":{"package_id":"639266502b3749bdb85b9f9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c258b2da64dcb1e80a69166d2e6846decc72924a7a9bf51579acab2c949af4fe"},"ros-humble-shared-queues-vendor-0.15.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538796688,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ffb12cb980d88e9ef69335ea96f159aa","name":"ros-humble-shared-queues-vendor","requires":[],"size":51047,"version":"0.15.3","binstar":{"package_id":"639266516643907e3b5f9a77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2d985fbef1a9d0a2f9e4d4cc00232d92f6b3fde1e5985cc542267f9520123ed"},"ros-humble-shared-queues-vendor-0.15.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634657276,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"920c46456f8bc8807402d55f5d0c389e","name":"ros-humble-shared-queues-vendor","requires":[],"size":52090,"version":"0.15.4","binstar":{"package_id":"639266516643907e3b5f9a77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a66dc9e3df888d4ed565af7e5ae716c61d96263cd9be93202b4b27df84a30339"},"ros-humble-pybind11-vendor-2.4.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pybind11","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538761333,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"53035e66f12ce4d28e510ff91e7019be","name":"ros-humble-pybind11-vendor","requires":[],"size":9153,"version":"2.4.2","binstar":{"package_id":"63926651bbbc2b1e9629a998","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3dfee35c09d8a6c5a469e356c51e8c646fc114931b08b84665d153c553866567"},"ros-humble-pybind11-vendor-2.4.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pybind11","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634588289,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c0fb2b45f71b4781ed09a027a36b25db","name":"ros-humble-pybind11-vendor","requires":[],"size":10211,"version":"2.4.2","binstar":{"package_id":"63926651bbbc2b1e9629a998","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b106103fc5b2e3f6233e9a26252366e70a2e749539305026a7e3663f93267af5"},"ros-humble-yaml-cpp-vendor-8.0.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h413e681_2","timestamp":1670538812503,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"99677dd7639bab32ea4f0fd6a3be2983","name":"ros-humble-yaml-cpp-vendor","requires":[],"size":9415,"version":"8.0.1","binstar":{"package_id":"63926652ead2dcc8c2d8dded","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4322edbe896c7d70c040e062e1a68f2c5eaa8cc2b9c4c9e17bad0407f7b35485"},"ros-humble-yaml-cpp-vendor-8.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h7c61026_3","timestamp":1675634669773,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"68198ff18b94063567e9ed138582d891","name":"ros-humble-yaml-cpp-vendor","requires":[],"size":10385,"version":"8.0.2","binstar":{"package_id":"63926652ead2dcc8c2d8dded","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3b846803c241ec03816ec3e445153a1b0aa699f83ac5c723b7caa7de4052d84"},"ros-humble-libcurl-vendor-3.1.0-py310haf5a90d_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libcurl >=7.86.0,<8.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pkg-config","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310haf5a90d_2","timestamp":1670538829819,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c96b9b449fe0ddcbea46f88e4beeeff1","name":"ros-humble-libcurl-vendor","requires":[],"size":9929,"version":"3.1.0","binstar":{"package_id":"63926653114c465c98b5ec48","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3ff9c4080975012a0ee953164f26f21b414e5ab3523f12e4f4bd2b611a11a37"},"ros-humble-libcurl-vendor-3.1.1-py310h5f161cd_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libcurl >=7.87.0,<8.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pkg-config","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5f161cd_3","timestamp":1675634696234,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"959f3f53d02140cdca629c15d722a350","name":"ros-humble-libcurl-vendor","requires":[],"size":10940,"version":"3.1.1","binstar":{"package_id":"63926653114c465c98b5ec48","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b2198789307bf67f5ee6dcbb1b720dc0b2b90401e79e86b1ac19500257e89a07"},"ros-humble-tinyxml2-vendor-0.7.5-py310h8e3f4c6_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","tinyxml2 >=9.0.0,<10.0a0"],"build":"py310h8e3f4c6_2","timestamp":1670538795722,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0469164fcbc0438fbf838f6b9707bb74","name":"ros-humble-tinyxml2-vendor","requires":[],"size":10714,"version":"0.7.5","binstar":{"package_id":"6392665583c9be96eba5a19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca247fb33623b85223bd4d0d9e5d3b9c329f9c0c44374990724c1109815dbfca"},"ros-humble-tinyxml2-vendor-0.7.5-py310h141280f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tinyxml2 >=9.0.0,<10.0a0"],"build":"py310h141280f_3","timestamp":1675634643283,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f821398df34c8686b04d3a5a6d39d1f4","name":"ros-humble-tinyxml2-vendor","requires":[],"size":11687,"version":"0.7.5","binstar":{"package_id":"6392665583c9be96eba5a19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64d86bf504487b58b63aa5b8b41888d84d4b8c7256c443775787603825e879df"},"ros-humble-random-numbers-2.0.1-py310hd15adc0_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd15adc0_2","timestamp":1670538761104,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4384c786ad46b4b165504c38a8b04411","name":"ros-humble-random-numbers","requires":[],"size":38800,"version":"2.0.1","binstar":{"package_id":"63926655de9ed7eca6385105","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f0c9121fd6cae77c1c029b04038021c9b157f37d57e43c8d48190eafce369576"},"ros-humble-random-numbers-2.0.1-py310he1f1850_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310he1f1850_3","timestamp":1675634599714,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ec9565ed367f321a11606966b48abbce","name":"ros-humble-random-numbers","requires":[],"size":39853,"version":"2.0.1","binstar":{"package_id":"63926655de9ed7eca6385105","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad2a344aac6e1e15d572cffe70507c1cc34fd290f93ee124e5288164a461e7e8"},"ros-humble-tcb-span-1.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538830747,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fa01253a019480b3e49b1e498608c716","name":"ros-humble-tcb-span","requires":[],"size":14309,"version":"1.0.2","binstar":{"package_id":"639266566e0eca100b46e327","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fc70f1e53c1f01d47a6cc753f59d9dc3912fc3869440ae04402261da22f56572"},"ros-humble-tcb-span-1.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634711315,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"88b79a6391ca1c61d7b4b6eec1bf9644","name":"ros-humble-tcb-span","requires":[],"size":15444,"version":"1.0.2","binstar":{"package_id":"639266566e0eca100b46e327","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4dde921e2a0539b44a417beae4dbd6b7b33635a95b5f8ccb99932b0e7f4a3758"},"ros-humble-backward-ros-1.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["elfutils >=0.188,<0.189.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538837811,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2abd50b7d6203a8af128421cd5b15879","name":"ros-humble-backward-ros","requires":[],"size":344559,"version":"1.0.2","binstar":{"package_id":"639266581f9cf5f92ad4ca61","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2bdcf239c2d5c0dabf3e21a82b1fc5ba3941734c99aa19ef067a17bded66f7f5"},"ros-humble-backward-ros-1.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["elfutils >=0.188,<0.189.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634680750,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4ab1b0ce03c52e49145f36a8f9752c42","name":"ros-humble-backward-ros","requires":[],"size":349603,"version":"1.0.2","binstar":{"package_id":"639266581f9cf5f92ad4ca61","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"83eb7b412e06d1caaea38b4b35e3c2a80490481e1427e0b557c2663279e9caf4"},"ros-humble-moveit-resources-panda-description-2.0.6-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538808456,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5303ba77074338d0750e1c7074125d01","name":"ros-humble-moveit-resources-panda-description","requires":[],"size":3799766,"version":"2.0.6","binstar":{"package_id":"6392665aa2b7121008fa0b4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8182d099fef37ec2ae2470812279d100b1cb252059448a8b3d98d57abdacadcd"},"ros-humble-moveit-resources-panda-description-2.0.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634644747,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c8f12680ce7f85d1aa55d57723974f59","name":"ros-humble-moveit-resources-panda-description","requires":[],"size":3801633,"version":"2.0.6","binstar":{"package_id":"6392665aa2b7121008fa0b4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80a832a96eb6351b94b9461848228c3922fffbe52c9a3dcb958128f9c7519210"},"ros-humble-moveit-resources-pr2-description-2.0.6-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538788207,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cf8cbffd9cfb9b0a88dd6b1938ab0e23","name":"ros-humble-moveit-resources-pr2-description","requires":[],"size":25956667,"version":"2.0.6","binstar":{"package_id":"6392665b6643907e3b5f9cd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ea2402ce4fbb3ced70bb3c50663cd447c3e1cdeb6ec0afe962d5ad99716427db"},"ros-humble-moveit-resources-pr2-description-2.0.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634614622,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a421f1773f251fe2fedb53f6bfe9a187","name":"ros-humble-moveit-resources-pr2-description","requires":[],"size":25894652,"version":"2.0.6","binstar":{"package_id":"6392665b6643907e3b5f9cd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"adef698f4a781fc7f824831f07b1e93a246892d938fab8a4e627a09d1e6d52c2"},"ros-humble-sqlite3-vendor-0.15.3-py310ha95fa60_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libsqlite >=3.40.0,<4.0a0","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","sqlite"],"build":"py310ha95fa60_2","timestamp":1670538750559,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1cc6101cf48ec45c462df28b2b123364","name":"ros-humble-sqlite3-vendor","requires":[],"size":10704,"version":"0.15.3","binstar":{"package_id":"6392665c6d07f25db97c4a9f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b026e23628aa2cd218efe5947693130aee7d4525be9d5ee8905a53f636e14e94"},"ros-humble-sqlite3-vendor-0.15.4-py310hdee8d75_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libsqlite >=3.40.0,<4.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","sqlite"],"build":"py310hdee8d75_3","timestamp":1675634568589,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8643f1a6b80dc01386bd328a7b549a08","name":"ros-humble-sqlite3-vendor","requires":[],"size":11723,"version":"0.15.4","binstar":{"package_id":"6392665c6d07f25db97c4a9f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cddfb2a6161e6db10891ed235497bdef878c5e93ef50cd19551174f94bb15738"},"ros-humble-zstd-vendor-0.15.3-py310hf7651ed_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","zstd >=1.5.2,<1.6.0a0"],"build":"py310hf7651ed_2","timestamp":1670538822464,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"05e4b746539011362f28513cc29aa9ef","name":"ros-humble-zstd-vendor","requires":[],"size":9983,"version":"0.15.3","binstar":{"package_id":"6392665de6a2f79ab828d7bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc06bd4e16631a0ab4703fe794e15b2b45e23a8757c87a15beb684a3371c39db"},"ros-humble-zstd-vendor-0.15.4-py310h81906f2_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","zstd >=1.5.2,<1.6.0a0"],"build":"py310h81906f2_3","timestamp":1675634656695,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ddf40f31af26490a8af45e71306a86e6","name":"ros-humble-zstd-vendor","requires":[],"size":11039,"version":"0.15.4","binstar":{"package_id":"6392665de6a2f79ab828d7bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f1800bf55a076044d6ce3a7681b35c2cbc2df90986f19e28fe1fa0dd84e1713e"},"ros-humble-angles-1.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538770477,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6497c2a31e3a4bb02c535dae67f706f0","name":"ros-humble-angles","requires":[],"size":19111,"version":"1.15.0","binstar":{"package_id":"6392665e114c465c98b5f1fb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2b0fbb8997d98256036866d1f8d9add9579f791ffbf760abf28b56e87095b5b"},"ros-humble-angles-1.15.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634590039,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f50ba7282642806b9d8ca6aee423bea3","name":"ros-humble-angles","requires":[],"size":22831,"version":"1.15.0","binstar":{"package_id":"6392665e114c465c98b5f1fb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"53aea5922ca50921901e635fa074a94cea3d26f4a8f288005aef43e6d959bd1f"},"ros-humble-xacro-2.0.8-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538790837,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6690a74ac7d3fa2e0c2786a143807943","name":"ros-humble-xacro","requires":[],"size":48348,"version":"2.0.8","binstar":{"package_id":"6392665e6a03c9fad2522bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cfc3eb04061d4bcb2d3907e27a393d3ae678f56747a0fcd4d84957633dc0b0b0"},"ros-humble-xacro-2.0.8-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634620871,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"986c38911cca789fb30b79f95ff524cb","name":"ros-humble-xacro","requires":[],"size":78210,"version":"2.0.8","binstar":{"package_id":"6392665e6a03c9fad2522bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"41b998001f698f3a5b8a723d64f3f590aa829991522486b6e487eab780573b9d"},"ros-humble-ament-cmake-auto-1.3.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-cmake-gtest","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538770541,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"27d4c3358ba571359bc6805362c3081a","name":"ros-humble-ament-cmake-auto","requires":[],"size":13274,"version":"1.3.3","binstar":{"package_id":"6392665fd9a997aae7172899","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46fb76cf78c649b6db4d593ec31578347f6d3f8328dbcf9dedb0c78bd3f06290"},"ros-humble-ament-cmake-auto-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-cmake-gtest","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634594711,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6edd3a091756b205e1bb3b33a9fa51e5","name":"ros-humble-ament-cmake-auto","requires":[],"size":14358,"version":"1.3.3","binstar":{"package_id":"6392665fd9a997aae7172899","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"38eaa4784e7b66590d31db4352481eee9286fe0fc4dfa9b49d8a841f8e9ec252"},"ros-humble-ros2-control-test-assets-2.18.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538754393,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5c2d454c2fbdc4c247f3c408e6f75dfb","name":"ros-humble-ros2-control-test-assets","requires":[],"size":13715,"version":"2.18.0","binstar":{"package_id":"6392666054e9ace854c349f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46740d3eb69066b73ecddc10205ead7e40d97aa645cb8a629691c6c7624c031a"},"ros-humble-ros2-control-test-assets-2.22.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634565892,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fe93a96c8225346c9fdd78299f44b448","name":"ros-humble-ros2-control-test-assets","requires":[],"size":14716,"version":"2.22.0","binstar":{"package_id":"6392666054e9ace854c349f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"324211a6bca736b64fd84e5fc43b26c548724230d71599fdf27b255b1f934a17"},"ros-humble-moveit-resources-fanuc-description-2.0.6-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538838194,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6d50ade0310c0104328adf70e85a502d","name":"ros-humble-moveit-resources-fanuc-description","requires":[],"size":185075,"version":"2.0.6","binstar":{"package_id":"639266624f66fd116f469d2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33bb3930933215e883645540349eeb4b54ac5745a099456db80d4febd32b3996"},"ros-humble-moveit-resources-fanuc-description-2.0.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634679474,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e90867c264714f151775785ae112d1a2","name":"ros-humble-moveit-resources-fanuc-description","requires":[],"size":186545,"version":"2.0.6","binstar":{"package_id":"639266624f66fd116f469d2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b6b11508a07f2385d225fc2f37987c15d6e8798bc52083fff0f2cd0b7001894"},"ros-humble-ament-cmake-lint-cmake-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-lint-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538767075,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0dacff40b3c2c5100bf9a235edd7bd08","name":"ros-humble-ament-cmake-lint-cmake","requires":[],"size":10505,"version":"0.12.4","binstar":{"package_id":"63926678114c465c98b5fe2c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0cb713ccab7e7f55c5378215a4074cd829e2ba84f59c186d2f7615ddec992ad9"},"ros-humble-ament-cmake-lint-cmake-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-lint-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634589699,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"39f8a633bb7218bddf7fe97c7ce68936","name":"ros-humble-ament-cmake-lint-cmake","requires":[],"size":11461,"version":"0.12.5","binstar":{"package_id":"63926678114c465c98b5fe2c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dac0a2814f63d20129a53b1469db94817fb5c252ab08cb984f97a343c6243b4c"},"ros-humble-rosidl-cli-3.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["argcomplete","importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538850614,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fc70d02c35f3450fb4a054918fc05b8f","name":"ros-humble-rosidl-cli","requires":[],"size":23774,"version":"3.1.4","binstar":{"package_id":"6392667abbbc2b1e9629f7e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b95c3fd02b0adcc949b6ad8ee5d68aeb01b131baef2ddaf32c231940d0f4205"},"ros-humble-rosidl-cli-3.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["argcomplete","importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634696790,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"95578fbac34c81668b52d825ef8cc001","name":"ros-humble-rosidl-cli","requires":[],"size":33481,"version":"3.1.4","binstar":{"package_id":"6392667abbbc2b1e9629f7e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"514eab84e0711ff4fb64c067b9a0717e6271fa4330564fd26078f8d713293ab2"},"ros-humble-uncrustify-vendor-2.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","uncrustify >=0.74.0,<0.75.0a0"],"build":"py310h413e681_2","timestamp":1670538797830,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e0501b780a10dde65a45c3de98df2d20","name":"ros-humble-uncrustify-vendor","requires":[],"size":9278,"version":"2.0.2","binstar":{"package_id":"6392667bd9a997aae717542c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aaf60f5e94f5a6f2d46e3cfb8b64dd3b99f3866de35987b8101845f2668ae070"},"ros-humble-uncrustify-vendor-2.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","uncrustify >=0.74.0,<0.75.0a0"],"build":"py310h7c61026_3","timestamp":1675634628039,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a84a7a339cedff0e1b0fcbd67a5a18c6","name":"ros-humble-uncrustify-vendor","requires":[],"size":10293,"version":"2.0.2","binstar":{"package_id":"6392667bd9a997aae717542c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04725fd0fc221aefc047e3dae4d0245eb11399c23667d8eeba22b8fd1b7fe290"},"ros-humble-rpyutils-0.2.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538870732,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b99f58d85ae28f5142c5902f7e6a906c","name":"ros-humble-rpyutils","requires":[],"size":13576,"version":"0.2.1","binstar":{"package_id":"6392667cead2dcc8c2d90d18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"92e0857f92935e783afc0aeadf150562a1fcd86b69958088c30bd6f64584119a"},"ros-humble-rpyutils-0.2.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634724267,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3534f8593e526f37197acf0c87a3c75b","name":"ros-humble-rpyutils","requires":[],"size":12343,"version":"0.2.1","binstar":{"package_id":"6392667cead2dcc8c2d90d18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ab9271cbe2d634168c7d0beba357a8386d81f355db828b97b4031e86b2fc5e0"},"ros-humble-launch-1.0.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["importlib-metadata","lark-parser","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-osrf-pycommon","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538825734,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6a658bb34e22f7baf729e0390ef57c23","name":"ros-humble-launch","requires":[],"size":148845,"version":"1.0.3","binstar":{"package_id":"6392667d358aafdd3d85cc70","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"94a50652173f0d7d4461297abd3d51c1dbf327fbe4dbb4b465e0499184bf1605"},"ros-humble-launch-1.0.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["importlib-metadata","lark-parser","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-osrf-pycommon","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634663838,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"088c825327751a4bb1450efc16d224c7","name":"ros-humble-launch","requires":[],"size":265057,"version":"1.0.4","binstar":{"package_id":"6392667d358aafdd3d85cc70","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc50a17c4967728f71b9c093917c912c20de594337264a5f6494edd3af997d74"},"ros-humble-ur-client-library-1.3.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538917256,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"38c721b1063350df69d1688e4fd329d9","name":"ros-humble-ur-client-library","requires":[],"size":278170,"version":"1.3.1","binstar":{"package_id":"639266c94f66fd116f472dfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5e9e0c72ce0c73315bcd49a1f32921937d91521ecce60fff066826dca56223a7"},"ros-humble-ur-client-library-1.3.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675682762729,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"451c4d29faa74d0c73b0906483bc668b","name":"ros-humble-ur-client-library","requires":[],"size":278731,"version":"1.3.1","binstar":{"package_id":"639266c94f66fd116f472dfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"de5123ada358e469b244fea9e0c6b41035a5bf6d7eb7f360e9e5ef03354fa142"},"ros-humble-ublox-serialization-2.3.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538932936,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cd114c6867e35e3df24c65279eaf65e2","name":"ros-humble-ublox-serialization","requires":[],"size":16475,"version":"2.3.0","binstar":{"package_id":"639266ca46f81babcaee1f57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"790ef0a1eeab69b071e41eddd4e3862a7804dd2825f3cc28c12e0632cea29000"},"ros-humble-ublox-serialization-2.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634771984,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"400ea49df6d714af6a846b6c5a29a858","name":"ros-humble-ublox-serialization","requires":[],"size":17548,"version":"2.3.0","binstar":{"package_id":"639266ca46f81babcaee1f57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9782afecf4a2a4fa652142516a7e0a403cff603513d0a05dfcc744b8d5d100c9"},"ros-humble-gazebo-dev-3.7.0-py310h2501ef1_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gazebo >=11.12.0,<12.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h2501ef1_2","timestamp":1670538863562,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2980de2e5ab119e62dd9c0fea4b2a864","name":"ros-humble-gazebo-dev","requires":[],"size":9914,"version":"3.7.0","binstar":{"package_id":"639266cb54e9ace854c377fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eaa0fd7e800171fe8300ee9fa1e55a21265828c5abc1942783549b2a9e39eacd"},"ros-humble-gazebo-dev-3.7.0-py310h340adac_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gazebo >=11.12.0,<12.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h340adac_3","timestamp":1675634677896,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5c2850fc720163ed99f0b1916c0f960b","name":"ros-humble-gazebo-dev","requires":[],"size":13940,"version":"3.7.0","binstar":{"package_id":"639266cb54e9ace854c377fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"88122e7578e9156211607a430bec0df54d8eeb415e48a45bac639ba316b6db32"},"ros-humble-dynamixel-sdk-3.7.60-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670538951857,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a0e71a3da42b3a6768ef04c4e8e853f2","name":"ros-humble-dynamixel-sdk","requires":[],"size":58440,"version":"3.7.60","binstar":{"package_id":"639266cce6a2f79ab8292707","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22f208f90f63bdb345d6e81d11b1931b64c87a0b1a62f76da53f689b01c37785"},"ros-humble-dynamixel-sdk-3.7.60-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675634799204,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6fb8da73b0eb3873fa8de1a48282b1e7","name":"ros-humble-dynamixel-sdk","requires":[],"size":59542,"version":"3.7.60","binstar":{"package_id":"639266cce6a2f79ab8292707","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6dc8020f840e721071a12dd3aa9a9ce70e464cbcb5edb6c1d10023354f2e0003"},"ros-humble-sdl2-vendor-3.1.0-py310hcb79e47_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","sdl2 >=2.26.1,<3.0a0"],"build":"py310hcb79e47_2","timestamp":1670538882468,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c9a36a985f609e5e39ed6472e52ce64e","name":"ros-humble-sdl2-vendor","requires":[],"size":9788,"version":"3.1.0","binstar":{"package_id":"639266cde6a2f79ab829272d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"95f09b6af3b22113e0a3da2fb4248869377f7578888a71581425859532703667"},"ros-humble-sdl2-vendor-3.1.0-py310h2bafbca_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","sdl2 >=2.26.2,<3.0a0"],"build":"py310h2bafbca_3","timestamp":1675634705234,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"137fc7e03f9cb457d1eb6df7859f2dd3","name":"ros-humble-sdl2-vendor","requires":[],"size":11284,"version":"3.1.0","binstar":{"package_id":"639266cde6a2f79ab829272d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ef69104a05f4e8012c93e68339204f928b72bc0c3598201c85291a71962b4c8"},"ros-humble-ament-cmake-copyright-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-copyright","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539102831,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e8d74ba3ce8252ee45cf1a686550fb3a","name":"ros-humble-ament-cmake-copyright","requires":[],"size":10508,"version":"0.12.4","binstar":{"package_id":"639267b8114c465c98b65b86","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f254feee02642dddd4e4ff54f87da3387d79a77dea2e46bdddc5380876fcf69d"},"ros-humble-ament-cmake-copyright-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-copyright","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675682743717,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dfa83f5172489a56f9f165ebf17e58b4","name":"ros-humble-ament-cmake-copyright","requires":[],"size":11489,"version":"0.12.5","binstar":{"package_id":"639267b8114c465c98b65b86","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12831417ea70cf4a748e6e3cc80b3fb393ba9d089bd3dcf8d6681da0a330f6eb"},"ros-humble-ament-uncrustify-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-uncrustify-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539126834,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c2204234e57b113979bd125cd8ff1db8","name":"ros-humble-ament-uncrustify","requires":[],"size":34010,"version":"0.12.4","binstar":{"package_id":"639267b96a03c9fad2538074","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5f1d60050c77fdf47175a695783a6f159942f5ea9c6bb69d8c9c387880905e32"},"ros-humble-ament-uncrustify-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-uncrustify-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675682773932,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fed94b8b97a9393f614696e5723c6fd3","name":"ros-humble-ament-uncrustify","requires":[],"size":43175,"version":"0.12.5","binstar":{"package_id":"639267b96a03c9fad2538074","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd0ab2479ccce29cdd0138e903634b5c944009e5ed55f5178ce9a32d2e5e707b"},"ros-humble-moveit-resources-prbt-support-2.5.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539189963,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"597f50b5016ef80174d78dd7e2db9b7a","name":"ros-humble-moveit-resources-prbt-support","requires":[],"size":1080570,"version":"2.5.4","binstar":{"package_id":"639267baed6d66bf8f935f12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"abea114a6947b4b40de2c04e89c313c8c2f2e265402103fde2551b592ba10ac7"},"ros-humble-moveit-resources-prbt-support-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675682857481,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"aeabe5fc85b05673945910694bc22c32","name":"ros-humble-moveit-resources-prbt-support","requires":[],"size":1083762,"version":"2.5.4","binstar":{"package_id":"639267baed6d66bf8f935f12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b89a97e6ddeea46e8cb057ea08167abdd933778bee776ce48f5f2e307d701a9b"},"ros-humble-launch-yaml-1.0.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539147314,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"eaf44a1c55b3767f1cdeb8bff44498e7","name":"ros-humble-launch-yaml","requires":[],"size":13183,"version":"1.0.3","binstar":{"package_id":"639267bb358aafdd3d86780f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e53db819abcc1eff1f2af948926dfa9729943eddf05f7adcf44ce9ce2615f7e7"},"ros-humble-launch-yaml-1.0.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675682800406,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"343a17258b5a7d1462674908504e7291","name":"ros-humble-launch-yaml","requires":[],"size":17216,"version":"1.0.4","binstar":{"package_id":"639267bb358aafdd3d86780f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ea4c086235cf9179e3edceff5bf62e2a34bb7ac0bbc3cd3c65032f4f5434c066"},"ros-humble-launch-xml-1.0.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539165650,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"69f33ca63104b789357db8ea038b481f","name":"ros-humble-launch-xml","requires":[],"size":12850,"version":"1.0.3","binstar":{"package_id":"639267bb4f66fd116f47f8e1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8d9fe07ac7a53df8c768fdb60d152c6cf3d3b5abc3d79feec4aed47ce300df4"},"ros-humble-launch-xml-1.0.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675682824348,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"af5a671ba31f01a0ae2bcc535b6d4fa5","name":"ros-humble-launch-xml","requires":[],"size":16600,"version":"1.0.4","binstar":{"package_id":"639267bb4f66fd116f47f8e1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf6b2d4ff306bec42d4d31895dbda69a8a2918ab50adcb09bc4cdd5f3a64dfc0"},"ros-humble-ament-cmake-cpplint-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-cpplint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539419563,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4c35110c4a15375f83f1ef0d9ff58773","name":"ros-humble-ament-cmake-cpplint","requires":[],"size":10853,"version":"0.12.4","binstar":{"package_id":"6392689da2b7121008fcbd9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3283a768a4ac052200271f0af5ad086be2c3858730679c8484f1acad7a22eb27"},"ros-humble-ament-cmake-cpplint-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-cpplint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675683131333,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5add22bafaf93846b11568761a7e71b3","name":"ros-humble-ament-cmake-cpplint","requires":[],"size":11822,"version":"0.12.5","binstar":{"package_id":"6392689da2b7121008fcbd9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9249c5112ada3cec1c74db2b6460c7559527136c282b451712386c0cc69538c"},"ros-humble-ament-cmake-pep257-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-pep257","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539384274,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bbee077d511b9d645f54490ff961b93f","name":"ros-humble-ament-cmake-pep257","requires":[],"size":10481,"version":"0.12.4","binstar":{"package_id":"6392689e46f81babcaefce8e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f9af2861e3158b0ddff3c03d16180b54da466b79c99d58289844bab89a2662e"},"ros-humble-ament-cmake-pep257-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-pep257","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675683074022,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"35c3ee4a3bddec14b10108c4d11e3317","name":"ros-humble-ament-cmake-pep257","requires":[],"size":11491,"version":"0.12.5","binstar":{"package_id":"6392689e46f81babcaefce8e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"93fcbdceeca9a675eb6fb29add07fc0b722241fd9031f4b74fcd9c8f2ed3a488"},"ros-humble-ament-cmake-uncrustify-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-uncrustify","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539366969,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ff4f36517eb8865c320b695b0c7eeb49","name":"ros-humble-ament-cmake-uncrustify","requires":[],"size":10879,"version":"0.12.4","binstar":{"package_id":"639268a0a2b7121008fcbe1a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ffefff023e64e9d70114d9c1df6ba0b29e9e036333f37323dc317eccbdbcef56"},"ros-humble-ament-cmake-uncrustify-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-uncrustify","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675683046338,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e3dc26775a91fcf3d6d9a6a020353882","name":"ros-humble-ament-cmake-uncrustify","requires":[],"size":11886,"version":"0.12.5","binstar":{"package_id":"639268a0a2b7121008fcbe1a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d008e30681bd4d326415d746ce7d0a3f2408f74fc156654d152d6e806b61ccb9"},"ros-humble-ament-cmake-xmllint-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-xmllint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539350715,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c5b0fddec8c7dcac03d01cc8227bd569","name":"ros-humble-ament-cmake-xmllint","requires":[],"size":10561,"version":"0.12.4","binstar":{"package_id":"639268a166b3e4e3deba6245","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c7a24c6f0599854b77c9273e311d888708d3280d6ef91ca59f15be594d97a460"},"ros-humble-ament-cmake-xmllint-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-xmllint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675683017841,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dcb7faf6227198e89e6c9848dadae5bb","name":"ros-humble-ament-cmake-xmllint","requires":[],"size":11539,"version":"0.12.5","binstar":{"package_id":"639268a166b3e4e3deba6245","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"623cd6f44c7016867f917b75355782f19b53ba5671790b1c8903725a9ee0831e"},"ros-humble-ament-cmake-flake8-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-flake8","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539402096,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9003e8e646665b159593eee3072cb0b0","name":"ros-humble-ament-cmake-flake8","requires":[],"size":10720,"version":"0.12.4","binstar":{"package_id":"639268a2ead2dcc8c2dadeb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27197903930e52b5fb24c883dc242e6e048de19bab58cf12fb3751b6de00bb57"},"ros-humble-ament-cmake-flake8-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-flake8","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675683103570,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"20b246cedf412f3c9cef543bdb89fe47","name":"ros-humble-ament-cmake-flake8","requires":[],"size":11735,"version":"0.12.5","binstar":{"package_id":"639268a2ead2dcc8c2dadeb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d54c10c0348bf21475239c8533280375065c720a8e1e96f399e2bb0ca8c4fd42"},"ros-humble-ament-cmake-pclint-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-ament-pclint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539445527,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"747eb3ec84ecc33d2784a5a69ef3f28a","name":"ros-humble-ament-cmake-pclint","requires":[],"size":11012,"version":"0.12.4","binstar":{"package_id":"639268b74f66fd116f488d56","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ab2fd85f6d49f430d3d7eb3acc008f925f064be7bf26012710adebc8f4e3b68"},"ros-humble-ament-cmake-pclint-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-ament-pclint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675683091598,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6d2f39feb358129908548a02399df8ca","name":"ros-humble-ament-cmake-pclint","requires":[],"size":11956,"version":"0.12.5","binstar":{"package_id":"639268b74f66fd116f488d56","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52fecefede7721f3db59a74e519bb1ff5354df966ca03375e7342efb0832ff5b"},"ros-humble-eigen3-cmake-module-0.1.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539425999,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"385a058983f87ee76d572c728b285421","name":"ros-humble-eigen3-cmake-module","requires":[],"size":9997,"version":"0.1.1","binstar":{"package_id":"639268b8358aafdd3d86b92e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"120be2a9b363f5aef8a68b7fe3598ea7da080dcb10a14be6484deed39e20e3b3"},"ros-humble-eigen3-cmake-module-0.1.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675683066130,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"58ff5b5356626a15fff5d1b7afc3cf6d","name":"ros-humble-eigen3-cmake-module","requires":[],"size":10973,"version":"0.1.1","binstar":{"package_id":"639268b8358aafdd3d86b92e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"581c9a1e89a83c70693f1c47260768d1386c2db27bf3759ba0a22869e78a2ec0"},"ros-humble-ament-cmake-cppcheck-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ament-cppcheck","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539374839,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ee98d68c35f16fffdfd622a019b29af2","name":"ros-humble-ament-cmake-cppcheck","requires":[],"size":11509,"version":"0.12.4","binstar":{"package_id":"639268b92dd70620555f246b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6b9a13c9039ccc4452f4b473115756e4f537a8d363fc36e1865eaae70618dc0"},"ros-humble-ament-cmake-cppcheck-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ament-cppcheck","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675683007105,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0506286b7ef45d5ad6ee7bfb1b3ff6ce","name":"ros-humble-ament-cmake-cppcheck","requires":[],"size":12489,"version":"0.12.5","binstar":{"package_id":"639268b92dd70620555f246b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"483094e049d1eaaf8d1ea765a5e724d85cea9ea47a86e66925e9cc19d9520b2a"},"ros-humble-launch-testing-1.0.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pytest","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-osrf-pycommon","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539403345,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e63a5e2d93c2ca51fa18803026d5e984","name":"ros-humble-launch-testing","requires":[],"size":74821,"version":"1.0.3","binstar":{"package_id":"639268b99e77a4aa6b6a8f14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"381876249be6106d47a471a363f3d0d9620477a71824a9da748be8a1649500f3"},"ros-humble-launch-testing-1.0.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pytest","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-osrf-pycommon","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675683038241,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b43fb93b73ee7e84860a40b4dbc8428d","name":"ros-humble-launch-testing","requires":[],"size":119282,"version":"1.0.4","binstar":{"package_id":"639268b99e77a4aa6b6a8f14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7c46d6452cc33c6a40b254b5672a9a7ea419c759694bf6c7fae8cb9b519bfaeb"},"ros-humble-ament-lint-common-0.12.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-copyright","ros-humble-ament-cmake-core","ros-humble-ament-cmake-cppcheck","ros-humble-ament-cmake-cpplint","ros-humble-ament-cmake-flake8","ros-humble-ament-cmake-lint-cmake","ros-humble-ament-cmake-pep257","ros-humble-ament-cmake-uncrustify","ros-humble-ament-cmake-xmllint","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539620154,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8ad89ac9057c9d1d7f062aec90c90e82","name":"ros-humble-ament-lint-common","requires":[],"size":10282,"version":"0.12.4","binstar":{"package_id":"639269e44f66fd116f497b18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ace091ccf91389765fb56eb8253f9a8aeb32c50fe7bd7ee441ddcf7fc313e121"},"ros-humble-ament-lint-common-0.12.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-copyright","ros-humble-ament-cmake-core","ros-humble-ament-cmake-cppcheck","ros-humble-ament-cmake-cpplint","ros-humble-ament-cmake-flake8","ros-humble-ament-cmake-lint-cmake","ros-humble-ament-cmake-pep257","ros-humble-ament-cmake-uncrustify","ros-humble-ament-cmake-xmllint","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675683281445,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f7a76e90a643a3bf3ea9c904e32419c1","name":"ros-humble-ament-lint-common","requires":[],"size":11440,"version":"0.12.5","binstar":{"package_id":"639269e44f66fd116f497b18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e9e876c62cee60d3ea7077ffd628fe9d3fc79b1506ff36e3073468c094d7f9b6"},"ros-humble-ignition-cmake2-vendor-0.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-cmake2 >=2.16.0,<3.0a0","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539746346,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2e825e0b946d53199cb12d678922a776","name":"ros-humble-ignition-cmake2-vendor","requires":[],"size":6420,"version":"0.0.2","binstar":{"package_id":"639269e6d9a997aae719dd03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8dd79e8dc6b359b874c5fff30c4b48023f44adb0fd935513a03748ad2be1c944"},"ros-humble-ignition-cmake2-vendor-0.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-cmake2 >=2.16.0,<3.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684011411,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"eed4e52d0b7a9289c221cf06d3571214","name":"ros-humble-ignition-cmake2-vendor","requires":[],"size":7655,"version":"0.0.2","binstar":{"package_id":"639269e6d9a997aae719dd03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a47ea1536f6066140ed44878ad8745ca40dbec9ddbcb17845ca7a33f8e2f9b7a"},"ros-humble-rviz-assimp-vendor-11.2.4-py310he824681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310he824681_2","timestamp":1670539727007,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"29d5577310a9b7c97476e46b44a8e1bd","name":"ros-humble-rviz-assimp-vendor","requires":[],"size":9952,"version":"11.2.4","binstar":{"package_id":"639269e7ed6d66bf8f93e337","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"685ecb04385c2ffd2ebe29f8e502eccfdf907a7b79784b72d1486b746e9dd1ec"},"ros-humble-rviz-assimp-vendor-11.2.5-py310hdfab538_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hdfab538_3","timestamp":1675683985568,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d2416f5609af5050357c466c0d24a6ab","name":"ros-humble-rviz-assimp-vendor","requires":[],"size":11043,"version":"11.2.5","binstar":{"package_id":"639269e7ed6d66bf8f93e337","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3efe7539835ac434d0e2f9d24bfa3fc1519a2017d974275ee8bd3974382995f3"},"ros-humble-foonathan-memory-vendor-1.2.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["cmake","foonathan-memory >=0.7.2,<0.7.3.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539643260,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b34220aecd80dc0f0189bdc5f8258ee8","name":"ros-humble-foonathan-memory-vendor","requires":[],"size":7344,"version":"1.2.0","binstar":{"package_id":"639269e846f81babcaf0cb80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a9fd47e0f76cdc99a82f51630be789f38a06f974f2c2aef96f6d474fd51c5cb"},"ros-humble-foonathan-memory-vendor-1.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["cmake","foonathan-memory >=0.7.2,<0.7.3.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675683309924,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9d03135e11ff3cca2fe67ba249ced0b4","name":"ros-humble-foonathan-memory-vendor","requires":[],"size":8605,"version":"1.2.0","binstar":{"package_id":"639269e846f81babcaf0cb80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7fc7fe2d2066869b2235d66a1c6a4c23be6fe1dcac33889a7352c4bae23a152"},"ros-humble-rviz-ogre-vendor-11.2.4-py310h78654fa_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["assimp","freetype >=2.12.1,<3.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","ogre >=1.12.13,<1.13.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libx11","xorg-libxaw","xorg-libxext","xorg-libxrandr"],"build":"py310h78654fa_2","timestamp":1670539707322,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"608efac867253f5e79f3e6aadbc1dbb9","name":"ros-humble-rviz-ogre-vendor","requires":[],"size":12281,"version":"11.2.4","binstar":{"package_id":"639269ea46f81babcaf0cba3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30f35af2238db3d36a7539e324bb5b138598db7f8e99f163b9454e2c80b7bbb0"},"ros-humble-rviz-ogre-vendor-11.2.5-py310h05552f9_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","freeimage >=3.18.0,<3.19.0a0","freetype >=2.12.1,<3.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libzlib >=1.2.13,<1.3.0a0","numpy >=1.21.6,<2.0a0","pugixml >=1.11.4,<1.12.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libx11","xorg-libxaw","xorg-libxext","xorg-libxrandr","zziplib >=0.13.69,<0.14.0a0"],"build":"py310h05552f9_3","timestamp":1675683953582,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b812bc1dd619a14f30aceff11e854f8c","name":"ros-humble-rviz-ogre-vendor","requires":[],"size":5968230,"version":"11.2.5","binstar":{"package_id":"639269ea46f81babcaf0cba3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40aa956b3c76783e88aa1d93534b6d2605c7c0b052359f158ad69545d5f43d15"},"ros-humble-asio-cmake-module-1.2.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539957014,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f6f37bbf5ef5e5788fe6e17a8e5ff25b","name":"ros-humble-asio-cmake-module","requires":[],"size":9860,"version":"1.2.0","binstar":{"package_id":"63926acb46bec18b89e2737d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"26741d10792384d107b1d0b74bc988bf95e334691c29bedc038e331ca6de34a3"},"ros-humble-asio-cmake-module-1.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684203270,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7c3a495214510e75028cb9c0540a35d7","name":"ros-humble-asio-cmake-module","requires":[],"size":11068,"version":"1.2.0","binstar":{"package_id":"63926acb46bec18b89e2737d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a2effc71b17bd1951a1a930bb3b3851b3940eaf9242c496158bcca3873dc858"},"ros-humble-apex-test-tools-0.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-gtest","ros-humble-osrf-testing-tools-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539977468,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5f9169e8df2f7a32e8af67c6b33e6ea0","name":"ros-humble-apex-test-tools","requires":[],"size":12185,"version":"0.0.2","binstar":{"package_id":"63926acc46f81babcaf1f960","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81210de95c87d8125f6f1a60c6d2a2fc9454745b8d9345db0cfe4efdc26eaa53"},"ros-humble-apex-test-tools-0.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-gtest","ros-humble-osrf-testing-tools-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684231454,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8719381ed2a46a9a70ead55b2ad4d9cc","name":"ros-humble-apex-test-tools","requires":[],"size":13472,"version":"0.0.2","binstar":{"package_id":"63926acc46f81babcaf1f960","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ad17286a87b576302f03256a648260d868561a627e59dbfb237289f508b01d8"},"ros-humble-rttest-0.13.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539938646,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ce087752863eeb8ab493c577c8c2385b","name":"ros-humble-rttest","requires":[],"size":40351,"version":"0.13.0","binstar":{"package_id":"63926acc46f81babcaf1f97a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3c8e7f9f50e21b4b2155aa6fd8b6953937bff217029778cf1a9d2190b4e2460"},"ros-humble-rttest-0.13.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684179051,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0db6ab4f8a1604d78bb163a3e54258bc","name":"ros-humble-rttest","requires":[],"size":41684,"version":"0.13.0","binstar":{"package_id":"63926acc46f81babcaf1f97a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"515da10026b9175c4e57de9e84934de0834584efd432ba79bfb955e735d8e148"},"ros-humble-tango-icons-vendor-0.1.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539939451,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ed9c4f60f181aae0d24441730c34b2ce","name":"ros-humble-tango-icons-vendor","requires":[],"size":9260,"version":"0.1.1","binstar":{"package_id":"63926ae1d9a997aae71a937d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e119dd8364c32c4e67645c80e0ae2dd95bfa80e31e1b7c3bfad8706daa53b3b"},"ros-humble-tango-icons-vendor-0.1.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684195879,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"22d92f5dceaaca3c4417ad9514e7a5a9","name":"ros-humble-tango-icons-vendor","requires":[],"size":10475,"version":"0.1.1","binstar":{"package_id":"63926ae1d9a997aae71a937d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"03f443d6d35eddb56a25cf26aabd7b2af51a57ff17b4c731d166fc58a5df4f71"},"ros-humble-ignition-math6-vendor-0.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-math6 >=6.13.0,<7.0a0","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ignition-cmake2-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539982951,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dd4d7f17758f8f8b1166199137768f2f","name":"ros-humble-ignition-math6-vendor","requires":[],"size":6444,"version":"0.0.2","binstar":{"package_id":"63926ae1ead2dcc8c2dc0208","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"23a8110f1e345b97848acd0fb4bd1a24363a1b4ddd35a26a46831e4260789133"},"ros-humble-ignition-math6-vendor-0.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-math6 >=6.13.0,<7.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ignition-cmake2-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684253670,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"faa42c23581eeaa5f9fd8a32f1022c53","name":"ros-humble-ignition-math6-vendor","requires":[],"size":7685,"version":"0.0.2","binstar":{"package_id":"63926ae1ead2dcc8c2dc0208","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e76d3b8df541c1ae1cf5fc2863d1d0b7968c7d7e609d5fe1f054b8794caebc9"},"ros-humble-tlsf-0.7.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539999551,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8bd3cfc0dd1e0d1a556b1f30742feb31","name":"ros-humble-tlsf","requires":[],"size":16135,"version":"0.7.0","binstar":{"package_id":"63926ae2a2b7121008ff577c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e783700b1e50434a265814665d08ae9f58112d703bdd09e29e9d5077c2d8f55e"},"ros-humble-tlsf-0.7.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684277232,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0472a1cb1c6773d92fe95718f56d7434","name":"ros-humble-tlsf","requires":[],"size":17556,"version":"0.7.0","binstar":{"package_id":"63926ae2a2b7121008ff577c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6e860e1c480f60926b7cfbfae43b032f7fb0ac00c35f0d629504a0761ad90e56"},"ros-humble-moveit-common-2.5.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-backward-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539922543,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9db693cfbd296b4ff6b399e221c29d6c","name":"ros-humble-moveit-common","requires":[],"size":11033,"version":"2.5.4","binstar":{"package_id":"63926ae354e9ace854c53b7e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e45ed408c8bb51d789461756ff3e19c4ebdc015234ba25159321112ec91c5c86"},"ros-humble-moveit-common-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684172572,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7fe0eaaae19ccef35d2ff31960fde641","name":"ros-humble-moveit-common","requires":[],"size":12471,"version":"2.5.4","binstar":{"package_id":"63926ae354e9ace854c53b7e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"216dd7591d3809d29b2e646ad2b46dcc3359c60bd5bd7596a1dc06e1cb69388b"},"ros-humble-keyboard-handler-0.0.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539961239,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4d6e97d19ed989b373b2e53cc91cea81","name":"ros-humble-keyboard-handler","requires":[],"size":40540,"version":"0.0.5","binstar":{"package_id":"63926ae3d9a997aae71a93ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a0e4786695763dfdfac2ea165c9d4ccc2c12c2e3db2bfa416b117b3361da121"},"ros-humble-keyboard-handler-0.0.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684225231,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"df45e394a8a8d871f1a28af6a5d7ea90","name":"ros-humble-keyboard-handler","requires":[],"size":41898,"version":"0.0.5","binstar":{"package_id":"63926ae3d9a997aae71a93ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c2f01aa7c6b9bc955f821e830b434956bb6f709debcdb8779efe8821b386204d"},"ros-humble-python-cmake-module-0.10.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539963871,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"97d22b1d4cf8eb300431a3ed7a507b7e","name":"ros-humble-python-cmake-module","requires":[],"size":11392,"version":"0.10.0","binstar":{"package_id":"63926b38a2b7121008ff7de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9894458ddcdad53c0d1f2d1b40f7d799abd57f66265c37f8369d70fb21b143e7"},"ros-humble-python-cmake-module-0.10.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684168669,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"96323bf7472ca5e4e1cd9e53706fa6a3","name":"ros-humble-python-cmake-module","requires":[],"size":12605,"version":"0.10.0","binstar":{"package_id":"63926b38a2b7121008ff7de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"89cb3d214416eb15d2924bb76f570c7961da89a8e3a4720bd5f03b5c339aa9d5"},"ros-humble-performance-test-fixture-0.0.9-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-google-benchmark","ros-humble-google-benchmark-vendor","ros-humble-osrf-testing-tools-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539992612,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a0a3a76417259f0b1857d4aba561e272","name":"ros-humble-performance-test-fixture","requires":[],"size":23325,"version":"0.0.9","binstar":{"package_id":"63926b3946f81babcaf213ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33db5ff0a54ebc06a308ea9b8efa6fdc8bf0c4c30389bb5a8ef2503f45461a7e"},"ros-humble-performance-test-fixture-0.0.9-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-google-benchmark","ros-humble-google-benchmark-vendor","ros-humble-osrf-testing-tools-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684196806,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"49b2e721cb35aee12726ac8589a271bf","name":"ros-humble-performance-test-fixture","requires":[],"size":24626,"version":"0.0.9","binstar":{"package_id":"63926b3946f81babcaf213ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"827bf714bd14132a8d6f578eff2ab6c621a66e7e0a27a96e8220103146229c54"},"ros-humble-rosidl-adapter-3.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["empy","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540085178,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"31cd3a243227fe0a4e81b4b0f2f1d4bf","name":"ros-humble-rosidl-adapter","requires":[],"size":36191,"version":"3.1.4","binstar":{"package_id":"63926b3b6a03c9fad255e25c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"778ff1d4209d6e6b433e5038a31dff694bcdcce19a39ef28bd8cb14b47f49be4"},"ros-humble-rosidl-adapter-3.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["empy","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684286042,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0a238c28897030e51f242be97fc66512","name":"ros-humble-rosidl-adapter","requires":[],"size":58193,"version":"3.1.4","binstar":{"package_id":"63926b3b6a03c9fad255e25c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c0b4a2dee2a7ed54e00598643d4cb2be0c42d87b9ad435cad1dce8798cb01cd"},"ros-humble-mimick-vendor-0.2.8-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540028318,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0f47df814a0bc8f09a34acc4ace6f2e9","name":"ros-humble-mimick-vendor","requires":[],"size":39206,"version":"0.2.8","binstar":{"package_id":"63926b3ce6a2f79ab82bfcd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ffe8c29b87b650b05bf48f943b4801317d54535eebbce47826143266ae3a8528"},"ros-humble-mimick-vendor-0.2.8-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684228900,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2802e3a2f705ef3a0fa19bc3be7038ac","name":"ros-humble-mimick-vendor","requires":[],"size":40566,"version":"0.2.8","binstar":{"package_id":"63926b3ce6a2f79ab82bfcd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"728a6d7ae6a4d8a45b729ffda15ee817a25538d5c6253976c91b6a9cef4e5e90"},"ros-humble-ament-cmake-ros-0.10.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-cmake-gmock","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-pytest","ros-humble-domain-coordinator","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540057916,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3c15fbb1534df8eadd6009cbce449707","name":"ros-humble-ament-cmake-ros","requires":[],"size":12648,"version":"0.10.0","binstar":{"package_id":"63926b4146f81babcaf2148b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7e054281918fd0f6fd7981c3492407d44e918ffda06dd1d6fc1eccc21207133d"},"ros-humble-ament-cmake-ros-0.10.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-cmake-gmock","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-pytest","ros-humble-domain-coordinator","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684258399,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0b33d0c62d77dba1680868a751e208b9","name":"ros-humble-ament-cmake-ros","requires":[],"size":14403,"version":"0.10.0","binstar":{"package_id":"63926b4146f81babcaf2148b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6eae4ea4c09012818ee140c9b77af8d4b087d5dfa6c2a89a1e8fea726df4e8b0"},"ros-humble-spdlog-vendor-1.3.0-py310h26790da_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","spdlog >=1.11.0,<1.12.0a0"],"build":"py310h26790da_2","timestamp":1670539984015,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3ca811e957cf0d3757553205b58a73b3","name":"ros-humble-spdlog-vendor","requires":[],"size":9204,"version":"1.3.0","binstar":{"package_id":"63926b4c46bec18b89e28cfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d2bcf4f8ec73da49e917988e8efe8b254bc01ab4ac78959b214abb697ba2d8a3"},"ros-humble-spdlog-vendor-1.3.1-py310hdeecfd3_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","spdlog >=1.11.0,<1.12.0a0"],"build":"py310hdeecfd3_3","timestamp":1675684192040,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"955c5374e56758ea4c4ae15ed500f313","name":"ros-humble-spdlog-vendor","requires":[],"size":10438,"version":"1.3.1","binstar":{"package_id":"63926b4c46bec18b89e28cfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"05c5331f7533c09d20b99de401853232532510722c02afe2955abc0f98b8573c"},"ros-humble-python-qt-binding-1.1.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pyqt >=5.15.7,<5.16.0a0","pyqt-builder","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670883986185,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d82ec9998779c5bade98fef78dad1606","name":"ros-humble-python-qt-binding","requires":[],"size":33983,"version":"1.1.1","binstar":{"package_id":"63926b4e46f81babcaf21653","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3273291d20151f4cf34734dc7786783eca2d82cb680bcf01dc4a1cb5fd26bd9d"},"ros-humble-python-qt-binding-1.1.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pyqt >=5.15.7,<5.16.0a0","pyqt-builder","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684310770,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d9fec1e86ef33a73fa46f2f9bee1f1a5","name":"ros-humble-python-qt-binding","requires":[],"size":34217,"version":"1.1.1","binstar":{"package_id":"63926b4e46f81babcaf21653","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"600bf3f9b4f7542cc7527ebc93420fbb60475c8c354671e56fc1780ae2589b99"},"ros-humble-smclib-3.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540038688,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ac37e8558e460c115ba1dc5113037ca7","name":"ros-humble-smclib","requires":[],"size":19013,"version":"3.0.2","binstar":{"package_id":"63926b4f2dd70620556023d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8e168c3a8fbcd3c90cfb387f25bb21ac74fc7e08d68421fae9b029edd23358ef"},"ros-humble-smclib-3.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684245461,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4bc3a2b329e861f54029eebe4af3abbe","name":"ros-humble-smclib","requires":[],"size":22322,"version":"3.0.2","binstar":{"package_id":"63926b4f2dd70620556023d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f301a97cfee7b46a4904d30df166d4bf427ebe600852696cc5967a73afb9d91"},"ros-humble-orocos-kdl-vendor-0.2.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.10.*","ros-humble-eigen3-cmake-module","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540015578,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"20bc3625bc916cdd4741a1f2c570fa6f","name":"ros-humble-orocos-kdl-vendor","requires":[],"size":9989,"version":"0.2.4","binstar":{"package_id":"63926b51d9a997aae71abcc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"18f109629820ed415afee88741733babe6847d0bd7a9e0e820f72ddff57a5ddc"},"ros-humble-orocos-kdl-vendor-0.2.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684221738,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3d1d77311f0ed7e7eeaf51ba585d6f53","name":"ros-humble-orocos-kdl-vendor","requires":[],"size":11229,"version":"0.2.5","binstar":{"package_id":"63926b51d9a997aae71abcc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c47d93b79abe774df41fc51e06322b057dc35185c3abb0cee25d71e7ed5bf47"},"ros-humble-ament-index-cpp-1.4.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539962091,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7a9eaa36aa5e4dd861bde3b99e878540","name":"ros-humble-ament-index-cpp","requires":[],"size":29222,"version":"1.4.0","binstar":{"package_id":"63926b53d9a997aae71abccc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ae6a5c2a24611476b7b8c01d11a95a99f2c4c8dcac9d26ed970135ad8bfacc58"},"ros-humble-ament-index-cpp-1.4.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684167215,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"02965b050c80b7a64efc827fd73f82de","name":"ros-humble-ament-index-cpp","requires":[],"size":30470,"version":"1.4.0","binstar":{"package_id":"63926b53d9a997aae71abccc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46b626ca94d1ea337f70dbdf7ff15c133c27525f93d7e7145309da19f389a184"},"ros-humble-fastrtps-cmake-module-2.2.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539940538,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3c98b4cbd35097dd70e6d2d9fcbe1d7f","name":"ros-humble-fastrtps-cmake-module","requires":[],"size":10327,"version":"2.2.0","binstar":{"package_id":"63926c26ead2dcc8c2dc501d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"72c7e408e3ac1ff6c7e6567c3b2fa2ca529bd97185a92b46b33a126ce623a700"},"ros-humble-fastrtps-cmake-module-2.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684219118,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e21272fa86d17877563f8cbc0835b599","name":"ros-humble-fastrtps-cmake-module","requires":[],"size":11534,"version":"2.2.0","binstar":{"package_id":"63926c26ead2dcc8c2dc501d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"00632d4685bf7f59ca3250f10dbfabed8c827ceafb2c683f3dbd2719cd1d48ab"},"ros-humble-rti-connext-dds-cmake-module-0.11.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540308685,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"731c29e10def3a45619918277ccea602","name":"ros-humble-rti-connext-dds-cmake-module","requires":[],"size":14370,"version":"0.11.1","binstar":{"package_id":"63926c27e6a2f79ab82c3604","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e99491d2ec6a1c178e63bc350703d2c5b57df19be91cc66bcf6b02fb17b66657"},"ros-humble-rti-connext-dds-cmake-module-0.11.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684733178,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e02a436c82fb82498121d6837fa8d6b9","name":"ros-humble-rti-connext-dds-cmake-module","requires":[],"size":15687,"version":"0.11.1","binstar":{"package_id":"63926c27e6a2f79ab82c3604","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"277c156929c8ba1bac9d6755bf6927792f1343b113c46449be11b988c8f9bf30"},"ros-humble-rmw-implementation-cmake-6.1.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540325083,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"db54ae489316e38bc11aae4634da4123","name":"ros-humble-rmw-implementation-cmake","requires":[],"size":12233,"version":"6.1.1","binstar":{"package_id":"63926c282b3749bdb85e6a25","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a92f0538262b8bb37094847e9db5bc17ac6c79bac4c49c1ea10d2d59d8defe8"},"ros-humble-rmw-implementation-cmake-6.1.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684761976,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"25e48016b051e782710a37ea3bf84428","name":"ros-humble-rmw-implementation-cmake","requires":[],"size":13559,"version":"6.1.1","binstar":{"package_id":"63926c282b3749bdb85e6a25","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62ec81d3561dcfce4d2aa7d4b659973717a45182aa14e7894f556c3845aebb02"},"ros-humble-fastrtps-2.6.3-py310h87fa128_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","openssl >=1.1.1s,<1.1.2a","python","python_abi 3.10.*","ros-humble-fastcdr","ros-humble-foonathan-memory-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","tinyxml2 >=9.0.0,<10.0a0"],"build":"py310h87fa128_2","timestamp":1670540289058,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a60ebd0556b3a6d73ddca0ea0125eba6","name":"ros-humble-fastrtps","requires":[],"size":3636169,"version":"2.6.3","binstar":{"package_id":"63926c291f9cf5f92ad642d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ed476dd52375acb59bf48492c019ff1e329ad68bb9eb19fcc1f46ae46c78a6f"},"ros-humble-fastrtps-2.6.4-py310h061b161_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.10.* *_cp310","ros-humble-fastcdr","ros-humble-foonathan-memory-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tinyxml2 >=9.0.0,<10.0a0"],"build":"py310h061b161_3","timestamp":1675859139104,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"498fb94a54dc8ca1692c400a306b7a97","name":"ros-humble-fastrtps","requires":[],"size":3649178,"version":"2.6.4","binstar":{"package_id":"63926c291f9cf5f92ad642d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34189cdba9c37a8f7e58d13777f84e48a3a5db40da56e95b62cae4cbae70b3d1"},"ros-humble-rosidl-typesupport-interface-3.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670539924531,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"98636f12779212254142e61932992be7","name":"ros-humble-rosidl-typesupport-interface","requires":[],"size":11584,"version":"3.1.4","binstar":{"package_id":"63926c2a2b3749bdb85e6a4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad229b3fbb06d0dd9de5edd10b9bdada9be533fb5e0adb96564d92bfc139189e"},"ros-humble-rosidl-typesupport-interface-3.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684190872,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"81584b499ecfb40394b5c7818375023c","name":"ros-humble-rosidl-typesupport-interface","requires":[],"size":12880,"version":"3.1.4","binstar":{"package_id":"63926c2a2b3749bdb85e6a4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ceba0b531125d75ed391807a5f72385216919bcad1347a363294d48ef3e324f6"},"ros-humble-apex-containers-0.0.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-foonathan-memory-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540499507,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5959b48958b06e2d25c2f2ad8a252675","name":"ros-humble-apex-containers","requires":[],"size":39089,"version":"0.0.4","binstar":{"package_id":"63926cd56d07f25db97d9da9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4254c2212545e3d955612ade2c51b7dffc442aad5e7871984775a3229d85fb93"},"ros-humble-apex-containers-0.0.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-foonathan-memory-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684934337,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"554d5a84494f312788def1239a3f5f08","name":"ros-humble-apex-containers","requires":[],"size":40352,"version":"0.0.4","binstar":{"package_id":"63926cd56d07f25db97d9da9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ec6584158661bf78a2f2b09fbf5ef43ad53afa0295c7d16bf9a2b12dba6353b"},"ros-humble-launch-testing-ament-cmake-1.0.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-test","ros-humble-launch-testing","ros-humble-python-cmake-module","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540488973,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4d49445aee79c03a36af520c4b6b94aa","name":"ros-humble-launch-testing-ament-cmake","requires":[],"size":11729,"version":"1.0.3","binstar":{"package_id":"63926d2266b3e4e3debdbca3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf40195e0dfc380a617dfa5a6c2363ae86dcda4beddf9e9eee28520a59b9656c"},"ros-humble-launch-testing-ament-cmake-1.0.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-test","ros-humble-launch-testing","ros-humble-python-cmake-module","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684940829,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c5669046221abd1c6067862c80a99c2a","name":"ros-humble-launch-testing-ament-cmake","requires":[],"size":12971,"version":"1.0.4","binstar":{"package_id":"63926d2266b3e4e3debdbca3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04c2e46c19372623f002ee773f6c1f210f42499ffb5526882521e01906e84441"},"ros-humble-rosidl-parser-3.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["lark-parser","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-adapter","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540517826,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ac2055736851c92574049dcf1be8adfe","name":"ros-humble-rosidl-parser","requires":[],"size":34732,"version":"3.1.4","binstar":{"package_id":"63926d2266b3e4e3debdbccb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"08f0607220fa5be68c1e67fb67c4c8547594eb75bf6115a6b3922a8f3fcaa268"},"ros-humble-rosidl-parser-3.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["lark-parser","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-adapter","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684982089,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"57ba506cd7d339bd135384aecf06687e","name":"ros-humble-rosidl-parser","requires":[],"size":54091,"version":"3.1.4","binstar":{"package_id":"63926d2266b3e4e3debdbccb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0e2008a3625cb9a5a231e33e66f974639add2b2b07fb4daef0dedfe4ca0e2f4f"},"ros-humble-urdf-parser-plugin-2.6.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-urdfdom-headers","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540576269,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"20ec290f8b321861c80f43ccfb81010b","name":"ros-humble-urdf-parser-plugin","requires":[],"size":12862,"version":"2.6.0","binstar":{"package_id":"63926d234f66fd116f4b3c38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"44f222a0e147763c6a4e3e99121b0b84908ab625b6657030c1bf7121aced1ed4"},"ros-humble-urdf-parser-plugin-2.6.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-urdfdom-headers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685074864,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1bd3c6b46ba10424821459f26ee1ac72","name":"ros-humble-urdf-parser-plugin","requires":[],"size":14257,"version":"2.6.0","binstar":{"package_id":"63926d234f66fd116f4b3c38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"49497f00d199db03b307ef17805327e1378b5a8b5539a16719244b41fa5f74e9"},"ros-humble-console-bridge-vendor-1.4.0-py310h7727717_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7727717_2","timestamp":1670540558509,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"748a9c3a02bddcdb437bf7352d9c79d1","name":"ros-humble-console-bridge-vendor","requires":[],"size":9339,"version":"1.4.0","binstar":{"package_id":"63926d24d9a997aae71b93ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7b9a154672b7f75f9036927f4d534596443bad900cf73f8100cff3bbeacf1ba"},"ros-humble-console-bridge-vendor-1.4.1-py310h53aaf3d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h53aaf3d_3","timestamp":1675685045311,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"518d77db22a76a352f7b041e41ea8203","name":"ros-humble-console-bridge-vendor","requires":[],"size":10577,"version":"1.4.1","binstar":{"package_id":"63926d24d9a997aae71b93ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ab46c0b93b59906bf4a825b502843caeae9775a06fb9ad7726fa17d542ca139b"},"ros-humble-tracetools-4.1.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540539777,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e88ffe57b63c978685d5fcf1c62c1cdc","name":"ros-humble-tracetools","requires":[],"size":22508,"version":"4.1.1","binstar":{"package_id":"63926d252b3749bdb85eb0cf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"183e69ee01f75a2826f78b4aae5a2cdb64f5dae017bcf5bec9bab88f107e7ca0"},"ros-humble-tracetools-4.1.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685015955,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a225fca40ef7551485492267db87eede","name":"ros-humble-tracetools","requires":[],"size":23995,"version":"4.1.1","binstar":{"package_id":"63926d252b3749bdb85eb0cf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0de9145fb69b7c62f6331f04c7a848d34a1fbf5ec7d65eebdd57bbafa5314e4d"},"ros-humble-qt-gui-py-common-2.2.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540596010,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7a5c7b1451764ce598ad7b99c641243c","name":"ros-humble-qt-gui-py-common","requires":[],"size":20202,"version":"2.2.2","binstar":{"package_id":"63926d5866b3e4e3debdc6d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e4eb463edbc2187b42800058a14e8ae278f4513b67c21a157ed308fce712049"},"ros-humble-qt-gui-py-common-2.2.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685060681,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1d72980db6562b19107fb78ddc135611","name":"ros-humble-qt-gui-py-common","requires":[],"size":29278,"version":"2.2.2","binstar":{"package_id":"63926d5866b3e4e3debdc6d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04db4f6a991dbb86a26cdf49ed93b38fa893e894f630b6372934b7239caa8296"},"ros-humble-tracetools-image-pipeline-3.0.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540578771,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"98edd531014dba0dbedc842d6ffe70d6","name":"ros-humble-tracetools-image-pipeline","requires":[],"size":18684,"version":"3.0.0","binstar":{"package_id":"63926d5966b3e4e3debdc702","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"00ffe5f691c93af7a4bffaff4ed0a627168557677fb3431e05597b96a893585c"},"ros-humble-tracetools-image-pipeline-3.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685036273,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fabe6e4b0067a92be664d7188bdd0ec0","name":"ros-humble-tracetools-image-pipeline","requires":[],"size":20147,"version":"3.0.0","binstar":{"package_id":"63926d5966b3e4e3debdc702","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"83827e7f2fb46e3d477c6cbdb28a00cdbbd6e88e1336a0819a6e37ba92a5a6a5"},"ros-humble-qt-gui-2.2.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pyqt >=5.15.7,<5.16.0a0","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros-humble-tango-icons-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540558259,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7d58cf71dc7c604d2c6aebb09cf43d8f","name":"ros-humble-qt-gui","requires":[],"size":104989,"version":"2.2.2","binstar":{"package_id":"63926d5a46bec18b89e2fe79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58ae86f9c343306976bb88c5bb7a777bf3120e31632faa20b28c103734882e54"},"ros-humble-qt-gui-2.2.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pyqt >=5.15.7,<5.16.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros-humble-tango-icons-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685007703,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8613de98511c6f1684b1ad9c96e841cc","name":"ros-humble-qt-gui","requires":[],"size":177763,"version":"2.2.2","binstar":{"package_id":"63926d5a46bec18b89e2fe79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d53d042c682d739432e653c5bea4eb463b62e6f9407bb09e26d4b835baa94050"},"ros-humble-resource-retriever-3.1.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-ament-index-python","ros-humble-libcurl-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540506983,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"15ad364acf52465ea6f486c1587c24fb","name":"ros-humble-resource-retriever","requires":[],"size":25722,"version":"3.1.0","binstar":{"package_id":"63926d5a66b3e4e3debdc723","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6aacb07734f905e90ed2e8f22f7aaed796b18ff407e163da3e5473cd497191c4"},"ros-humble-resource-retriever-3.1.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-ament-index-python","ros-humble-libcurl-vendor","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675684937711,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c02f13aca58b7a63648236fd70767e89","name":"ros-humble-resource-retriever","requires":[],"size":28248,"version":"3.1.1","binstar":{"package_id":"63926d5a66b3e4e3debdc723","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1478ceeedfcd93a59c5a10581fc8912c06ce2ae3544d807c5f33827b002b2fe3"},"ros-humble-qt-dotgraph-2.2.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pydot","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540630163,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e5c85b86668848d2653b6c9c24e5cee9","name":"ros-humble-qt-dotgraph","requires":[],"size":29205,"version":"2.2.2","binstar":{"package_id":"63926d5b6a03c9fad2569884","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e1ccc01470cfcf91f7e997349055819192260f60ec0841012077dc75f7621fad"},"ros-humble-qt-dotgraph-2.2.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pydot","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685099421,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fd487f7081eb4e5b8a5275071e2d05e7","name":"ros-humble-qt-dotgraph","requires":[],"size":47797,"version":"2.2.2","binstar":{"package_id":"63926d5b6a03c9fad2569884","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d6f2403b9a5e776b309eb33e3ac03fb2abf59996ced54d08aa28a9b890737739"},"ros-humble-urdfdom-3.0.2-py310h7727717_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-console-bridge-vendor","ros-humble-ros-workspace","ros-humble-tinyxml-vendor","ros-humble-urdfdom-headers","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","tinyxml"],"build":"py310h7727717_2","timestamp":1670540880005,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2650253426d13f9fd8d4a7c196bebed9","name":"ros-humble-urdfdom","requires":[],"size":140404,"version":"3.0.2","binstar":{"package_id":"63926ecfead2dcc8c2dd054d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c19219b06bafe9dfffeb572496e1d7db141c5affcddaffe93b2136649e438c6"},"ros-humble-urdfdom-3.0.2-py310h53aaf3d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-console-bridge-vendor","ros-humble-ros-workspace","ros-humble-tinyxml-vendor","ros-humble-urdfdom-headers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tinyxml"],"build":"py310h53aaf3d_3","timestamp":1675685340380,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c478eeee54cab2e3b192a4a2fbb69a92","name":"ros-humble-urdfdom","requires":[],"size":141573,"version":"3.0.2","binstar":{"package_id":"63926ecfead2dcc8c2dd054d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1056e6de12361b996dca97989707c6edb617bc3a34eb673be5c55cdd4bbbbdaa"},"ros-humble-rcutils-5.1.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540814252,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3b4db44f26f229142e03ce0530944104","name":"ros-humble-rcutils","requires":[],"size":92634,"version":"5.1.2","binstar":{"package_id":"63926ed06a03c9fad2575014","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"992f45dd5716e898fac52db103ccd448b1e4573e105213b9cdbcaab8a67a999a"},"ros-humble-rcutils-5.1.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685263434,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8aac0a4e85129336b4fe1bd08707bd0e","name":"ros-humble-rcutils","requires":[],"size":96897,"version":"5.1.2","binstar":{"package_id":"63926ed06a03c9fad2575014","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2cea54f0ad836f2ed189df8c2d88ba540e2741de6a63f171a616645241ee5418"},"ros-humble-rviz-rendering-11.2.4-py310h7f89e15_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","glew >=2.1.0,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-eigen3-cmake-module","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-assimp-vendor","ros-humble-rviz-ogre-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h7f89e15_2","timestamp":1670541002977,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"879f358a6e86418308016228f8df1023","name":"ros-humble-rviz-rendering","requires":[],"size":959177,"version":"11.2.4","binstar":{"package_id":"63926ed213f4c7e7c54d7ecb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e5372b35977594fc3add8c7942f9df849d4a37d4a854a8ad529a6508606d004"},"ros-humble-rviz-rendering-11.2.5-py310h6f98279_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","glew >=2.1.0,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-eigen3-cmake-module","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-assimp-vendor","ros-humble-rviz-ogre-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h6f98279_3","timestamp":1675685465944,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d3a85eb5992a47d6307ae2ec61a6a528","name":"ros-humble-rviz-rendering","requires":[],"size":957749,"version":"11.2.5","binstar":{"package_id":"63926ed213f4c7e7c54d7ecb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6f5f75e22eb97e72fe09cc874640644ee07973e6adbd0e0f4f660b41225803b0"},"ros-humble-rosidl-cmake-3.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["empy","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros-humble-rosidl-adapter","ros-humble-rosidl-parser","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670540834361,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cbf50d87bb0cf6d38a6a20345fa8a3d9","name":"ros-humble-rosidl-cmake","requires":[],"size":21725,"version":"3.1.4","binstar":{"package_id":"63926ed39e77a4aa6b6af836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eaa0a28efcc923297561a9841db234fea1bc119de75822a48afddec34547605c"},"ros-humble-rosidl-cmake-3.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["empy","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros-humble-rosidl-adapter","ros-humble-rosidl-parser","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685290009,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dabcbe239f5278516ebdaf2ba81e9b20","name":"ros-humble-rosidl-cmake","requires":[],"size":27209,"version":"3.1.4","binstar":{"package_id":"63926ed39e77a4aa6b6af836","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8606112bc9a63af074de9bfadfeae8afb3fd642351f2dec6a7f50113cd6f4af9"},"ros-humble-rosidl-runtime-c-3.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670541213224,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"80002de40fe5ba3adc35d86cca0cbe04","name":"ros-humble-rosidl-runtime-c","requires":[],"size":30663,"version":"3.1.4","binstar":{"package_id":"6392700f6a03c9fad257bde8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3b01ca814efbffcac1b898d210f43b10f8bd6c7ce7b046096a2174580a6bae8"},"ros-humble-rosidl-runtime-c-3.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685630769,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"14e732b402b57fc116f9a7b0aa61b12c","name":"ros-humble-rosidl-runtime-c","requires":[],"size":32221,"version":"3.1.4","binstar":{"package_id":"6392700f6a03c9fad257bde8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a5dbc9b34700afd43d14b693bd103139d72332788714fc7a66a0884a8ec4ac6a"},"ros-humble-rcpputils-2.4.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670541238651,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"530c2a964da35b9a03ca708d34c7e044","name":"ros-humble-rcpputils","requires":[],"size":51391,"version":"2.4.0","binstar":{"package_id":"6392701096cc569e105e4c39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f61fa5d75371c999cdf6ff21743327bebe034bfdeeb56f520a4fbb09e35841b5"},"ros-humble-rcpputils-2.4.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685657558,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2293eb482d0f12f642d0ff040adf6599","name":"ros-humble-rcpputils","requires":[],"size":52849,"version":"2.4.0","binstar":{"package_id":"6392701096cc569e105e4c39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e154ebdc15672bf047f80258d6f0b79afb99e4828818e1c8632f3e067c3cfbb"},"ros-humble-rviz-rendering-tests-11.2.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-rendering","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670541323474,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"75b920e3b3bdfc848501a1fc107e37c7","name":"ros-humble-rviz-rendering-tests","requires":[],"size":9479,"version":"11.2.4","binstar":{"package_id":"63927012ed6d66bf8f955b1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ffcd45f67b9c25635150eaf29ca96ef15a4ed53e741f4a84f1dce21950703668"},"ros-humble-rviz-rendering-tests-11.2.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-rendering","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685737045,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c93e4707494ffdf7f15189ca6b5e9bcc","name":"ros-humble-rviz-rendering-tests","requires":[],"size":12214,"version":"11.2.5","binstar":{"package_id":"63927012ed6d66bf8f955b1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8549e49b7b832510f2d566e4b37be6d5763aab2137499c6df3e71742a1e93379"},"ros-humble-class-loader-2.2.0-py310h7727717_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-console-bridge-vendor","ros-humble-rcpputils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7727717_2","timestamp":1670541525977,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9295c30d2591c2c61c5e0ecd1c386be3","name":"ros-humble-class-loader","requires":[],"size":57042,"version":"2.2.0","binstar":{"package_id":"639270d813f4c7e7c54da50d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a16f017f0ada78259619d040a51c4f0b7203274b7a03aa125d64f1deefd976fd"},"ros-humble-class-loader-2.2.0-py310h53aaf3d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-console-bridge-vendor","ros-humble-rcpputils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h53aaf3d_3","timestamp":1675685927950,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c883f8f9d0e011d54d3093f20a97808e","name":"ros-humble-class-loader","requires":[],"size":58493,"version":"2.2.0","binstar":{"package_id":"639270d813f4c7e7c54da50d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ecfe7362431f618392688d5b9b5f4ed44246cccfb162eaacfdef38094313cef5"},"ros-humble-rcl-logging-interface-2.3.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670541503535,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7c1c4a98961836a778800752f7b3a960","name":"ros-humble-rcl-logging-interface","requires":[],"size":16832,"version":"2.3.1","binstar":{"package_id":"639270d946f81babcaf4beda","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"940fb30e40cc41a3a10ac3961a77edc62d05d14364020ecfdf44f1ab74e05f2c"},"ros-humble-rcl-logging-interface-2.3.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685897787,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d3c0d6d2f66712695600fc8c348a716a","name":"ros-humble-rcl-logging-interface","requires":[],"size":18209,"version":"2.3.1","binstar":{"package_id":"639270d946f81babcaf4beda","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ef0151e6725178c39507a93dd21cf1e0191535095a04ad1c4c0863d9389dc178"},"ros-humble-libyaml-vendor-1.2.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h413e681_2","timestamp":1670541645397,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a8669ad2215696dd0ba84ecc67c9ec12","name":"ros-humble-libyaml-vendor","requires":[],"size":22546,"version":"1.2.2","binstar":{"package_id":"639271504f66fd116f4f85ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0fff80fdc47d5910edd834b7d0c986b3e54d56cec91c135949df74487b507809"},"ros-humble-libyaml-vendor-1.2.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h7c61026_3","timestamp":1675685999400,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7beedc998e1cee6713d3ce899d932d66","name":"ros-humble-libyaml-vendor","requires":[],"size":13464,"version":"1.2.2","binstar":{"package_id":"639271504f66fd116f4f85ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"67c3b37ffc2e1920076f3d0e9d58020860c24e11afc2da435482e9ca023072ab"},"ros-humble-rmw-6.1.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670541587513,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2ddc0f45bd70b7495d1b2539ad598fe6","name":"ros-humble-rmw","requires":[],"size":70396,"version":"6.1.1","binstar":{"package_id":"639271512dd706205561d5ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3772e9ca3fd6f411505f9158b56f2e1867fd96415f995f2212a158987f24d3f1"},"ros-humble-rmw-6.1.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685943350,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9d333b172f61d674db4d4577bb123fde","name":"ros-humble-rmw","requires":[],"size":72051,"version":"6.1.1","binstar":{"package_id":"639271512dd706205561d5ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2976e2b016d39225c86299400a618ed5a82a0588bb472690adadaef016ce441"},"ros-humble-rosidl-runtime-cpp-3.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670541530041,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bad19dacf01fd7ae0eb382086e20311e","name":"ros-humble-rosidl-runtime-cpp","requires":[],"size":18524,"version":"3.1.4","binstar":{"package_id":"63927153ed6d66bf8f95a0ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e5a0bc2efb9688c5f10eb259f9e4949729068523db1a136577b05608f60f093e"},"ros-humble-rosidl-runtime-cpp-3.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685886198,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"85900aad8d991f557536c24ec694e37a","name":"ros-humble-rosidl-runtime-cpp","requires":[],"size":19976,"version":"3.1.4","binstar":{"package_id":"63927153ed6d66bf8f95a0ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8a8964af84fb35e6b1622f0229099d85736eda1d2db34a1a97175bf97db2b72"},"ros-humble-rosidl-typesupport-introspection-c-3.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670541612423,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"16255b06cf7d6b992692a25f4b53e146","name":"ros-humble-rosidl-typesupport-introspection-c","requires":[],"size":27038,"version":"3.1.4","binstar":{"package_id":"63927154ead2dcc8c2dd97bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"773b3cd4431878030ee8e1550823ec316ca56f8bf5d3f2f87016614e2ba11626"},"ros-humble-rosidl-typesupport-introspection-c-3.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685969254,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a6f1723819f9a924deb4b88f3e42913d","name":"ros-humble-rosidl-typesupport-introspection-c","requires":[],"size":30085,"version":"3.1.4","binstar":{"package_id":"63927154ead2dcc8c2dd97bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"988ef3db37a5e2e932aae2e599fa23b53cb087317a3f966d9a8d854bd1333cd7"},"ros-humble-rosidl-generator-c-3.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670541561843,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"244b9432972cb4fb45e07094f74cd205","name":"ros-humble-rosidl-generator-c","requires":[],"size":26852,"version":"3.1.4","binstar":{"package_id":"63927155a2b7121008029648","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3fb0f62f604d89aca9dd1fc84e8f681bea03d4bd1e99e2ddf6223a450dc4e252"},"ros-humble-rosidl-generator-c-3.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675685917717,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4ccc6a4a871af52c93f241a2aaff3f3b","name":"ros-humble-rosidl-generator-c","requires":[],"size":32495,"version":"3.1.4","binstar":{"package_id":"63927155a2b7121008029648","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7102085fbeb9024b7b02c6b25d7584dd205e9b1b7cd4e58fc262c699abfc561d"},"ros-humble-rcl-logging-spdlog-2.3.1-py310h26790da_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcl-logging-interface","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-spdlog-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","spdlog >=1.11.0,<1.12.0a0"],"build":"py310h26790da_2","timestamp":1670541946752,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"94d7a5c54d125d21533e3fa2827ad0d1","name":"ros-humble-rcl-logging-spdlog","requires":[],"size":24233,"version":"2.3.1","binstar":{"package_id":"63927293e6a2f79ab82e0736","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c614444b7c789696ceaf0085d9bb4c41179d34d0cbacdc981bc951da81fb707a"},"ros-humble-rcl-logging-spdlog-2.3.1-py310hdeecfd3_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl-logging-interface","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-spdlog-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","spdlog >=1.11.0,<1.12.0a0"],"build":"py310hdeecfd3_3","timestamp":1675686251942,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"408b8d8d36c2ae037ffd8ecd1bea4ff0","name":"ros-humble-rcl-logging-spdlog","requires":[],"size":25732,"version":"2.3.1","binstar":{"package_id":"63927293e6a2f79ab82e0736","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"291e80178af6b9a8a288c99226e0492daa106d8babf23c84e810ca664cd847cb"},"ros-humble-rosidl-generator-cpp-3.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670541861537,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"26ec96cd224d5370b3b53ffb8e35b918","name":"ros-humble-rosidl-generator-cpp","requires":[],"size":28846,"version":"3.1.4","binstar":{"package_id":"639272946a03c9fad25886b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ce9d1c3622070de31810647438fa630d2ad21e9be7f88601774dd1f63577a8a"},"ros-humble-rosidl-generator-cpp-3.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675686162426,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"89b6cd74efc67d313b1a3d9f399e9617","name":"ros-humble-rosidl-generator-cpp","requires":[],"size":35761,"version":"3.1.4","binstar":{"package_id":"639272946a03c9fad25886b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a7e1bb4f2bd3b3a5df5929886cda0db89263f9cc7180baea7fd4588d1755e1a0"},"ros-humble-pluginlib-5.1.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-class-loader","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670541968427,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d8790f1d393627d9dede82fdc88b80be","name":"ros-humble-pluginlib","requires":[],"size":27057,"version":"5.1.0","binstar":{"package_id":"63927296a2b712100802eab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b83cbfe77d8419ace11a9ce2795ee2c4a90e1ead307df2d3698db8b64ce939f"},"ros-humble-pluginlib-5.1.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-class-loader","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675686277062,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"81eb5b3a2f1db56928b8b95a8a068140","name":"ros-humble-pluginlib","requires":[],"size":28234,"version":"5.1.0","binstar":{"package_id":"63927296a2b712100802eab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"542161e111a69cb9253882ff07c06cef7e178a6f4676a0becabd8073962db422"},"ros-humble-rcl-yaml-param-parser-5.3.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-libyaml-vendor","ros-humble-rmw","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h413e681_2","timestamp":1670541918725,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"09f751f5ad2197535d6cb8778e7b345f","name":"ros-humble-rcl-yaml-param-parser","requires":[],"size":32735,"version":"5.3.2","binstar":{"package_id":"639272974f66fd116f4fd2e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5080ec7b9c4e4faa311354a3bded4e82294963992ff54315c0dd6b941d7ed26b"},"ros-humble-rcl-yaml-param-parser-5.3.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-libyaml-vendor","ros-humble-rmw","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h7c61026_3","timestamp":1675686222986,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"048b10dc27d0560cc76081022ddbd2b5","name":"ros-humble-rcl-yaml-param-parser","requires":[],"size":34319,"version":"5.3.2","binstar":{"package_id":"639272974f66fd116f4fd2e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ac986b52bb0096a662e8fea65eacad2d493cba0436608dde80cdbc8f37f29ed"},"ros-humble-rosidl-typesupport-introspection-cpp-3.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670541890294,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"281394e2e9b447c3f6d2ae480e0b2d61","name":"ros-humble-rosidl-typesupport-introspection-cpp","requires":[],"size":27201,"version":"3.1.4","binstar":{"package_id":"63927299e6a2f79ab82e0831","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8cec4c9bfe16550c94bf10f165a88181519221407759d98236665c67ca9f74b6"},"ros-humble-rosidl-typesupport-introspection-cpp-3.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675686191913,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"edaef7675fb11a1594671fbb142c5993","name":"ros-humble-rosidl-typesupport-introspection-cpp","requires":[],"size":30107,"version":"3.1.4","binstar":{"package_id":"63927299e6a2f79ab82e0831","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c18dc4fca38611b810ab79e97b9ba4beb9dcbd4a0a9ed423b86a6d3afb804566"},"ros-humble-urdf-2.6.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf-parser-plugin","ros-humble-urdfdom","ros-humble-urdfdom-headers","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670542180490,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"beac6ff2618753110820f33b1fd6b196","name":"ros-humble-urdf","requires":[],"size":128452,"version":"2.6.0","binstar":{"package_id":"639274122dd7062055627893","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d76d95ab5adff77a8dccbebd2e2d1da1926ad0d46045bcead0f0f6080cb915c"},"ros-humble-urdf-2.6.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf-parser-plugin","ros-humble-urdfdom","ros-humble-urdfdom-headers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675686476533,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"11c7531b3e102d21f9c1be46659e8d5b","name":"ros-humble-urdf","requires":[],"size":130066,"version":"2.6.0","binstar":{"package_id":"639274122dd7062055627893","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be8475c5aec11c67fdcfeabb8d86a2c5028bcb6a7c20739cbe1a48516c8324f7"},"ros-humble-rosidl-typesupport-fastrtps-cpp-2.2.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-ros","ros-humble-ament-index-python","ros-humble-fastcdr","ros-humble-fastrtps-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-cpp","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670542150551,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"47fe33b78402d8d5d4e478a81c5bd7d9","name":"ros-humble-rosidl-typesupport-fastrtps-cpp","requires":[],"size":30381,"version":"2.2.0","binstar":{"package_id":"6392741354e9ace854c69ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f51e1233a8bb6bdaf094d3e92283aa73b9fbf9df39d9899ea779d54f9b692d9"},"ros-humble-rosidl-typesupport-fastrtps-cpp-2.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-ros","ros-humble-ament-index-python","ros-humble-fastcdr","ros-humble-fastrtps-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-cpp","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675686438947,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"72f7d36b88492488721d8bf0c55f2afb","name":"ros-humble-rosidl-typesupport-fastrtps-cpp","requires":[],"size":33438,"version":"2.2.0","binstar":{"package_id":"6392741354e9ace854c69ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c30299a927f53d6c4aef50f127495194f639034e2cd5c63dc2f4716e5b5ca78"},"ros-humble-qt-gui-cpp-2.2.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pep517","pyqt-builder","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-pluginlib","ros-humble-qt-gui","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670884200586,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"44c3c27a175c62f6e8380247975c3973","name":"ros-humble-qt-gui-cpp","requires":[],"size":1221837,"version":"2.2.2","binstar":{"package_id":"63927413ed6d66bf8f95f42e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d9435aecf53bf251f7aab14960171d95e3660dbee96f1002652973ce8a77a87"},"ros-humble-qt-gui-cpp-2.2.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pep517","pyqt-builder","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-pluginlib","ros-humble-qt-gui","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675686662771,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"06052bb8db95d81cf327ff7019b6122d","name":"ros-humble-qt-gui-cpp","requires":[],"size":1224197,"version":"2.2.2","binstar":{"package_id":"63927413ed6d66bf8f95f42e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fb25b74f00d99e3222286f740b118aff96a829fd355050d2a2ef81d220e6142f"},"ros-humble-rosidl-typesupport-fastrtps-c-2.2.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-ros","ros-humble-ament-index-python","ros-humble-fastcdr","ros-humble-fastrtps-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670542530234,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5e875cd1a7d670b1ae3695531ea90f1e","name":"ros-humble-rosidl-typesupport-fastrtps-c","requires":[],"size":28392,"version":"2.2.0","binstar":{"package_id":"63927546bbbc2b1e9631332b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91c509a665ca25b3e0ce8d9d532906db47d5c69f5dee957590e98e1c04027962"},"ros-humble-rosidl-typesupport-fastrtps-c-2.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-ros","ros-humble-ament-index-python","ros-humble-fastcdr","ros-humble-fastrtps-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675686834336,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"67458f2fca8efcc6fe21c8db498f5aeb","name":"ros-humble-rosidl-typesupport-fastrtps-c","requires":[],"size":31440,"version":"2.2.0","binstar":{"package_id":"63927546bbbc2b1e9631332b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"20fae0027364458056b32962d37a5e8ad1b3562d5c5d54e843d7249755e85330"},"ros-humble-kdl-parser-2.6.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-urdf","ros-humble-urdfdom-headers","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670542558571,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cc75b0ca3c8f13c894c87bf195debe9f","name":"ros-humble-kdl-parser","requires":[],"size":26752,"version":"2.6.3","binstar":{"package_id":"6392754a46bec18b89e567c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d3115172733ab22a1c00c9af7ad0b8027765718040aebd332ff78e98d32d4384"},"ros-humble-kdl-parser-2.6.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-orocos-kdl-vendor","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-urdf","ros-humble-urdfdom-headers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675686870351,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e2512e3ec830f2d1fe2be27c707c8e97","name":"ros-humble-kdl-parser","requires":[],"size":29339,"version":"2.6.4","binstar":{"package_id":"6392754a46bec18b89e567c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a38830a53758d84129376d4db4e74428d1175561e8aa1d13fa985e6c39228222"},"ros-humble-velodyne-description-2.0.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-urdf","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670542659900,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"abcb428120a77cde2f18ef399fc7c52f","name":"ros-humble-velodyne-description","requires":[],"size":304137,"version":"2.0.3","binstar":{"package_id":"6392754da2b712100804468d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b038a594d7e16f9f6cdd97b4efaca17f87c4713c737678e941121d1296867acb"},"ros-humble-velodyne-description-2.0.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-urdf","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675686993757,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ab52ff81ff2de0f7c9bcf7c27197b8a4","name":"ros-humble-velodyne-description","requires":[],"size":307001,"version":"2.0.3","binstar":{"package_id":"6392754da2b712100804468d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"268b1b0a90801c02b83f226ea8ee48864e69678f3581e48cc003228a409e5c78"},"ros-humble-turtlebot3-description-2.1.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-urdf","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670542633218,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f322b8ae9dd9ad55748fa354489d696b","name":"ros-humble-turtlebot3-description","requires":[],"size":7754134,"version":"2.1.5","binstar":{"package_id":"6392755246f81babcaf7e479","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb07355fe1682a761ed86037d5e3e420b6bad587eedae4c6b6ee7b646cabcb21"},"ros-humble-turtlebot3-description-2.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675686960378,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a208a374e79ebf3929ac03c2d8b4ae3a","name":"ros-humble-turtlebot3-description","requires":[],"size":7768617,"version":"2.1.5","binstar":{"package_id":"6392755246f81babcaf7e479","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5b879fa8169254f46e11042ed770a8c3f8f1129ba90e9bb44aeef8d8f7d68807"},"ros-humble-rosidl-generator-py-0.14.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-python-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-interface","ros-humble-rpyutils","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670542949413,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8399c07c2d7bd261e140f4a4623627ab","name":"ros-humble-rosidl-generator-py","requires":[],"size":36514,"version":"0.14.4","binstar":{"package_id":"639276686d07f25db97e7d03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce6a8e10011ef1c048838c44bf38d7f50adfc923b38f45fc8593b5768243cdf3"},"ros-humble-rosidl-generator-py-0.14.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-index-python","ros-humble-python-cmake-module","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-parser","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-interface","ros-humble-rpyutils","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675687265062,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d53b44380f03aa8cc9f1f0abe0930d94","name":"ros-humble-rosidl-generator-py","requires":[],"size":44964,"version":"0.14.4","binstar":{"package_id":"639276686d07f25db97e7d03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f52fbcc683dbbaedbb1b02599442b1763317146485717c0bbac7910de87f9303"},"ros-humble-rosidl-typesupport-c-2.0.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670542891111,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f17a9854501732a1314333cf5aff868f","name":"ros-humble-rosidl-typesupport-c","requires":[],"size":29176,"version":"2.0.0","binstar":{"package_id":"6392766a2dd7062055631669","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"16ac44a9843149d2724f3fa81e7eed200df339a0801af65da34188fde68829a1"},"ros-humble-rosidl-typesupport-c-2.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675687194543,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"44b98625139871339943aa2eb0241d8b","name":"ros-humble-rosidl-typesupport-c","requires":[],"size":32288,"version":"2.0.0","binstar":{"package_id":"6392766a2dd7062055631669","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75f4ec7525751efdb54ff5274d068f54f3e8895c9b3185685a79775785b00649"},"ros-humble-rosidl-typesupport-cpp-2.0.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670542918016,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"34c5046d73a47ade6fdb40139facdb06","name":"ros-humble-rosidl-typesupport-cpp","requires":[],"size":28019,"version":"2.0.0","binstar":{"package_id":"6392766c358aafdd3d89048e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61460db27b3f27bc588a39306eebf316e9a791d14620dbaaf7d7b2696a650d97"},"ros-humble-rosidl-typesupport-cpp-2.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-cli","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-interface","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675687230881,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0f3130528bc033a73e6f85fd78626528","name":"ros-humble-rosidl-typesupport-cpp","requires":[],"size":31189,"version":"2.0.0","binstar":{"package_id":"6392766c358aafdd3d89048e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"acbb81dbd75bd9da3bb81f0690e46ba35bfeae95202655a9a57b647398e7e104"},"ros-humble-rosidl-default-runtime-1.2.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-generator-py","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543142378,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9527ee45f8e6a8edc882739b3b183895","name":"ros-humble-rosidl-default-runtime","requires":[],"size":9723,"version":"1.2.0","binstar":{"package_id":"6392773c2dd706205563d1ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eb494a04cf04aacc32170dab400c30d6721c3718b586f80e3c8216615cfeeacd"},"ros-humble-rosidl-default-runtime-1.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-generator-py","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675687465029,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e896b77c2b213aaec36d65984f1616b4","name":"ros-humble-rosidl-default-runtime","requires":[],"size":11370,"version":"1.2.0","binstar":{"package_id":"6392773c2dd706205563d1ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"428aa22245ff972871f912e3dee446b4ccb3f5d33e8f5e9cfb8fa6a66a7303fe"},"ros-humble-rosidl-default-generators-1.2.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-generator-cpp","ros-humble-rosidl-generator-py","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543161712,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"240e7ee1c1915a4cd8530d1be0d57ad9","name":"ros-humble-rosidl-default-generators","requires":[],"size":10619,"version":"1.2.0","binstar":{"package_id":"6392773e46bec18b89e5ce96","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8fc0296d34e4f675d413a011770b360cd73ce0af9f2c96877637547779dd106"},"ros-humble-rosidl-default-generators-1.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ros-workspace","ros-humble-rosidl-cmake","ros-humble-rosidl-generator-c","ros-humble-rosidl-generator-cpp","ros-humble-rosidl-generator-py","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675687497171,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"be872534c61c7ac6399ca56ca4c03b32","name":"ros-humble-rosidl-default-generators","requires":[],"size":12255,"version":"1.2.0","binstar":{"package_id":"6392773e46bec18b89e5ce96","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1676d5d66326d64dedc1b834461dd1d65808f74a667f0c1d0aa73dfadee27336"},"ros-humble-system-modes-msgs-0.9.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543378530,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"28fdc45f49014f96b1c1662805069195","name":"ros-humble-system-modes-msgs","requires":[],"size":113696,"version":"0.9.0","binstar":{"package_id":"63927815d9a997aae7202707","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"06ddd8fe9f7bb54936d6d7f91ba8bdfa4af8198d2e22cc70cf4de828b7806573"},"ros-humble-system-modes-msgs-0.9.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675687782215,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9db3e2210a6d6fe86b250fbcecea4fcd","name":"ros-humble-system-modes-msgs","requires":[],"size":123795,"version":"0.9.0","binstar":{"package_id":"63927815d9a997aae7202707","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"56f8bb010b3fcb3b8d5a1885e62e3bf222b3d75b28afd1645864e378199aa225"},"ros-humble-ublox-ubx-interfaces-0.3.5-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543345068,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7ca545bdcd631f7817360182b38e5286","name":"ros-humble-ublox-ubx-interfaces","requires":[],"size":95003,"version":"0.3.5","binstar":{"package_id":"63927817bbbc2b1e96323d1a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81ba3051fbcf6b4ea05d993ae0718e8f5b00c99a5e09dd0b783abed7021619e7"},"ros-humble-ublox-ubx-interfaces-0.3.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675687724981,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cf0e269ebb974610ec83e8674316c5e2","name":"ros-humble-ublox-ubx-interfaces","requires":[],"size":104632,"version":"0.3.5","binstar":{"package_id":"63927817bbbc2b1e96323d1a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ccbe6236687c03ade8f45b173ea7c6a0327c16e33f3f067cdd8314591bf8bbb7"},"ros-humble-rmw-dds-common-1.6.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543420636,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f4bff22ade934532e69a1118d0e1788b","name":"ros-humble-rmw-dds-common","requires":[],"size":128443,"version":"1.6.0","binstar":{"package_id":"63927888ead2dcc8c2e06608","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f64fde08326aba581d86f4ca70064153ef0f1a208ad631ceab475f16bd4a07c1"},"ros-humble-rmw-dds-common-1.6.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675687750612,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"690467dcf22867aefffc50c4d169c368","name":"ros-humble-rmw-dds-common","requires":[],"size":137941,"version":"1.6.0","binstar":{"package_id":"63927888ead2dcc8c2e06608","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6bba5f936151d68bb0ca83ac35985acc48fe616c4865b21b5f174bda72e27cce"},"ros-humble-lifecycle-msgs-1.2.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543461711,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"37ae8c952352fa3e36af060e24f9d76c","name":"ros-humble-lifecycle-msgs","requires":[],"size":150230,"version":"1.2.1","binstar":{"package_id":"6392788966b3e4e3dec23bf0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c6d4cdfe144a364132b4de6af50b4288d2ef4814474cff9b03d861389a6b4c32"},"ros-humble-lifecycle-msgs-1.2.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675687798524,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2047f617b69e956d23de040931039460","name":"ros-humble-lifecycle-msgs","requires":[],"size":166651,"version":"1.2.1","binstar":{"package_id":"6392788966b3e4e3dec23bf0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f07d7a3cab99f799ce5d2c22e1b8bc6143afa0ae6da0aa0ebaa42515c270abca"},"ros-humble-unique-identifier-msgs-2.2.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543356053,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"79ebbfdcef45a1e1fe9d63be84e1f689","name":"ros-humble-unique-identifier-msgs","requires":[],"size":48790,"version":"2.2.1","binstar":{"package_id":"6392788a4f66fd116f531271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f1367bfa7ed2818d18c001eb066f018e2d7530a286312c8f50a07522bd4b322"},"ros-humble-unique-identifier-msgs-2.2.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675687672875,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e090dc55a708ce6d279b3c289b25541d","name":"ros-humble-unique-identifier-msgs","requires":[],"size":54495,"version":"2.2.1","binstar":{"package_id":"6392788a4f66fd116f531271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4ccb9ed47f34997aa6f83e74d5ddd4ce15f78a86764f4754a3fb41048683272"},"ros-humble-builtin-interfaces-1.2.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543385045,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b3aa9e737ed4a4653c1c09c8702fe1fc","name":"ros-humble-builtin-interfaces","requires":[],"size":55477,"version":"1.2.1","binstar":{"package_id":"6392788ce6a2f79ab82f5cc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ded372dc3bf6f7f22000ef9b9a37fc89bf1801cb7a2eb1e264cf3dd5e3bd2d36"},"ros-humble-builtin-interfaces-1.2.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675687708644,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"71c0eaf640bd7f2c4f740bb7019c6325","name":"ros-humble-builtin-interfaces","requires":[],"size":61394,"version":"1.2.1","binstar":{"package_id":"6392788ce6a2f79ab82f5cc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33753a4c5c7c37ae4a58c3f35ab05fc180e0eca24cd0f2a518b2facaf691a05e"},"ros-humble-std-srvs-4.2.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543493659,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4253a881137d5486f2a6095bd8a3a79d","name":"ros-humble-std-srvs","requires":[],"size":85846,"version":"4.2.2","binstar":{"package_id":"6392788dbbbc2b1e963254f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58c7172da22cdd44e1c8471accdd266ed288597d27875808b3281bc6ee433b6f"},"ros-humble-std-srvs-4.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675687837927,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1bc2d7a5ff3029ce151de5f75e747548","name":"ros-humble-std-srvs","requires":[],"size":94575,"version":"4.2.3","binstar":{"package_id":"6392788dbbbc2b1e963254f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3926ebbf0785a152a4e1d32cb2356e5869b492bc17d940438100fd644856380d"},"ros-humble-webots-ros2-importer-2023.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["lark-parser","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pycollada","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543714474,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"aed40c76539c387b7b16864826374a29","name":"ros-humble-webots-ros2-importer","requires":[],"size":49834,"version":"2023.0.0","binstar":{"package_id":"639279dba2b712100807dac9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dabb9993bd326074b9d5577ed87066d05b7f31a8d6b534e3f6b1183a69dd2348"},"ros-humble-webots-ros2-importer-2023.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["lark-parser","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pycollada","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688006736,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"37a2112f818210c922a44ce65f3e0c67","name":"ros-humble-webots-ros2-importer","requires":[],"size":90101,"version":"2023.0.1","binstar":{"package_id":"639279dba2b712100807dac9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b2e99c70f02bda3737cbab1314cb6b9cbc1f8ad15487dbaab45b4f240a718885"},"ros-humble-pendulum-msgs-0.20.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543750433,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"17a4bf764537e05b105619bfa9d3941b","name":"ros-humble-pendulum-msgs","requires":[],"size":70126,"version":"0.20.2","binstar":{"package_id":"639279dd46bec18b89e66178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f9e58d227b28bc77479c98efff083a569e39d03fc1a9cb8fc8bd9ef7017b8a6"},"ros-humble-pendulum-msgs-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688045661,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2c78bbec09324319bb36b8b8b15eeffc","name":"ros-humble-pendulum-msgs","requires":[],"size":78635,"version":"0.20.3","binstar":{"package_id":"639279dd46bec18b89e66178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c194e4da7cbacf020b7888b13ef5177bf7323dd023df731ee3ec03c4bd8114bb"},"ros-humble-topic-tools-interfaces-1.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543832848,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"add2c3eba0ab8cd3bcf646e30091ec72","name":"ros-humble-topic-tools-interfaces","requires":[],"size":108993,"version":"1.0.0","binstar":{"package_id":"639279dee6a2f79ab82fd1f8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6caf325094234d001583addccc203bda65883c72a397be480e17655174f6456"},"ros-humble-topic-tools-interfaces-1.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688129752,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f80057eaf9b33feb561859fa41c026b4","name":"ros-humble-topic-tools-interfaces","requires":[],"size":120491,"version":"1.0.0","binstar":{"package_id":"639279dee6a2f79ab82fd1f8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"15e6a84fc09da95369f98acea92483f24a44812327b843c096161b5b6d2edf21"},"ros-humble-robot-controllers-msgs-0.9.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543785677,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1b3f5260f5f8700a09322c0050b7d0bb","name":"ros-humble-robot-controllers-msgs","requires":[],"size":89566,"version":"0.9.3","binstar":{"package_id":"639279e0a2b712100807db38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ae412ec22bccae4eb39b0f79c89c9aa3dfe887b5cd6fc62e839e19696845b70"},"ros-humble-robot-controllers-msgs-0.9.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688082740,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b178a7c14d9f46a9829c9f6a0ebd1f6a","name":"ros-humble-robot-controllers-msgs","requires":[],"size":100280,"version":"0.9.3","binstar":{"package_id":"639279e0a2b712100807db38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"51d1455b6a6210333b90bd80bda501c2f0deaf932b74352ee5f43d016faa1436"},"ros-humble-rmw-fastrtps-shared-cpp-6.2.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670543756996,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"66b969e081b8e1e209b1a8d133ee9ec5","name":"ros-humble-rmw-fastrtps-shared-cpp","requires":[],"size":200532,"version":"6.2.2","binstar":{"package_id":"63927a03a2b712100807e341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d818c0eb7ddd2d416b7834e2f763d731633df32012bb589e2f78a1caf5d1afb5"},"ros-humble-rmw-fastrtps-shared-cpp-6.2.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688101435,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"aaee5e2c7921a6552b2c2a230e407e3a","name":"ros-humble-rmw-fastrtps-shared-cpp","requires":[],"size":202778,"version":"6.2.2","binstar":{"package_id":"63927a03a2b712100807e341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"05bea71e974351d023860779da1a75ee5ca6914be36c5ad6f312a58685eeaefd"},"ros-humble-action-msgs-1.2.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543694940,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2efe593075b99a4bd278de74d4f44593","name":"ros-humble-action-msgs","requires":[],"size":92740,"version":"1.2.1","binstar":{"package_id":"63927a054f66fd116f536fc2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c858c616e88c3792fb2bb626460a489a5fad28d5f1f2ac43b33521320ddb9fd1"},"ros-humble-action-msgs-1.2.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688025082,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dd6837189d47ae923fce78d2c65acd4d","name":"ros-humble-action-msgs","requires":[],"size":103922,"version":"1.2.1","binstar":{"package_id":"63927a054f66fd116f536fc2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0b36e731eb25c0acd0c334ba86d7a5930a27b7a078c0df31feb6a01051c099ab"},"ros-humble-rcl-interfaces-1.2.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543872877,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bd14775ce2e690ed82b15be9fd91aeae","name":"ros-humble-rcl-interfaces","requires":[],"size":320467,"version":"1.2.1","binstar":{"package_id":"63927a05bbbc2b1e96338da0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12845724c6f14ab639e8b03ff77ceb20c4b1ba28acb03263be1c0a7571a1be63"},"ros-humble-rcl-interfaces-1.2.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688249136,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7123a8c0b2d39745f42ee72e444e8caf","name":"ros-humble-rcl-interfaces","requires":[],"size":343519,"version":"1.2.1","binstar":{"package_id":"63927a05bbbc2b1e96338da0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d66ad32b9a592a056b7b6a4eda2840a3b67d3b506a7ee3e29528bd81da9731c5"},"ros-humble-rmw-connextdds-common-0.11.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-rti-connext-dds-cmake-module","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670543777739,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3b4ca960c13696edbcc54ccbab3653e7","name":"ros-humble-rmw-connextdds-common","requires":[],"size":29820,"version":"0.11.1","binstar":{"package_id":"63927a06ead2dcc8c2e14290","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b58a97df53faf750c8b3956616184221c58806489034a82659fac6242153151"},"ros-humble-rmw-connextdds-common-0.11.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-rti-connext-dds-cmake-module","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688130506,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a72063978d89fb1676a56f9d16084256","name":"ros-humble-rmw-connextdds-common","requires":[],"size":31577,"version":"0.11.1","binstar":{"package_id":"63927a06ead2dcc8c2e14290","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8445959024e03aa44434d867c5901558ceac0b8caf381205a7b1c7a1d4a1a1b"},"ros-humble-rmw-cyclonedds-cpp-1.3.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-cyclonedds","ros-humble-iceoryx-binding-c","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670543815975,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"296d4e027eeb7fb11396c54049f8c168","name":"ros-humble-rmw-cyclonedds-cpp","requires":[],"size":232163,"version":"1.3.4","binstar":{"package_id":"63927a0746f81babcaf9dad8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ec160be0956f484469e7342f812725226b5e22b4772e036ccb2767f4430f9a4"},"ros-humble-rmw-cyclonedds-cpp-1.3.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cyclonedds","ros-humble-iceoryx-binding-c","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688179179,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1507f6c4ad428e78ee810ab9880fca35","name":"ros-humble-rmw-cyclonedds-cpp","requires":[],"size":234206,"version":"1.3.4","binstar":{"package_id":"63927a0746f81babcaf9dad8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d694871b438a62f9686676f77f2cae2185ba30de898e51c708c59b496afdf86"},"ros-humble-controller-manager-msgs-2.18.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-lifecycle-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543852895,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6fbd36c88a3d67940fa2d1edd7b5a990","name":"ros-humble-controller-manager-msgs","requires":[],"size":283031,"version":"2.18.0","binstar":{"package_id":"63927a21d9a997aae720c9d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"487f5f0b1e61a14193bdde184e9bb8b3b1a442b73538285e94afb1a357d12439"},"ros-humble-controller-manager-msgs-2.22.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-lifecycle-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688195069,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"485dd8e27a5134bb3e3cf9e9c934f2c4","name":"ros-humble-controller-manager-msgs","requires":[],"size":318865,"version":"2.22.0","binstar":{"package_id":"63927a21d9a997aae720c9d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6edbd17be1423cdf52369deb174297b11bed177c99da92ab8aac0ea4ea55bf34"},"ros-humble-std-msgs-4.2.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543737374,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"002bf7431b7eb063ee5ab13010ee3950","name":"ros-humble-std-msgs","requires":[],"size":277691,"version":"4.2.2","binstar":{"package_id":"63927a226d07f25db97eb9ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e64fced6664b06044adef61511eaee47165d4c896f5eebf5cadbdce8e613134"},"ros-humble-std-msgs-4.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688059327,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"614a880028bcfc7a9c564f6ce41417cb","name":"ros-humble-std-msgs","requires":[],"size":294544,"version":"4.2.3","binstar":{"package_id":"63927a226d07f25db97eb9ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5edc636d1a871e6637071b21ee0dbd553c8bc508ea4df520d71ac70218cfc0f0"},"ros-humble-rosgraph-msgs-1.2.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543796661,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"eeee8def69837f847ba76e01f4449a95","name":"ros-humble-rosgraph-msgs","requires":[],"size":46806,"version":"1.2.1","binstar":{"package_id":"63927a244f66fd116f53792d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d85f038eb3f466cb926ee3e35449263aad23d05231d671da95347a654f4b75b"},"ros-humble-rosgraph-msgs-1.2.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688133126,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"84c22e06daf54ddcc05579f08d42ae1c","name":"ros-humble-rosgraph-msgs","requires":[],"size":51838,"version":"1.2.1","binstar":{"package_id":"63927a244f66fd116f53792d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d93c48b3e80a8e86811a39f6986f534265941edc8eebb2b490126db4d5d4551"},"ros-humble-statistics-msgs-1.2.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543769858,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"72d47fa7341331c257300b5b8331cf41","name":"ros-humble-statistics-msgs","requires":[],"size":78465,"version":"1.2.1","binstar":{"package_id":"63927a25ed6d66bf8f9728fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"07cc793a4db2a048ce8ecda72b506120b51729ae839526e285cf0b60572820a4"},"ros-humble-statistics-msgs-1.2.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688098997,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9e883af72885ff5d6ca1e6dd31b57bbd","name":"ros-humble-statistics-msgs","requires":[],"size":87716,"version":"1.2.1","binstar":{"package_id":"63927a25ed6d66bf8f9728fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0fc10418e474c797937c6539abc870b1ce355d6211ea1a50d077d6b92f550cd2"},"ros-humble-rosbag2-interfaces-0.15.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670543901988,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9d335fc4d8f04399d756a52250cb05b4","name":"ros-humble-rosbag2-interfaces","requires":[],"size":187619,"version":"0.15.3","binstar":{"package_id":"63927a26ed6d66bf8f97291f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f355ebe8861e1c394af23254666dcb93f96800f4d51258365e2934c46c8c410"},"ros-humble-rosbag2-interfaces-0.15.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688251144,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0863583a69d1d71b246a69d1a7b2f703","name":"ros-humble-rosbag2-interfaces","requires":[],"size":204326,"version":"0.15.4","binstar":{"package_id":"63927a26ed6d66bf8f97291f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1cdee2519c7d781ebc85e1aa84da4f8b48c94ea14fd6f2202fce84c608205ac9"},"ros-humble-stubborn-buddies-msgs-1.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544134074,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"90c42ab7237eb086982ef876a1a8080e","name":"ros-humble-stubborn-buddies-msgs","requires":[],"size":57370,"version":"1.0.0","binstar":{"package_id":"63927b0846f81babcafa3114","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"978935b0961a2772f2c254f4d186293047622fb5abcd0b81b71e378ee243815b"},"ros-humble-stubborn-buddies-msgs-1.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688516231,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6239893f2d402bfd0ade33ff0fc86344","name":"ros-humble-stubborn-buddies-msgs","requires":[],"size":63534,"version":"1.0.0","binstar":{"package_id":"63927b0846f81babcafa3114","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fecb59b542a99fa96682a3823d12d5ecd37c7edb62a5b2651a056805ad30f5cd"},"ros-humble-ublox-ubx-msgs-0.3.5-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544284763,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"91d86ee96175f29dee0086f696d103ae","name":"ros-humble-ublox-ubx-msgs","requires":[],"size":271213,"version":"0.3.5","binstar":{"package_id":"63927ba0114c465c98baa907","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f02030f01c3fb8650ca9d672f112cb2b6ab40a26b79fb9101ab0466263bfdf5"},"ros-humble-ublox-ubx-msgs-0.3.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688479273,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6ca7d2e387fa530c82c958fa245b5cca","name":"ros-humble-ublox-ubx-msgs","requires":[],"size":298026,"version":"0.3.5","binstar":{"package_id":"63927ba0114c465c98baa907","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f6bca85133d9e2ce45a0ecc2c94f4dca05954a784e3c6d2e62313629252fa911"},"ros-humble-ackermann-msgs-2.0.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544139982,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"73bc3ace992122512793c8124db68a9a","name":"ros-humble-ackermann-msgs","requires":[],"size":61569,"version":"2.0.2","binstar":{"package_id":"63927ba26643907e3b602285","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d501e1f957e259117fc55eb80662a4e118b12d1702f5f16d25f63cd1b18ef65e"},"ros-humble-ackermann-msgs-2.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688553253,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"425193344778d9e6e2c14c2237c6e606","name":"ros-humble-ackermann-msgs","requires":[],"size":68979,"version":"2.0.2","binstar":{"package_id":"63927ba26643907e3b602285","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d11c8f9fbd02734319808dca4295737157a136f1cbd6a432e6da1d2b0684bc88"},"ros-humble-turtlebot3-msgs-2.2.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544180107,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8f3ecb23158dd268f7e5ad735216899a","name":"ros-humble-turtlebot3-msgs","requires":[],"size":172867,"version":"2.2.3","binstar":{"package_id":"63927ba346bec18b89e70113","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2eb4c22e861f1a2350600e89a5101219d2061153946b918c9f2d544aab330536"},"ros-humble-turtlebot3-msgs-2.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688555604,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1c25efa5da045bc0ac706994330a45dd","name":"ros-humble-turtlebot3-msgs","requires":[],"size":188188,"version":"2.2.3","binstar":{"package_id":"63927ba346bec18b89e70113","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"905b56cec9b718a87e58aa9359ce3ab94280d7c6be1e6e3853c5c1c1758539f9"},"ros-humble-udp-msgs-0.0.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544211853,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7ddca827d83fb65bc2b490adf16ee41a","name":"ros-humble-udp-msgs","requires":[],"size":98624,"version":"0.0.3","binstar":{"package_id":"63927ba52b3749bdb8630b3b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"39817f9cfd769a86ce8c05d99c236cdd8a37e745da22b563f5ea0453ad9e275a"},"ros-humble-udp-msgs-0.0.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688642235,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8904102fbf7865907eb215554e11442b","name":"ros-humble-udp-msgs","requires":[],"size":110307,"version":"0.0.3","binstar":{"package_id":"63927ba52b3749bdb8630b3b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8987f2a06db792f3bbf29e8d8695550afbe740298300de56a3ceb03975020590"},"ros-humble-action-tutorials-interfaces-0.20.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544108863,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"aea99c3a18c83faaabcfcbf08477bb79","name":"ros-humble-action-tutorials-interfaces","requires":[],"size":106750,"version":"0.20.2","binstar":{"package_id":"63927ba7114c465c98baaaad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"96895249e93ce34998c2b7e6d25aa0e45d9b8dff291b35ada7bea62899518492"},"ros-humble-action-tutorials-interfaces-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688499417,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2dc85d87d667cb6894afd0564d82d83e","name":"ros-humble-action-tutorials-interfaces","requires":[],"size":120393,"version":"0.20.3","binstar":{"package_id":"63927ba7114c465c98baaaad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"005985225bd3304a7e3730603af42bdfb6e6072541589c193dd4d954d774d872"},"ros-humble-ur-dashboard-msgs-2.2.6-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544271115,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"143d6468488bc508db238827b3d83457","name":"ros-humble-ur-dashboard-msgs","requires":[],"size":277074,"version":"2.2.6","binstar":{"package_id":"63927bb046bec18b89e7028d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"362ed3854eaa3010c3366e526dc48c267d5e02b7c9236e82480f6f5f8cf5663d"},"ros-humble-ur-dashboard-msgs-2.2.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688658685,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7cce2f9d303573b283fda46e709b852f","name":"ros-humble-ur-dashboard-msgs","requires":[],"size":293025,"version":"2.2.6","binstar":{"package_id":"63927bb046bec18b89e7028d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da4875b2ea3a13776d7b361b516133e1dd725ea495f0ad582c4ac25242d0ac4f"},"ros-humble-ros2cli-test-interfaces-0.18.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544219267,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"aa437fb434cc23f2a33f7fdc59c22ecf","name":"ros-humble-ros2cli-test-interfaces","requires":[],"size":144213,"version":"0.18.4","binstar":{"package_id":"63927bb146f81babcafa4cb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4314304a0998a3b8bbd4c7a3e450937dc111dfbb24e6b6ab682bc18c246f7f72"},"ros-humble-ros2cli-test-interfaces-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688598827,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0500f731048aa0b52c3a6fb04bb5fcfa","name":"ros-humble-ros2cli-test-interfaces","requires":[],"size":164464,"version":"0.18.5","binstar":{"package_id":"63927bb146f81babcafa4cb2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f93860cd6f639892386fd0c7f4fbf02007e8652508eac5685caa933b675e4620"},"ros-humble-example-interfaces-0.9.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544182039,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"caf6ce75ba69257113568fea90b0a5c5","name":"ros-humble-example-interfaces","requires":[],"size":372614,"version":"0.9.3","binstar":{"package_id":"63927bb22b3749bdb8630db5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b68ccbfc96bdadf7eb6ce7aae7ddef116a3f28081f50cc13678f39245cd505bf"},"ros-humble-example-interfaces-0.9.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688515786,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"76659d03e60408dc02077704e888d83b","name":"ros-humble-example-interfaces","requires":[],"size":399451,"version":"0.9.3","binstar":{"package_id":"63927bb22b3749bdb8630db5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d0c5dd7583d8f6a060b38cd886b2d7c50d4c1fe7d91cffa13127a08ec0a97101"},"ros-humble-actionlib-msgs-4.2.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544104243,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d224ec47227d3cdf14fba9be52404477","name":"ros-humble-actionlib-msgs","requires":[],"size":78935,"version":"4.2.2","binstar":{"package_id":"63927bb346bec18b89e702e4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e98cb10936538b4b0e9547bfb5e42c5a23d1e66e2c86f510e9de7891dd8078dc"},"ros-humble-actionlib-msgs-4.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688428598,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a0f31cc6199589692ca62c2ab9dc418c","name":"ros-humble-actionlib-msgs","requires":[],"size":88052,"version":"4.2.3","binstar":{"package_id":"63927bb346bec18b89e702e4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d5d083c4d74107a78fe9de68057cb63f515c460294ba58c1ff048da65b2f568"},"ros-humble-teleop-tools-msgs-1.3.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544301880,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"180eefa2e9941845d72f22e070bd39c4","name":"ros-humble-teleop-tools-msgs","requires":[],"size":107212,"version":"1.3.0","binstar":{"package_id":"63927bb4bbbc2b1e963472ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"290b62fe1b3bb9555f2cfa0efed14a038944095aff2aa4e0a9cba18d47235077"},"ros-humble-teleop-tools-msgs-1.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688456597,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"73ca3b0fec7b58fc957f93d6a40458de","name":"ros-humble-teleop-tools-msgs","requires":[],"size":119064,"version":"1.3.0","binstar":{"package_id":"63927bb4bbbc2b1e963472ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b4e6fc202c41cf750f1107c414e7ebcedc2649973b67d1bf428ff5cf4daa8f1c"},"ros-humble-rmw-connextdds-0.11.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-rmw-connextdds-common","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670544232137,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"59515024cd59af6fb2923456db0bdc1d","name":"ros-humble-rmw-connextdds","requires":[],"size":9171,"version":"0.11.1","binstar":{"package_id":"63927c1946f81babcafaba9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1edfab74385b2aeb1cf112c00c3efeb16aba80a9570d0679b8b5b4b89bbadfbc"},"ros-humble-rmw-connextdds-0.11.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-rmw-connextdds-common","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688508095,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6c9d3c54760b8dd43d282781161d83af","name":"ros-humble-rmw-connextdds","requires":[],"size":10951,"version":"0.11.1","binstar":{"package_id":"63927c1946f81babcafaba9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"261800cfb3a5933377a87c2d9a730206e2e0687de0face9548ff845b3411d4b8"},"ros-humble-geometry-msgs-4.2.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544324822,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2dd2e4d22818e3ed09e7d12e66a90595","name":"ros-humble-geometry-msgs","requires":[],"size":263786,"version":"4.2.2","binstar":{"package_id":"63927c1a114c465c98babab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46390ead72cb243afa9052f124937aa7e6cae320f8eb25ec8c1899378682fd02"},"ros-humble-geometry-msgs-4.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688584757,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"618dc9bc770d4f3439304f73ab673b1f","name":"ros-humble-geometry-msgs","requires":[],"size":294602,"version":"4.2.3","binstar":{"package_id":"63927c1a114c465c98babab3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"89631a71dfcdf06f39f610f7b4332eacbce28a26bd9e770bf609a189e820827d"},"ros-humble-composition-interfaces-1.2.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544369200,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e47252a831d4397cf1e3741c7c754b17","name":"ros-humble-composition-interfaces","requires":[],"size":126389,"version":"1.2.1","binstar":{"package_id":"63927c1b4f66fd116f543aae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"118dfe0fc51dd411a2a38a814562b7aeef83e99547e8e2100b141dac8bb40427"},"ros-humble-composition-interfaces-1.2.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688627489,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7b19767befca60a08f348ff3b76fc73a","name":"ros-humble-composition-interfaces","requires":[],"size":141446,"version":"1.2.1","binstar":{"package_id":"63927c1b4f66fd116f543aae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6e867186f7ad985a09684f9fd0c39acd7b77a7ace9bedcabfe5ef4493227dde2"},"ros-humble-test-msgs-1.2.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544204244,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1fec8d5f60a8c6378422c5b8c604a738","name":"ros-humble-test-msgs","requires":[],"size":723834,"version":"1.2.1","binstar":{"package_id":"63927c1c2dd706205564c453","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bfce203fec912d513ab3964289dfc7ed77a0bad509e6183ed202154413e7021f"},"ros-humble-test-msgs-1.2.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688477926,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d1a02471b181b93e63d0d6b16c5ba35c","name":"ros-humble-test-msgs","requires":[],"size":763961,"version":"1.2.1","binstar":{"package_id":"63927c1c2dd706205564c453","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64b171c38ee8764c7052a99070ecfc196125e10241bccad850533f5b43648f9e"},"ros-humble-bond-3.0.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544406261,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e43a49257ab20a5fbfe3d6d78da47772","name":"ros-humble-bond","requires":[],"size":63746,"version":"3.0.2","binstar":{"package_id":"63927c1d6e0eca100b493e1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad8aabb950d76e3cef1a3ae33a7dcea44cafb2c41fcd61f996e728abf4cedbb4"},"ros-humble-bond-3.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688664055,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"64ac44afec510ab8f06b6afad63661a0","name":"ros-humble-bond","requires":[],"size":71354,"version":"3.0.2","binstar":{"package_id":"63927c1d6e0eca100b493e1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5fa302e0b9e99f88694a430a01a5ca8bc160b460f9d384e352d067f85d52ea06"},"ros-humble-geographic-msgs-1.0.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544719899,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"914b25b8b303f3244f557d4d1e305bce","name":"ros-humble-geographic-msgs","requires":[],"size":263581,"version":"1.0.4","binstar":{"package_id":"63927d714f66fd116f54af42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d52bf4b230e4d03bc62352c0a3fa87e6930465f3bd0ff329fdb4ed5f6c0dc4a5"},"ros-humble-geographic-msgs-1.0.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688868090,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4816f47cf00906021e426a048711bf9a","name":"ros-humble-geographic-msgs","requires":[],"size":295233,"version":"1.0.4","binstar":{"package_id":"63927d714f66fd116f54af42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22d7e6f602c8e8f4c36ea98b909ffd0f890faf778aedacffd3174e5b9194d18c"},"ros-humble-cartographer-ros-msgs-2.0.9000-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544658425,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a69aa55764123228938f4447da4f9963","name":"ros-humble-cartographer-ros-msgs","requires":[],"size":314244,"version":"2.0.9000","binstar":{"package_id":"63927d72d9a997aae721bf64","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2dc4a461bf490517dce8ab568a6cd310935b630c234196b695761e48474c6209"},"ros-humble-cartographer-ros-msgs-2.0.9000-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688947046,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d201537a0b478b7d03145418648b4ea1","name":"ros-humble-cartographer-ros-msgs","requires":[],"size":362979,"version":"2.0.9000","binstar":{"package_id":"63927d72d9a997aae721bf64","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76cf268996b71b6710b626b279ffcfc4905e1c8705960e7565cac126cc05c7fb"},"ros-humble-graph-msgs-0.2.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544751212,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bef73bb56b0aa0d2b9f211612da302b3","name":"ros-humble-graph-msgs","requires":[],"size":75799,"version":"0.2.0","binstar":{"package_id":"63927d734f66fd116f54af91","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dcae9166251fd0d80e36d28a1e57df308ee1256cae180b97117765cc71a906ea"},"ros-humble-graph-msgs-0.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688982716,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"76b4023a3d4d479e003bafcb0545f251","name":"ros-humble-graph-msgs","requires":[],"size":83733,"version":"0.2.0","binstar":{"package_id":"63927d734f66fd116f54af91","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c4979fa9f48c52ef13d7fe861872dbe6091f2b09c15e4088e7144948a0f4eeff"},"ros-humble-diagnostic-msgs-4.2.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544710747,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"51670fd21bb1fe98e6ffd6043b13bf79","name":"ros-humble-diagnostic-msgs","requires":[],"size":130472,"version":"4.2.2","binstar":{"package_id":"63927d924f66fd116f54d6b9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"afc2709750e66e4417d7832df45b0fff17b66f7a1552310d609d732bfb7c6360"},"ros-humble-diagnostic-msgs-4.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688927836,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d4fa113b77a5c87b83f0de270242e738","name":"ros-humble-diagnostic-msgs","requires":[],"size":137304,"version":"4.2.3","binstar":{"package_id":"63927d924f66fd116f54d6b9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c5469e7017b33f8328a243a98c41567767e5e9b41ee5cfcf74ce63c2a218a0da"},"ros-humble-trajectory-msgs-4.2.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544783821,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e9f155dab7f6a5de595c94a5d19a57f3","name":"ros-humble-trajectory-msgs","requires":[],"size":113979,"version":"4.2.2","binstar":{"package_id":"63927d93d9a997aae721ca10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"66f1fff365bfc4f4fe456267055d110a7c7a242909c506868fb7c7fe4b595db6"},"ros-humble-trajectory-msgs-4.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689007591,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b7b943cc4f7e943228555802b250353b","name":"ros-humble-trajectory-msgs","requires":[],"size":127646,"version":"4.2.3","binstar":{"package_id":"63927d93d9a997aae721ca10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f10b72650aa1571e962a637b9e34e70bc94801ca808d83b81b505e7e0993a368"},"ros-humble-shape-msgs-4.2.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544746953,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a2957f5dec4a73bfa3219602e782a984","name":"ros-humble-shape-msgs","requires":[],"size":92377,"version":"4.2.2","binstar":{"package_id":"63927d946e0eca100b494a1d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"66abfcf8786fd69f19d61b02eb5385dd0cbcc155189c05607d49829fea6b6841"},"ros-humble-shape-msgs-4.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688967554,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cd5bfd8435094efb913cebbb5f181ba7","name":"ros-humble-shape-msgs","requires":[],"size":103973,"version":"4.2.3","binstar":{"package_id":"63927d946e0eca100b494a1d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ae48991e60a5a084a7329bdfb967be4ca52c66f357bda4dbccf3f5b4d8d947fa"},"ros-humble-rosidl-runtime-py-0.9.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy","python","python_abi 3.10.*","pyyaml","ros-humble-ros-workspace","ros-humble-rosidl-parser","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670544617586,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5742eab699fb74321f1c218bd0b13465","name":"ros-humble-rosidl-runtime-py","requires":[],"size":23445,"version":"0.9.3","binstar":{"package_id":"63927d94d9a997aae721ca22","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5be245eca3e9ea2cefd732a04b4fc6d9a25c540b8215c12c8c84cf79f8384662"},"ros-humble-rosidl-runtime-py-0.9.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ros-workspace","ros-humble-rosidl-parser","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688828405,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3c304ec793f57d415f9e6d6fdad2892a","name":"ros-humble-rosidl-runtime-py","requires":[],"size":30491,"version":"0.9.3","binstar":{"package_id":"63927d94d9a997aae721ca22","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b4d2203e549c6b89ab0879fd576c0770ef9bf99381ae778be44e3dcc3455e026"},"ros-humble-nav-msgs-4.2.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544672251,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d9f4eb5e81d19cd0a6fc34d70b501472","name":"ros-humble-nav-msgs","requires":[],"size":174579,"version":"4.2.2","binstar":{"package_id":"63927d9546bec18b89e79dcf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0cd05ef8f42856e7f316467c51a393a047ea0eba547e4d1d2045f3271ecb97f3"},"ros-humble-nav-msgs-4.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688885729,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"359438a61c5040b0fe0a44bd82f3707a","name":"ros-humble-nav-msgs","requires":[],"size":192532,"version":"4.2.3","binstar":{"package_id":"63927d9546bec18b89e79dcf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3c20c2907531d8ba3303fc8805aee5e7b2617e9980dd0eca691197b49285f76a"},"ros-humble-nav-2d-msgs-1.1.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544658808,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d0b7b4014bbc9b66a869a5c57a0010a6","name":"ros-humble-nav-2d-msgs","requires":[],"size":93445,"version":"1.1.3","binstar":{"package_id":"63927dc02dd7062055651fee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"525ad94c83828195fc102643ba892dc4c3e07e521cd2f6efbd980fc3364baf70"},"ros-humble-nav-2d-msgs-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688889157,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"126cfdc9fc48db123f772b4f408cade8","name":"ros-humble-nav-2d-msgs","requires":[],"size":104488,"version":"1.1.5","binstar":{"package_id":"63927dc02dd7062055651fee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"376bf2ef5058bcb6f88ed0e805945efc7f5eb7a8b37ffe530dc47b7739330cbc"},"ros-humble-vision-msgs-4.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544718458,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ea647cb770947878f863cae26b052f3d","name":"ros-humble-vision-msgs","requires":[],"size":186647,"version":"4.0.0","binstar":{"package_id":"63927dc3bbbc2b1e96350921","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"630cc0f330618a6064fda0c45f55ddac3a8dd9a426ad0fe9b6bfdd5d675acef8"},"ros-humble-vision-msgs-4.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688955920,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"57e6b80eec8cb305a5568dfa19bdf069","name":"ros-humble-vision-msgs","requires":[],"size":202715,"version":"4.0.0","binstar":{"package_id":"63927dc3bbbc2b1e96350921","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"68e66a6c71c7e667c9222bfdd49d759bc31be87ccd0bb3ba637d12ab85839120"},"ros-humble-octomap-msgs-2.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544621580,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ff8c68d2ebc6d38b16384f007b093ab5","name":"ros-humble-octomap-msgs","requires":[],"size":107100,"version":"2.0.0","binstar":{"package_id":"63927dc44f66fd116f54e184","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75c51f7da2774bf4c7420f327bf69d004974e12211a2ca87230e2890f3804ea8"},"ros-humble-octomap-msgs-2.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688845418,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a9d76679cc738bf9400aa59e528f78cd","name":"ros-humble-octomap-msgs","requires":[],"size":117983,"version":"2.0.0","binstar":{"package_id":"63927dc44f66fd116f54e184","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6b7e4aca9631f535ddbdfd20c09474048ff7ce03b72896895a853913ef8589c"},"ros-humble-ur-msgs-2.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544829623,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0d636312afa7237122f05989ade16aad","name":"ros-humble-ur-msgs","requires":[],"size":211862,"version":"2.0.0","binstar":{"package_id":"63927dc66e0eca100b494b33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d525193f373dbdb388474fbf762968ed7fee776b659bdd3cae84123d06125bde"},"ros-humble-ur-msgs-2.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689102131,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c510d21872fc21aaf0d7de5b17a2b180","name":"ros-humble-ur-msgs","requires":[],"size":237614,"version":"2.0.0","binstar":{"package_id":"63927dc66e0eca100b494b33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86f1ceb678825a87da162b542ea74e54e36a3d618dae186d42579bb2b56f9cbd"},"ros-humble-ros-gz-interfaces-0.244.9-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544783536,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"339f7c0226d04cca777f45df258bab82","name":"ros-humble-ros-gz-interfaces","requires":[],"size":297854,"version":"0.244.9","binstar":{"package_id":"63927dc954e9ace854c8de10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"612277f39fa0fa4565ff9e53983c157738b70c5de71a08d32ff2108aacf8d117"},"ros-humble-ros-gz-interfaces-0.244.9-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689049184,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"31be463614d227ed62a1867a164a3511","name":"ros-humble-ros-gz-interfaces","requires":[],"size":336607,"version":"0.244.9","binstar":{"package_id":"63927dc954e9ace854c8de10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2fda82aa3172a23b520de183c6e15cea475217b8bcaae389fc1af029f4452f6a"},"ros-humble-tf2-msgs-0.25.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544959133,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7116e298c8aa5bb374b08d2e67cdbe1d","name":"ros-humble-tf2-msgs","requires":[],"size":150313,"version":"0.25.1","binstar":{"package_id":"63927e4266b3e4e3dec422aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"507e88d1a480607c9c5b8b5e2c05fa61e748f98815d27a9265c7d6f60e96097b"},"ros-humble-tf2-msgs-0.25.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689099191,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8b32fa8b1561efb474fe479cbcc51ad1","name":"ros-humble-tf2-msgs","requires":[],"size":167747,"version":"0.25.2","binstar":{"package_id":"63927e4266b3e4e3dec422aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86f5eb1bee1031e9e6580c76d102a7edb5dfacefa5bb7b62c21478826b195e1a"},"ros-humble-rmw-fastrtps-dynamic-cpp-6.2.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-rmw-fastrtps-shared-cpp","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670544697550,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b6acc9a74df9db03106d296463c6b826","name":"ros-humble-rmw-fastrtps-dynamic-cpp","requires":[],"size":162197,"version":"6.2.2","binstar":{"package_id":"63927e44d9a997aae721fc85","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"752cb5c85dbaae2c85696d90fba143fd8a5d74ce2a28e2e57057c3a06b59e49b"},"ros-humble-rmw-fastrtps-dynamic-cpp-6.2.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-rmw-fastrtps-shared-cpp","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-rosidl-typesupport-introspection-c","ros-humble-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688875912,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c852a4bec8021c63c815f7f192df83aa","name":"ros-humble-rmw-fastrtps-dynamic-cpp","requires":[],"size":164493,"version":"6.2.2","binstar":{"package_id":"63927e44d9a997aae721fc85","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a3d8dac1440b361050dc26c91b814a7a374bf47f4e7c57eb13e6f72fc79d0b31"},"ros-humble-sensor-msgs-4.2.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670544910395,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e0c573bfe5b6813d5b2fc5905f152b72","name":"ros-humble-sensor-msgs","requires":[],"size":425264,"version":"4.2.2","binstar":{"package_id":"63927e46a2b712100809ef81","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"afb8b0a1b83b88a754af3142ab0d06907d693604a42de8e31ae4b21db84e0db4"},"ros-humble-sensor-msgs-4.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689055007,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"89282a604de1fdc855a794cf56097fbe","name":"ros-humble-sensor-msgs","requires":[],"size":486340,"version":"4.2.3","binstar":{"package_id":"63927e46a2b712100809ef81","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eb0b6212ec57fada859116de85f88010df5ae289aedc72169b9f7d2c2ad8636c"},"ros-humble-rmw-fastrtps-cpp-6.2.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-rmw-fastrtps-shared-cpp","ros-humble-ros-workspace","ros-humble-rosidl-cmake","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670544758354,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a741d290ca79e9e6cdb868e33deee5cf","name":"ros-humble-rmw-fastrtps-cpp","requires":[],"size":128646,"version":"6.2.2","binstar":{"package_id":"63927e48ead2dcc8c2e2c011","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ef01a2c87f509e39095ad8c537b7603b40e4f0b99a0a504420ca1ea096e22fe"},"ros-humble-rmw-fastrtps-cpp-6.2.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-fastcdr","ros-humble-fastrtps","ros-humble-fastrtps-cmake-module","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-dds-common","ros-humble-rmw-fastrtps-shared-cpp","ros-humble-ros-workspace","ros-humble-rosidl-cmake","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-fastrtps-c","ros-humble-rosidl-typesupport-fastrtps-cpp","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688928770,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"abd562cdb83807beb9bacdde5b7ccae5","name":"ros-humble-rmw-fastrtps-cpp","requires":[],"size":130666,"version":"6.2.2","binstar":{"package_id":"63927e48ead2dcc8c2e2c011","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"357dd6d17cf31b3289efc545f164c53ae53109d494b824851e50e2d810ff0cf5"},"ros-humble-tf2-0.25.1-py310h7727717_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-console-bridge-vendor","ros-humble-geometry-msgs","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7727717_2","timestamp":1670544798305,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0df7296f0aa3673dd1da09ede8d6cf50","name":"ros-humble-tf2","requires":[],"size":100829,"version":"0.25.1","binstar":{"package_id":"63927e4a13f4c7e7c54fbd63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3da456e89387d531fe68351442a2704a37b8708e2e38c3c0a1cda660db0240f3"},"ros-humble-tf2-0.25.2-py310h53aaf3d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-console-bridge-vendor","ros-humble-geometry-msgs","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h53aaf3d_3","timestamp":1675688965971,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"373300a7ef6301aa8e8a771b7f406530","name":"ros-humble-tf2","requires":[],"size":102496,"version":"0.25.2","binstar":{"package_id":"63927e4a13f4c7e7c54fbd63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b20cc7501d28c9c851231a70419aeaac6b301b9c5d4b4d3166ee73a8fe49e8d7"},"ros-humble-ros-ign-interfaces-0.244.9-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-gz-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670545207131,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ee0e3fbfd51eda30f137e0fcdab53d01","name":"ros-humble-ros-ign-interfaces","requires":[],"size":272456,"version":"0.244.9","binstar":{"package_id":"63927f3a2b3749bdb863c7c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e0935cd27f2f50233ddeb11380a26c23c22f2e0fcac2c04662837359da50402"},"ros-humble-ros-ign-interfaces-0.244.9-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-gz-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689632547,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1c81455d51e669d2369499ba1f7d073d","name":"ros-humble-ros-ign-interfaces","requires":[],"size":307919,"version":"0.244.9","binstar":{"package_id":"63927f3a2b3749bdb863c7c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"72d356b59ec220bca931c9f86497087a1539e7be42897ebe2a23100b9a59e0be"},"ros-humble-sensor-msgs-py-4.2.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670545217657,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e3a37ebd0fbac70270af52684839534d","name":"ros-humble-sensor-msgs-py","requires":[],"size":17278,"version":"4.2.2","binstar":{"package_id":"63927fe4ead2dcc8c2e35b8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"08fa7a4599e91a60b49f5c1ad797d517076205bac0c395248b5d74e7140277e7"},"ros-humble-sensor-msgs-py-4.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689325106,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c9f83cd8b396a39aae984a305f7e756e","name":"ros-humble-sensor-msgs-py","requires":[],"size":24845,"version":"4.2.3","binstar":{"package_id":"63927fe4ead2dcc8c2e35b8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4efc83bf6d77229a8882f301dbb2b78220871132eba11d1d518ecf2042f4e52"},"ros-humble-visualization-msgs-4.2.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670545341514,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"da29549d85fd7e8ba9ac9e63c00cbffb","name":"ros-humble-visualization-msgs","requires":[],"size":280279,"version":"4.2.2","binstar":{"package_id":"63927fe746bec18b89e84a10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5f6eaecd769db915bcaedc340a3914eca6230c0cd547abb551ca6a3a54f75a4f"},"ros-humble-visualization-msgs-4.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689445169,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"758dc46cb2e32b239de40a1c09601cec","name":"ros-humble-visualization-msgs","requires":[],"size":313855,"version":"4.2.3","binstar":{"package_id":"63927fe746bec18b89e84a10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e8f51173c93e62850aff000c9e1de2f70ff9c2e3fb81aed8f782a8ed63c7a7c"},"ros-humble-stereo-msgs-4.2.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670545377179,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6698ae4bb90294d25c50b47ffa3e5904","name":"ros-humble-stereo-msgs","requires":[],"size":54733,"version":"4.2.2","binstar":{"package_id":"63927fe86a03c9fad25f1496","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d8a29be07718e822d830f11f94b8193dc898c6107448c4c07fb2c0a5f6a20da"},"ros-humble-stereo-msgs-4.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689482245,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0e18a978f9e2bdd171a83a9f9716ef3e","name":"ros-humble-stereo-msgs","requires":[],"size":61411,"version":"4.2.3","binstar":{"package_id":"63927fe86a03c9fad25f1496","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14e545370ebd24ec2c3bb75d0a5323af80916bbdc95da68f790aa8496f042594"},"ros-humble-rmw-implementation-2.8.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw-connextdds","ros-humble-rmw-cyclonedds-cpp","ros-humble-rmw-fastrtps-cpp","ros-humble-rmw-fastrtps-dynamic-cpp","ros-humble-rmw-implementation-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670545190224,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d06b253130a252540497bd9b1128f394","name":"ros-humble-rmw-implementation","requires":[],"size":30199,"version":"2.8.1","binstar":{"package_id":"63927fea9e77a4aa6b6c04d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3255c72b47a9c2f8dbbe6977ae4aad790bc43e7caf3fc2a38da558e517948f33"},"ros-humble-rmw-implementation-2.8.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw-connextdds","ros-humble-rmw-cyclonedds-cpp","ros-humble-rmw-fastrtps-cpp","ros-humble-rmw-fastrtps-dynamic-cpp","ros-humble-rmw-implementation-cmake","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689294405,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c90e8ac8ea35dbeff53b1c836eb4c1d0","name":"ros-humble-rmw-implementation","requires":[],"size":32296,"version":"2.8.2","binstar":{"package_id":"63927fea9e77a4aa6b6c04d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"67e14cb2c6ee95be2fca29ec7a4b78284d543d2200a37dc5cd17058dbc6258ce"},"ros-humble-object-recognition-msgs-2.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670545273037,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"41ba1d8a957a613b2a12a012b954a66f","name":"ros-humble-object-recognition-msgs","requires":[],"size":210852,"version":"2.0.0","binstar":{"package_id":"63927febead2dcc8c2e3642b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd30926795c62e888e2036fc4ca34b4ff33a578f16bff0ba695aed949434d2d8"},"ros-humble-object-recognition-msgs-2.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689379110,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b151305600088143d039231f3aab6e0f","name":"ros-humble-object-recognition-msgs","requires":[],"size":240080,"version":"2.0.0","binstar":{"package_id":"63927febead2dcc8c2e3642b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"51fe4011ec46b7c11adb9b9a6d565e002d1caeab19fae2caa5bd9503c5340579"},"ros-humble-cv-bridge-3.2.1-py310he05af81_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310he05af81_2","timestamp":1670545412930,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2ed51df90e76064d3416ce9ee417c034","name":"ros-humble-cv-bridge","requires":[],"size":135394,"version":"3.2.1","binstar":{"package_id":"6392802496cc569e105eeafb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0295b2b18061a4014ef01df6cacb037164d0ad1fa20281c6f8fd3780662902ba"},"ros-humble-cv-bridge-3.2.1-py310he05af81_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310he05af81_3","timestamp":1675689559459,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8a2cb2a3ed3b69c8a89a6f830fccb509","name":"ros-humble-cv-bridge","requires":[],"size":143601,"version":"3.2.1","binstar":{"package_id":"6392802496cc569e105eeafb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6741b2e0aaa9fa5c1f678a11e1e298484300f2b7d31cb554d21188858b695d6b"},"ros-humble-dwb-msgs-1.1.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670545302701,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d888b666e192d3db3f349a5dd851e9fc","name":"ros-humble-dwb-msgs","requires":[],"size":185114,"version":"1.1.3","binstar":{"package_id":"63928025d9a997aae722c1cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0632a14ba3a32fcea0ecf7b968ce41461914c3c6c68f1ccec1e6d160090e56be"},"ros-humble-dwb-msgs-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689444593,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8fddca075cddfe4bdf1c96d91080b3be","name":"ros-humble-dwb-msgs","requires":[],"size":195232,"version":"1.1.5","binstar":{"package_id":"63928025d9a997aae722c1cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3bc48dbba2a368f37bd61293e602283fe7816eabffba60352b66056b92851d84"},"ros-humble-map-msgs-2.1.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670545255685,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c9814562df55dddc9643adf834ce5ee7","name":"ros-humble-map-msgs","requires":[],"size":180987,"version":"2.1.0","binstar":{"package_id":"6392802654e9ace854c91b63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"270eb5003afa92d96e5751899aade83cc9fe3461c12a0b9e08a03c5f5d55500d"},"ros-humble-map-msgs-2.1.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689387160,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7e8f22ab628cb87a804874dfca443cf1","name":"ros-humble-map-msgs","requires":[],"size":207653,"version":"2.1.0","binstar":{"package_id":"6392802654e9ace854c91b63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c659896cc5f71914ac053be60359394dec9b5d9983459c21ac58de92c968e5f5"},"ros-humble-control-msgs-4.1.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670545209501,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"48203a556b8b44b282f2d15bde80e744","name":"ros-humble-control-msgs","requires":[],"size":505501,"version":"4.1.0","binstar":{"package_id":"6392802754e9ace854c91b6f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33e7bae94564be6da0b35621b9b848c8e71628def7f18657951c0df89bfaa95d"},"ros-humble-control-msgs-4.1.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689330306,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4d4d4c6942f9ce85e7826f71b12122b9","name":"ros-humble-control-msgs","requires":[],"size":552220,"version":"4.1.0","binstar":{"package_id":"6392802754e9ace854c91b6f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5c32e6edf26c22463f91408f4964fc69d4757f2cd3f1b35924dbdffc13ebc1b"},"ros-humble-tf2-eigen-kdl-0.25.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670545442040,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f919dc7b7d1c1be39ba9acb7a32e8981","name":"ros-humble-tf2-eigen-kdl","requires":[],"size":18646,"version":"0.25.1","binstar":{"package_id":"639280281f9cf5f92ad872d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3df5f64fc403fc2804f00857bc386276c68384c2145b1dc18e340bcc8d75175"},"ros-humble-tf2-eigen-kdl-0.25.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689596891,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"23136d7407930a6f36b6bf74109f8b29","name":"ros-humble-tf2-eigen-kdl","requires":[],"size":20584,"version":"0.25.2","binstar":{"package_id":"639280281f9cf5f92ad872d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c0752d8a6441ff0ba5c302b313d93d6cd3328174e5fed0436132ff9360695c0"},"ros-humble-ublox-msgs-2.3.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-ublox-serialization","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670545656934,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"de2ba5605e959ad9aa23c6dec214e102","name":"ros-humble-ublox-msgs","requires":[],"size":980194,"version":"2.3.0","binstar":{"package_id":"639280ff4f66fd116f572c52","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12f18620f75dde004b4871f4b1bb007b0746c2984832124bd7b51d116dacb9c3"},"ros-humble-ublox-msgs-2.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-ublox-serialization","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689555600,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"73ac6e36e42b41a27d24588f7e127b07","name":"ros-humble-ublox-msgs","requires":[],"size":1147445,"version":"2.3.0","binstar":{"package_id":"639280ff4f66fd116f572c52","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91382ea358e7b37214436e4c7db8789addc59268a754c5945f905e47b8e410c9"},"ros-humble-webots-ros2-msgs-2023.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-vision-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670545177193,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"46c611b4e91b827219ccda192b233a3a","name":"ros-humble-webots-ros2-msgs","requires":[],"size":125417,"version":"2023.0.0","binstar":{"package_id":"63928101d9a997aae723ff64","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"753ee40b808a01de9521bb6035cde056381d796f37ea888577178531ee91510d"},"ros-humble-webots-ros2-msgs-2023.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-vision-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689298015,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ec2985629c1d5028fb1a1b719f75cf9f","name":"ros-humble-webots-ros2-msgs","requires":[],"size":136704,"version":"2023.0.1","binstar":{"package_id":"63928101d9a997aae723ff64","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"102226c6e5931223923d864b8b57e97def4bc86a4ada7e27acdf51c167c27d4c"},"ros-humble-image-geometry-3.2.1-py310h39d476f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h39d476f_2","timestamp":1670545420553,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"710c0a4631ab823b804f77f826191688","name":"ros-humble-image-geometry","requires":[],"size":41738,"version":"3.2.1","binstar":{"package_id":"63928101e6a2f79ab8331b4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f14d9022f2f11759c4f2ca0b210c33b44c6f99bdcfd81d830f77ebf81adce1a"},"ros-humble-image-geometry-3.2.1-py310h0699a7d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h0699a7d_3","timestamp":1675689563987,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"17e68dce358be3d81a68d3e6ce7690c3","name":"ros-humble-image-geometry","requires":[],"size":49592,"version":"3.2.1","binstar":{"package_id":"63928101e6a2f79ab8331b4a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"39e062c9fa0306d507d7088ef75a310abaafb94f530b19fbf12e76aabb68c205"},"ros-humble-gazebo-msgs-3.7.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670545296267,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d41df6e4bc77d33f4a3fe0f755b59e7b","name":"ros-humble-gazebo-msgs","requires":[],"size":718349,"version":"3.7.0","binstar":{"package_id":"63928103d9a997aae723fff0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8e15764bb28e66ff6cd9d611f8476957f56715389fea5990e3ce12fee601aa4e"},"ros-humble-gazebo-msgs-3.7.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689422946,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cffe255ead2c1e38b570c12cdb1aaa26","name":"ros-humble-gazebo-msgs","requires":[],"size":805792,"version":"3.7.0","binstar":{"package_id":"63928103d9a997aae723fff0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0eba5ddde71b1b22d23237682d71f7f86d2938f21bbc594b2d8a215d030115b2"},"ros-humble-pcl-msgs-1.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670545335283,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b077bd49bc0de66019182304c82a75ba","name":"ros-humble-pcl-msgs","requires":[],"size":113029,"version":"1.0.0","binstar":{"package_id":"63928104358aafdd3d8c9c5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"779b76dfb06486be7a8f886f9abdbdbe77efd5781b537e8c12642e7acbf34c63"},"ros-humble-pcl-msgs-1.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689469368,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4579058361bbd639243c59d5ffa77c7d","name":"ros-humble-pcl-msgs","requires":[],"size":125079,"version":"1.0.0","binstar":{"package_id":"63928104358aafdd3d8c9c5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ff4a4983231bd79d9cb46b1e446bb31da4df8047dc5085b7e45bcee1ae4d5c3"},"ros-humble-vision-opencv-3.2.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670546198888,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"95f690f3bb924a535a8c5b61a5788611","name":"ros-humble-vision-opencv","requires":[],"size":9228,"version":"3.2.1","binstar":{"package_id":"63928318114c465c98bc4799","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ba949d29dafce3e0ac98c9c5735fbdf90dc4a512d9eeefb1bf1337be8d99a124"},"ros-humble-vision-opencv-3.2.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675690307322,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"28c94cce81666cd9a4cff65381a95c06","name":"ros-humble-vision-opencv","requires":[],"size":11991,"version":"3.2.1","binstar":{"package_id":"63928318114c465c98bc4799","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"782e4d7858160bad5df51b28188742fa71eaf623bc783079f7f9b8ca9cfd684d"},"ros-humble-rcl-5.3.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcl-interfaces","ros-humble-rcl-logging-interface","ros-humble-rcl-logging-spdlog","ros-humble-rcl-yaml-param-parser","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670545887633,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ce5626ac02f8f5ceffe9ef0001787184","name":"ros-humble-rcl","requires":[],"size":145155,"version":"5.3.2","binstar":{"package_id":"63928319d9a997aae7255dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b95fb5a03dc7172e099caed6b5a94dbf160e8b0a3aeac2c18ff1533b90835204"},"ros-humble-rcl-5.3.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl-interfaces","ros-humble-rcl-logging-interface","ros-humble-rcl-logging-spdlog","ros-humble-rcl-yaml-param-parser","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675689868051,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"065591f54c0b12aefb1e143f336c99d2","name":"ros-humble-rcl","requires":[],"size":147573,"version":"5.3.2","binstar":{"package_id":"63928319d9a997aae7255dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52f66c6a89c716f4eeff16c90cbbfa67bd82d105721e7da1d58e10ac34a2ca3e"},"ros-humble-common-interfaces-4.2.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-actionlib-msgs","ros-humble-builtin-interfaces","ros-humble-diagnostic-msgs","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-stereo-msgs","ros-humble-trajectory-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670546134380,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"953e6a428e68b03b48eaab82b9cb78aa","name":"ros-humble-common-interfaces","requires":[],"size":9461,"version":"4.2.2","binstar":{"package_id":"6392831b6e0eca100b49c19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f95dff699248f3b9879fdcc440919a21adb15a753a419eb524246b51234ac0a6"},"ros-humble-common-interfaces-4.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-actionlib-msgs","ros-humble-builtin-interfaces","ros-humble-diagnostic-msgs","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-stereo-msgs","ros-humble-trajectory-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675690224266,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5b9804a912e95f5e096fd0d0c8daa193","name":"ros-humble-common-interfaces","requires":[],"size":11111,"version":"4.2.3","binstar":{"package_id":"6392831b6e0eca100b49c19e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"250f63bee1b3bead791cc07654e90d426d4e5164d7e60be1dd65641832ef8f57"},"ros-humble-moveit-msgs-2.2.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-object-recognition-msgs","ros-humble-octomap-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670546107976,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a84d5ffc2f5096800491d59ee2a29c9f","name":"ros-humble-moveit-msgs","requires":[],"size":1669311,"version":"2.2.1","binstar":{"package_id":"6392831d2b3749bdb8662594","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f98fb4be965273512554810618c64927eac55074c04d5add8149fe477c30e56a"},"ros-humble-moveit-msgs-2.2.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-object-recognition-msgs","ros-humble-octomap-msgs","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675690180275,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"78cded477578c7f10c57093e6d54b2f3","name":"ros-humble-moveit-msgs","requires":[],"size":1769102,"version":"2.2.1","binstar":{"package_id":"6392831d2b3749bdb8662594","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7d257195cc1bcaf80148f2d63355acfbd97300b5e9f9c2fee1442c9734b67a04"},"ros-humble-rcl-action-5.3.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-rcl","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670546475062,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b56a685ac8fc7167c5ad5061bc2f8c0d","name":"ros-humble-rcl-action","requires":[],"size":52647,"version":"5.3.2","binstar":{"package_id":"6392842d66b3e4e3dec81d95","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"07a4911c0d384b0191e06ab2c6fe7bd30e0116d312633d6168a739b169e542e1"},"ros-humble-rcl-action-5.3.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-rcl","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675690659943,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"356c2cc08a23b32304d24be09c5b22da","name":"ros-humble-rcl-action","requires":[],"size":54923,"version":"5.3.2","binstar":{"package_id":"6392842d66b3e4e3dec81d95","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce34042158be196f224288cd18212d8706169a0d4ee81ee86cf1e79815627611"},"ros-humble-rcl-lifecycle-5.3.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-lifecycle-msgs","ros-humble-rcl","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670546447719,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"18033b74647fba739fff7554159de7de","name":"ros-humble-rcl-lifecycle","requires":[],"size":32368,"version":"5.3.2","binstar":{"package_id":"6392842f66b3e4e3dec81e45","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aae0bdc7f1d397848b9669124ce94e1d2b74e007cdb95ed4d217f2da2f3baa68"},"ros-humble-rcl-lifecycle-5.3.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-lifecycle-msgs","ros-humble-rcl","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675690626253,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"903fc5b98125109cea0c08d86ba0bfb7","name":"ros-humble-rcl-lifecycle","requires":[],"size":34625,"version":"5.3.2","binstar":{"package_id":"6392842f66b3e4e3dec81e45","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86c110fe5c081d0850387b2f045c49d628a9333f7bdc5d10e926bc49a1481c8d"},"ros-humble-libstatistics-collector-1.3.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-rcl","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-statistics-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670546422073,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d1e779e91cc21ecbad43bca0f1df3d85","name":"ros-humble-libstatistics-collector","requires":[],"size":29960,"version":"1.3.0","binstar":{"package_id":"6392843146f81babca007bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a8a4bace5b148221862b1746b0b510b75d5a8f60f48d5b97bad872aa08fced8"},"ros-humble-libstatistics-collector-1.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-statistics-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675690591965,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"64a12e7ab8ee9f3b46915e3c7707a765","name":"ros-humble-libstatistics-collector","requires":[],"size":32198,"version":"1.3.0","binstar":{"package_id":"6392843146f81babca007bf2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9bba89836445d87bcf7155374a930106898f4ac547e3fc5b2913afa1b866a58a"},"ros-humble-rclpy-3.3.5-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-builtin-interfaces","ros-humble-rcl","ros-humble-rcl-action","ros-humble-rcl-interfaces","ros-humble-rcl-lifecycle","ros-humble-rcl-logging-interface","ros-humble-rcl-yaml-param-parser","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-rosidl-runtime-c","ros-humble-rpyutils","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670546867580,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"07e06d66bd8235854358b3c54ed1c951","name":"ros-humble-rclpy","requires":[],"size":467974,"version":"3.3.5","binstar":{"package_id":"639285b646f81babca010d54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"421acaef7ed50fd2b8010667fa42f4cfcd1b7f07fbe2d477252a120bfcd1e00e"},"ros-humble-rclpy-3.3.7-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-builtin-interfaces","ros-humble-rcl","ros-humble-rcl-action","ros-humble-rcl-interfaces","ros-humble-rcl-lifecycle","ros-humble-rcl-logging-interface","ros-humble-rcl-yaml-param-parser","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-rosidl-runtime-c","ros-humble-rpyutils","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691043243,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e14fec0690d45cc17bfdafa6f18b27f0","name":"ros-humble-rclpy","requires":[],"size":589885,"version":"3.3.7","binstar":{"package_id":"639285b646f81babca010d54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8cc0e815e40b6fb221750463bd2eed037797f085c1644af34922d7dd18aba95"},"ros-humble-rclcpp-16.0.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-builtin-interfaces","ros-humble-libstatistics-collector","ros-humble-rcl","ros-humble-rcl-interfaces","ros-humble-rcl-yaml-param-parser","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-statistics-msgs","ros-humble-tracetools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670546764784,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a4eaded8461ce906d111098fa0a4ebca","name":"ros-humble-rclcpp","requires":[],"size":894591,"version":"16.0.2","binstar":{"package_id":"639285b7e6a2f79ab8350cc6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"060ddadc90021ea55fbc450d6769736cc0f93345ffe1e529b5614454c424119e"},"ros-humble-rclcpp-16.0.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-builtin-interfaces","ros-humble-libstatistics-collector","ros-humble-rcl","ros-humble-rcl-interfaces","ros-humble-rcl-yaml-param-parser","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-c","ros-humble-rosidl-typesupport-cpp","ros-humble-statistics-msgs","ros-humble-tracetools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675690935406,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2354a0675b4ad344a314e718784f99e5","name":"ros-humble-rclcpp","requires":[],"size":903175,"version":"16.0.3","binstar":{"package_id":"639285b7e6a2f79ab8350cc6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5078c5cf665674ec48fd1278349094e361c82e9e600c247ccfa443d9f1a24832"},"ros-humble-bno055-0.2.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pyserial","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547092370,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"45695c89a23320bc22e5850c0b399b84","name":"ros-humble-bno055","requires":[],"size":29178,"version":"0.2.0","binstar":{"package_id":"639286972dd706205568dd8e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"21456fe5b7ec4803a940c603278f3ecee0ebb504fcc3a4d77f88dc4ad1aa8c87"},"ros-humble-bno055-0.4.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pyserial","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691219759,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"61e57a7ed2fdbe3910d0795a89c8908e","name":"ros-humble-bno055","requires":[],"size":48103,"version":"0.4.1","binstar":{"package_id":"639286972dd706205568dd8e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2addf54ec66923768c9769eaeb755c36597cb2ec8de2a5b944debe664cfb41f"},"ros-humble-examples-rclpy-executors-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547143366,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2e5f27153c7385571f7892a7332b7f4e","name":"ros-humble-examples-rclpy-executors","requires":[],"size":16402,"version":"0.15.1","binstar":{"package_id":"639286c966b3e4e3dec90d4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad7b23a1a4af0aace6063b097e345dd8136763b8690abe663a3f204d8709174c"},"ros-humble-examples-rclpy-executors-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691311575,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"62804846561f8ba127736fdf8e68df3e","name":"ros-humble-examples-rclpy-executors","requires":[],"size":22798,"version":"0.15.1","binstar":{"package_id":"639286c966b3e4e3dec90d4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34acee6a537e891a7d6a2696534e01f1384da3f23a9e4e9c2eb972b00c17044d"},"ros-humble-examples-rclpy-minimal-client-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547082524,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3574eb4b5138e4cda668ecdd7a47ace3","name":"ros-humble-examples-rclpy-minimal-client","requires":[],"size":12279,"version":"0.15.1","binstar":{"package_id":"639286ca54e9ace854cb8bf3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"85ea2b3f46bd00c594ca10abdbfe3570e0ec1c3f0d17194d1b30a356c3752228"},"ros-humble-examples-rclpy-minimal-client-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691238659,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d1ea7b201e2d128b2b849fa22548c158","name":"ros-humble-examples-rclpy-minimal-client","requires":[],"size":16592,"version":"0.15.1","binstar":{"package_id":"639286ca54e9ace854cb8bf3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9224de14e323b6a0815ed789eefc7d359ffdaabb1dcb22c3cb4ad10d396880f9"},"ros-humble-examples-rclpy-minimal-action-server-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547102807,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1338f7150c25dfbabe85a309b068a83a","name":"ros-humble-examples-rclpy-minimal-action-server","requires":[],"size":15546,"version":"0.15.1","binstar":{"package_id":"639286cc46f81babca015d88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5c549bbf23fdc0175e4df00a652ce233e83a8d0e9279af94c680fc18a0965da9"},"ros-humble-examples-rclpy-minimal-action-server-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691262784,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5cca51b1ccacd6184e6f770d800b2681","name":"ros-humble-examples-rclpy-minimal-action-server","requires":[],"size":22756,"version":"0.15.1","binstar":{"package_id":"639286cc46f81babca015d88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4058861076333b90f7726f77e3a39a43aaa3cb26525979cbe16f56c681af657f"},"ros-humble-examples-rclpy-minimal-publisher-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547060843,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"352334ac633717c0f37a65f1f525f138","name":"ros-humble-examples-rclpy-minimal-publisher","requires":[],"size":10884,"version":"0.15.1","binstar":{"package_id":"639286cdead2dcc8c2e690cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f030b2b4bdae938e00c1b56f93cfad095fda8fc3b3611a8b75d43a4c25757978"},"ros-humble-examples-rclpy-minimal-publisher-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691210941,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"027cab962e6d279d2cc46719ccf1e6d9","name":"ros-humble-examples-rclpy-minimal-publisher","requires":[],"size":14360,"version":"0.15.1","binstar":{"package_id":"639286cdead2dcc8c2e690cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"51356c05fd03efa0067030a33c954f001c4e8c312379f432fd6de8d372c20a85"},"ros-humble-examples-rclpy-minimal-action-client-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547123417,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d13f2b801b64256d44e2f4f73629a1b4","name":"ros-humble-examples-rclpy-minimal-action-client","requires":[],"size":14359,"version":"0.15.1","binstar":{"package_id":"639286cfd9a997aae7275143","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e65a522f9f44bf06cc8595893b77f65ac97dc2070940603a4959700cc6dee734"},"ros-humble-examples-rclpy-minimal-action-client-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691287150,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"56ba8d0d8f288561c2d2bc0328c851ab","name":"ros-humble-examples-rclpy-minimal-action-client","requires":[],"size":20519,"version":"0.15.1","binstar":{"package_id":"639286cfd9a997aae7275143","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82d3824bccff21bbc78b26d2a3316fd79d234b1eb7437f482425b3927613b8e5"},"ros-humble-io-context-1.2.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["asio","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-udp-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547101383,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c64d14a9bb030ada7942bb13348839a4","name":"ros-humble-io-context","requires":[],"size":65525,"version":"1.2.0","binstar":{"package_id":"639286e2bbbc2b1e9638ecb1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12110fe3cf8c236531d20de550a741cbb335b14c2fdf041d3b56a016e748cae5"},"ros-humble-io-context-1.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["asio","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-udp-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691267638,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"baff68b0ae27ee23cf24cf75aa94e0a5","name":"ros-humble-io-context","requires":[],"size":67897,"version":"1.2.0","binstar":{"package_id":"639286e2bbbc2b1e9638ecb1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a151ef77a5c41bff999e6a208e21dd388a68d0bcfe49e7d04e245a4f05ffa3bc"},"ros-humble-key-teleop-1.3.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547168085,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1d2344cabc5f2e252365585760b2dd15","name":"ros-humble-key-teleop","requires":[],"size":13400,"version":"1.3.0","binstar":{"package_id":"639286e366b3e4e3dec91337","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"825cbe0d98dbe7270b60815da693934896c4165a9c3ee9fc618203dca9dc7410"},"ros-humble-key-teleop-1.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691348835,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"feeaf3aa12e6cf393902f4b69225a5b0","name":"ros-humble-key-teleop","requires":[],"size":18561,"version":"1.3.0","binstar":{"package_id":"639286e366b3e4e3dec91337","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bef7c9aefaf75d974564681a4f40bb61723c9cad153ded90abbf364001668673"},"ros-humble-turtlebot3-example-2.1.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","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.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547146769,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"94dee99e793a46f9598f62cc553ac6a0","name":"ros-humble-turtlebot3-example","requires":[],"size":19694,"version":"2.1.5","binstar":{"package_id":"639286e46e0eca100b4a1681","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7dbf4e40d934d1b1b11388a7a11a2d1002a90911f0e027746ce97d9ba3dec4bf"},"ros-humble-turtlebot3-example-2.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-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":"py310h7c61026_3","timestamp":1675691322394,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0582108f89830a028922bbdf3da075df","name":"ros-humble-turtlebot3-example","requires":[],"size":28917,"version":"2.1.5","binstar":{"package_id":"639286e46e0eca100b4a1681","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d7c167f90e49aa05010439b94e5162dd7fa481b8d9bb174be29cdaa39e6b4b44"},"ros-humble-action-tutorials-py-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-tutorials-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547070639,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"59af44a8f15d2df752b3ba9f479d1bb2","name":"ros-humble-action-tutorials-py","requires":[],"size":10537,"version":"0.20.2","binstar":{"package_id":"639286e6bbbc2b1e9638ed33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ba5d014077c50f2446cf65c36d30c6a3c2df2a4d52f32045a1518a3dca163b5e"},"ros-humble-action-tutorials-py-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-tutorials-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691229924,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a0a168eab293d274ddb4dd8f2a8a580b","name":"ros-humble-action-tutorials-py","requires":[],"size":14703,"version":"0.20.3","binstar":{"package_id":"639286e6bbbc2b1e9638ed33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"54906bb78e2f43175d95e25b938da620f3c3b22ba856870bcc673e9d8dc3c6d4"},"ros-humble-turtlebot3-teleop-2.1.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547122879,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a19a7685e20b968a4c221115a4843c69","name":"ros-humble-turtlebot3-teleop","requires":[],"size":11612,"version":"2.1.5","binstar":{"package_id":"639286e7a2b71210080fc9b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"85b117506dc28ff9a8033532e08234d5bb4026a16c64ccf76156fab948fe0bd6"},"ros-humble-turtlebot3-teleop-2.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691294116,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"49e85634ce3df34de98d503a7976402e","name":"ros-humble-turtlebot3-teleop","requires":[],"size":15825,"version":"2.1.5","binstar":{"package_id":"639286e7a2b71210080fc9b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee72656994aa5706061bd0e91025ed703167638923f1c91deac7be2ba6650fe7"},"ros-humble-dummy-map-server-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547166357,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bdf82752cd43ba16b13d748e926c1773","name":"ros-humble-dummy-map-server","requires":[],"size":63227,"version":"0.20.2","binstar":{"package_id":"6392870a46bec18b89eae519","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f91170b62613bc8e958cbc625ec1027827b3d158594bca468805a3172c394a00"},"ros-humble-dummy-map-server-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691348198,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9bea55cd25b93d62a0d128fb99740d36","name":"ros-humble-dummy-map-server","requires":[],"size":65614,"version":"0.20.3","binstar":{"package_id":"6392870a46bec18b89eae519","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b4679537872b56a30c406124a906f39717e9592f08c76aaa020219a25a657eca"},"ros-humble-tlsf-cpp-0.13.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tlsf","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547103564,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d20dd3479f281510d3effbd5ab4e3693","name":"ros-humble-tlsf-cpp","requires":[],"size":159400,"version":"0.13.0","binstar":{"package_id":"6392870bd9a997aae7276fbe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6bcb6eaaded5c14ce79eb0ca73d4991a0696ed1cb360c10930300715ccfa7ef2"},"ros-humble-tlsf-cpp-0.13.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tlsf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691266271,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4dddc91fb2232812fa66fa7ab96767e3","name":"ros-humble-tlsf-cpp","requires":[],"size":161358,"version":"0.13.0","binstar":{"package_id":"6392870bd9a997aae7276fbe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c9cdae0aa5e3435a743243d0d9cf20efe91a7b3b04c6c7d4334666540b68c1b4"},"ros-humble-dummy-sensors-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547136840,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"df732044bf8f3e217358938b312ee519","name":"ros-humble-dummy-sensors","requires":[],"size":94953,"version":"0.20.2","binstar":{"package_id":"6392870d46bec18b89eae543","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"793d5edfd57dad984b0e57dda1faa69673c701109bf0d5b4b3c5e1609ce3be19"},"ros-humble-dummy-sensors-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691308122,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c7acc6c8b9c43373cc2a88706a05b910","name":"ros-humble-dummy-sensors","requires":[],"size":97193,"version":"0.20.3","binstar":{"package_id":"6392870d46bec18b89eae543","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cd271732df606495ba281676366514b8d5632303977f6ddd08ce951f94c2469f"},"ros-humble-hls-lfcd-lds-driver-2.0.4-py310hd15adc0_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd15adc0_2","timestamp":1670547207910,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"559257c7739e0694d43beee5e4bcf28c","name":"ros-humble-hls-lfcd-lds-driver","requires":[],"size":107450,"version":"2.0.4","binstar":{"package_id":"6392870d46bec18b89eae551","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c60ef90047b1a783fc8838f9f65034d7866cb33294b7f1c20da4236fa708553e"},"ros-humble-hls-lfcd-lds-driver-2.0.4-py310he1f1850_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310he1f1850_3","timestamp":1675691401123,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"553617ba6238b531b3a2ad8375574cd3","name":"ros-humble-hls-lfcd-lds-driver","requires":[],"size":110079,"version":"2.0.4","binstar":{"package_id":"6392870d46bec18b89eae551","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eab5ff9e45243d8e4f09e8b803f0e8e826b8414d5e9961301eecf3e1d5d22f77"},"ros-humble-teleop-twist-keyboard-2.3.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547059170,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3e337b6136ed9a587e79c15ef045ecd3","name":"ros-humble-teleop-twist-keyboard","requires":[],"size":11420,"version":"2.3.2","binstar":{"package_id":"6392870f54e9ace854cb9099","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2bddd15e5dc887cf87a0518eba4d8854b3423803920ef1386f5c563d906e1e5e"},"ros-humble-teleop-twist-keyboard-2.3.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691211991,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7a1f0063588fb3a4209fb7ad5af3fb7f","name":"ros-humble-teleop-twist-keyboard","requires":[],"size":14852,"version":"2.3.2","binstar":{"package_id":"6392870f54e9ace854cb9099","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ffc60cea087af96ab92d3ba8e235584b5c4ec78016aa3327bc6c7275fcb4033"},"ros-humble-examples-rclcpp-minimal-client-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547216233,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1b2e2fddbaeb1bfa87735181eb2d3cf1","name":"ros-humble-examples-rclcpp-minimal-client","requires":[],"size":37049,"version":"0.15.1","binstar":{"package_id":"6392871266b3e4e3dec93c40","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3b9f205077bb59427946e3c7f4d06717009532bde608cbe05e2b194a4d4db096"},"ros-humble-examples-rclcpp-minimal-client-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691472938,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d187b73052610ef522ffebb949dc63fe","name":"ros-humble-examples-rclcpp-minimal-client","requires":[],"size":39465,"version":"0.15.1","binstar":{"package_id":"6392871266b3e4e3dec93c40","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b66abf2f7de620fa87486f50e73638ccaae54e77162aa30e49f53b3ed438882"},"ros-humble-examples-rclcpp-minimal-publisher-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547186882,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c3b0d4274f4b193fa472d2ed021dc78f","name":"ros-humble-examples-rclcpp-minimal-publisher","requires":[],"size":224199,"version":"0.15.1","binstar":{"package_id":"63928713114c465c98bd4c10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79e91e2ffe737d6fe3b4eff3eb70a4f40092d6472945a94ee33b7867e69fd95d"},"ros-humble-examples-rclcpp-minimal-publisher-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691426597,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8bdd16ce668b4d34adee59fe9f901c5a","name":"ros-humble-examples-rclcpp-minimal-publisher","requires":[],"size":227182,"version":"0.15.1","binstar":{"package_id":"63928713114c465c98bd4c10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2acd217b8cf55d1b37e540deb87b1a75043e3c02f078ab726ed3fb240e653e4b"},"ros-humble-examples-rclcpp-minimal-timer-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547110508,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ad9730e1837c85cbfbbbf6cf3eef89f0","name":"ros-humble-examples-rclcpp-minimal-timer","requires":[],"size":26944,"version":"0.15.1","binstar":{"package_id":"639287134f66fd116f5b4b10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8adf83c37428e3d6d15667519753f8374015ca557c17b9547b910fd3db0f45b5"},"ros-humble-examples-rclcpp-minimal-timer-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691314335,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"658aabe35e426167fc0ccd710d06f8e7","name":"ros-humble-examples-rclcpp-minimal-timer","requires":[],"size":29215,"version":"0.15.1","binstar":{"package_id":"639287134f66fd116f5b4b10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b796fa8a888a46c0f43a9bb31c08bcb900307537c6293d7932b384083c3de8d6"},"ros-humble-examples-rclcpp-minimal-service-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547141157,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2a4b91a7e6f63cada21830da594eb693","name":"ros-humble-examples-rclcpp-minimal-service","requires":[],"size":33849,"version":"0.15.1","binstar":{"package_id":"63928714114c465c98bd4c26","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"263d005b4e225d0823320f0924b3168233c3ae07c58b4cb44cc21906922c1a41"},"ros-humble-examples-rclcpp-minimal-service-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691360272,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"799a6c9fa8fc664bf5573da551b4352f","name":"ros-humble-examples-rclcpp-minimal-service","requires":[],"size":36146,"version":"0.15.1","binstar":{"package_id":"63928714114c465c98bd4c26","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3439d20fb7a6781723a3dfe881ccd9425e784cc2d90a4e7b3276df2a534c770b"},"ros-humble-examples-rclcpp-multithreaded-executor-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547081090,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8f5af3e56bf6bbf28cc74395bc9f45f9","name":"ros-humble-examples-rclcpp-multithreaded-executor","requires":[],"size":140764,"version":"0.15.1","binstar":{"package_id":"63928715d9a997aae727775e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7039dc74ed1bf740816ca6ad3e04f78a5e55a9e3e2d26f459188bf1a354101b5"},"ros-humble-examples-rclcpp-multithreaded-executor-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691271264,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"127ebac561b611f5e591e90de9495d58","name":"ros-humble-examples-rclcpp-multithreaded-executor","requires":[],"size":142272,"version":"0.15.1","binstar":{"package_id":"63928715d9a997aae727775e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"97e6614deb3cde4bb7f64cff13099f808972618686835f97f1e3758fda3a4279"},"ros-humble-launch-ros-0.19.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-composition-interfaces","ros-humble-launch","ros-humble-lifecycle-msgs","ros-humble-osrf-pycommon","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547156827,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"931763dcfa6c966cf846a5ad6d01fb8d","name":"ros-humble-launch-ros","requires":[],"size":65680,"version":"0.19.3","binstar":{"package_id":"6392874f66b3e4e3dec95f75","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bdc1c04a0839ecd07da78f7500f618a18db3c92039d5434708e351b47e70823f"},"ros-humble-launch-ros-0.19.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-composition-interfaces","ros-humble-launch","ros-humble-lifecycle-msgs","ros-humble-osrf-pycommon","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691273092,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"08cf2caeeff487d3f28f21ca883a0ead","name":"ros-humble-launch-ros","requires":[],"size":107197,"version":"0.19.4","binstar":{"package_id":"6392874f66b3e4e3dec95f75","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e4b1d53da4b4c87587f9da54505a4131b5289a4deaeb9d366efe04530d4a45bf"},"ros-humble-tf2-py-0.25.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rpyutils","ros-humble-tf2","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547193575,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9dbba803b80fc1e61f70cb62bec623ab","name":"ros-humble-tf2-py","requires":[],"size":33675,"version":"0.25.1","binstar":{"package_id":"639287521f9cf5f92ad9a80e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"256ad46bc108bf93a805fc91d306b9e4c7b968a7d650de5c57f468d0a8f06493"},"ros-humble-tf2-py-0.25.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rpyutils","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691308880,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"afeaf835c9048fd32fa5c9c11ea149f4","name":"ros-humble-tf2-py","requires":[],"size":36158,"version":"0.25.2","binstar":{"package_id":"639287521f9cf5f92ad9a80e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"496e5a80c9a150d2d05d980bbb4f0adc3fe54e868cca4e16233558d37df3be9a"},"ros-humble-rclcpp-lifecycle-16.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-lifecycle-msgs","ros-humble-rcl-lifecycle","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547126445,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1f97dbd61edc10869e408f8765a04ebc","name":"ros-humble-rclcpp-lifecycle","requires":[],"size":97757,"version":"16.0.2","binstar":{"package_id":"63928754ead2dcc8c2e7423f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da667916b25d88f091f17dbf39bffb558471520c3d67de18cfa957b4467de5fd"},"ros-humble-rclcpp-lifecycle-16.0.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-lifecycle-msgs","ros-humble-rcl-lifecycle","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosidl-typesupport-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691243335,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"67fa521771fad27e22b56703cee456ce","name":"ros-humble-rclcpp-lifecycle","requires":[],"size":100079,"version":"16.0.3","binstar":{"package_id":"63928754ead2dcc8c2e7423f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"83a9ed8fbb80105150c0dec896b1e170ea1a188c2d12f996295b5a7242327e4e"},"ros-humble-rosbag2-test-common-0.15.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547143593,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d9177053584de412c8dc45d3af84a91d","name":"ros-humble-rosbag2-test-common","requires":[],"size":18329,"version":"0.15.3","binstar":{"package_id":"639287552b3749bdb867a0b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad3a01bbfac19b79954555f6b8e8a48f6407f731b1acca08b1efea67cc304618"},"ros-humble-rosbag2-test-common-0.15.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691309113,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d0b76572f5a28f1540fdb701b3d08935","name":"ros-humble-rosbag2-test-common","requires":[],"size":20689,"version":"0.15.4","binstar":{"package_id":"639287552b3749bdb867a0b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7a1caa327a6d877a80115b66909bcf0b446f90f3b6fdef1f9f54468cb9dae96"},"ros-humble-demo-nodes-py-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547058760,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b4b220a7db7c5cc19c5cb0c22f8a2570","name":"ros-humble-demo-nodes-py","requires":[],"size":16581,"version":"0.20.2","binstar":{"package_id":"639287564f66fd116f5b7d41","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c6e647bee6fcdebdde6e6cb3d856b33ca86a12940e5883272e2a0d407bad3b8"},"ros-humble-demo-nodes-py-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691215236,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"58d5e146a354e414ee6c04d31012a705","name":"ros-humble-demo-nodes-py","requires":[],"size":22995,"version":"0.20.3","binstar":{"package_id":"639287564f66fd116f5b7d41","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0671a4ec294e05c9f19bdd579abfc514b6cecc03583fd24bf14927f27191f1b7"},"ros-humble-ros2cli-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["argcomplete","importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","netifaces","packaging","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547105527,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c957f3b4fd3ca8cb788eaa65605bd979","name":"ros-humble-ros2cli","requires":[],"size":42608,"version":"0.18.4","binstar":{"package_id":"6392875766b3e4e3dec96390","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb2054c7a8b4d222a566b48b7b7f4497ca2932e3c3d443f169a0cb34ed2f1220"},"ros-humble-ros2cli-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["argcomplete","importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","netifaces","numpy >=1.21.6,<2.0a0","packaging","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691261861,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"360db56d5b9116c40b4a99a9f2791cf6","name":"ros-humble-ros2cli","requires":[],"size":67026,"version":"0.18.5","binstar":{"package_id":"6392875766b3e4e3dec96390","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0fc1dd2023e8dee8a7374086eb18ae58ad959bffc2415c7ccc1909d32a64b025"},"ros-humble-rclcpp-action-16.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ament-cmake","ros-humble-rcl-action","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547275268,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b4d2590202e7bb575a0d903d2dd7ffc8","name":"ros-humble-rclcpp-action","requires":[],"size":87799,"version":"16.0.2","binstar":{"package_id":"63928757a2b71210080fe617","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"707dfa84797c0c4ebb61df0f7665c28cd486501b7b4f8225ad37cdfd2a9e7b01"},"ros-humble-rclcpp-action-16.0.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ament-cmake","ros-humble-rcl-action","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-c","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691389364,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ac6d16e527afc022027fa127dcdcefbc","name":"ros-humble-rclcpp-action","requires":[],"size":90169,"version":"16.0.3","binstar":{"package_id":"63928757a2b71210080fe617","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a238e64b733227b44ecb8a2d2d187092ab9cbd1eb3dc4975c9e2597748050a3a"},"ros-humble-examples-rclpy-minimal-service-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547283921,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d6bdc795a765590362b6ccdf1e9d20d2","name":"ros-humble-examples-rclpy-minimal-service","requires":[],"size":9774,"version":"0.15.1","binstar":{"package_id":"6392875846f81babca018b2e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"895f6bd68de757c255495388232e8c56a360db615f33a2f84c3792d011926ec8"},"ros-humble-examples-rclpy-minimal-service-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691455541,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"889ee5e48632fa528014fc069d653cf2","name":"ros-humble-examples-rclpy-minimal-service","requires":[],"size":12779,"version":"0.15.1","binstar":{"package_id":"6392875846f81babca018b2e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"292645db1be206eebd2b9834b8ef15ce43c477b6f564c90bf83de3c9615162b2"},"ros-humble-laser-geometry-2.4.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy","python","python_abi 3.10.*","ros-humble-eigen3-cmake-module","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-sensor-msgs-py","ros-humble-tf2","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547209559,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"158160762866a0fe25f7310eba743d43","name":"ros-humble-laser-geometry","requires":[],"size":34942,"version":"2.4.0","binstar":{"package_id":"639287592dd706205568fc57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ca7f9a4cdc22b757c061240e7d72aed58b55f9abb20a8870f4eb9cd6837a676"},"ros-humble-laser-geometry-2.4.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-sensor-msgs-py","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691387826,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fdccd18eba28b6ae220ec44386a84ebc","name":"ros-humble-laser-geometry","requires":[],"size":40454,"version":"2.4.0","binstar":{"package_id":"639287592dd706205568fc57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8467f38b31f832d7a5fe2723edebf31099aa916a9278334d68e3b1fcc96f573"},"ros-humble-rclcpp-components-16.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-class-loader","ros-humble-composition-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547239724,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5a8fbd0ca9f8a95df943d441325a7903","name":"ros-humble-rclcpp-components","requires":[],"size":111051,"version":"16.0.2","binstar":{"package_id":"63928759ead2dcc8c2e742de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7aff20e4baf26b7cb32cc05897c200aa02f8bbf00a6721a1f269b5f2425ff914"},"ros-humble-rclcpp-components-16.0.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-class-loader","ros-humble-composition-interfaces","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691353088,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"68d2f11c9c3532bc890375759d80775f","name":"ros-humble-rclcpp-components","requires":[],"size":113532,"version":"16.0.3","binstar":{"package_id":"63928759ead2dcc8c2e742de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb4b6d9650197c9f985bcb9062a0ae86472c93cc9fb122f89a64e782e176f504"},"ros-humble-intra-process-demo-0.20.2-py310h39d476f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h39d476f_2","timestamp":1670547239722,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"407e3613b1dc634202dd2e8576e5b681","name":"ros-humble-intra-process-demo","requires":[],"size":774852,"version":"0.20.2","binstar":{"package_id":"6392875a46f81babca018b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd854d78ae9ab831f5ab2b620842b8734f9c3c958da1222b8ca7e5a4c7f42812"},"ros-humble-intra-process-demo-0.20.3-py310h0699a7d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h0699a7d_3","timestamp":1675691401757,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"20dc0d65d8fabf1af4d5917b25e8bcb1","name":"ros-humble-intra-process-demo","requires":[],"size":778858,"version":"0.20.3","binstar":{"package_id":"6392875a46f81babca018b74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c3c0e8376bd7bf317111b3f59ebb66a7b292896f29d4edaf592aad6ee32dc896"},"ros-humble-urdfdom-py-1.2.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","python","python_abi 3.10.*","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547170822,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"828a395dfdbcdb3e9d4c6eca93ecca40","name":"ros-humble-urdfdom-py","requires":[],"size":32593,"version":"1.2.0","binstar":{"package_id":"6392875b66b3e4e3dec965de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"089bd84570ec4de85f55bb473ca691c7995042226c3254e0d0230bdb75405b4d"},"ros-humble-urdfdom-py-1.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691340127,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"75d5edad2170be387507c5fca0a5004f","name":"ros-humble-urdfdom-py","requires":[],"size":55840,"version":"1.2.0","binstar":{"package_id":"6392875b66b3e4e3dec965de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"311578ad5426c34edf312d2ecce204c544d315f3ab4c4d953af40bd4228f874a"},"ros-humble-examples-rclpy-minimal-subscriber-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547263565,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"591612e4eafaeefde902fa25888ade72","name":"ros-humble-examples-rclpy-minimal-subscriber","requires":[],"size":10471,"version":"0.15.1","binstar":{"package_id":"6392875c358aafdd3d8e8aa0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f7c60a8540b96819f7821ed34ffacfe9740ab4261bb6ad0f314e2cd1c895183"},"ros-humble-examples-rclpy-minimal-subscriber-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691430172,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"084ddd05e0c45c9008f51b97053f3e5d","name":"ros-humble-examples-rclpy-minimal-subscriber","requires":[],"size":13695,"version":"0.15.1","binstar":{"package_id":"6392875c358aafdd3d8e8aa0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"31de0c0bf0f16a7cb23da78373c0c918ef09fb12078b4e408b9f833d6c91459d"},"ros-humble-geometric-shapes-2.1.3-py310h122d472_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","boost-cpp","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","octomap >=1.9.8,<1.10.0a0","python","python_abi 3.10.*","qhull >=2020.2,<2020.3.0a0","ros-humble-console-bridge-vendor","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-random-numbers","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-shape-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h122d472_2","timestamp":1670547281790,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"558f8657e8cb2292f95c0d397a1c94fa","name":"ros-humble-geometric-shapes","requires":[],"size":112003,"version":"2.1.3","binstar":{"package_id":"6392875c4f66fd116f5b7e6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd18dd0dff282ad1d67ee0362382594802bcce2cc693b38b2d8221972a43be39"},"ros-humble-geometric-shapes-2.1.3-py310h122d472_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","boost-cpp","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","octomap >=1.9.8,<1.10.0a0","python","python_abi 3.10.* *_cp310","qhull >=2020.2,<2020.3.0a0","ros-humble-console-bridge-vendor","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-random-numbers","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-shape-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h122d472_3","timestamp":1675691468531,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cd89c2df4ffc679f632a58b7982ac476","name":"ros-humble-geometric-shapes","requires":[],"size":114286,"version":"2.1.3","binstar":{"package_id":"6392875c4f66fd116f5b7e6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5b9b95224763e533e3d87bba5ce7275dce5eb24c1496eb5d4a08811aaf297e0"},"ros-humble-quality-of-service-demo-py-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547079252,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"09949892e941707840f27a6cd239c513","name":"ros-humble-quality-of-service-demo-py","requires":[],"size":21131,"version":"0.20.2","binstar":{"package_id":"6392875dd4690f71772d0a16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e94a7570f08c59e4ec290a99a9bcd18eb1bdd0b887aebb7c50d714f009f61dd"},"ros-humble-quality-of-service-demo-py-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691240537,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f0befac9647c90286fb6cfb059da5d82","name":"ros-humble-quality-of-service-demo-py","requires":[],"size":31237,"version":"0.20.3","binstar":{"package_id":"6392875dd4690f71772d0a16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9753978baefe65baf41bbe58048582e0fff0ce9026a3969a656ea08157d98a86"},"ros-humble-camera-calibration-parsers-3.1.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547078695,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"98df75c0a4932812f798a7e9a777536d","name":"ros-humble-camera-calibration-parsers","requires":[],"size":76227,"version":"3.1.5","binstar":{"package_id":"63928796d9a997aae727924e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6034abe58e190fb8e9665574b970f20f45a063f71fe313a42cfbf8ca357484be"},"ros-humble-camera-calibration-parsers-3.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691326705,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"998dd615c45711f6f1a4046428e0aedd","name":"ros-humble-camera-calibration-parsers","requires":[],"size":78532,"version":"3.1.5","binstar":{"package_id":"63928796d9a997aae727924e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f0a99deffd49e4c1cf793fe2f04d89efbd67ca5f2cf2270c65fcb7b78b9a0ce6"},"ros-humble-rqt-gui-cpp-1.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-pluginlib","ros-humble-qt-gui","ros-humble-qt-gui-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h413e681_2","timestamp":1670547208665,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d35b126fe5cfcc84746c5b23ba1f404e","name":"ros-humble-rqt-gui-cpp","requires":[],"size":143165,"version":"1.1.4","binstar":{"package_id":"6392879746bec18b89eaf720","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27564e260da73f8a61c9875ecea44f581dcf5d6b1265aa7afa1592ee97a92b90"},"ros-humble-rqt-gui-cpp-1.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-pluginlib","ros-humble-qt-gui","ros-humble-qt-gui-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675691399958,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a4a5562b4b04bfade88ec54160f1b73f","name":"ros-humble-rqt-gui-cpp","requires":[],"size":147258,"version":"1.1.4","binstar":{"package_id":"6392879746bec18b89eaf720","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4129190b6ea0f1debdd3a7c9f84ee72a86db5d1e2ebf5fab82788fb769f4eec2"},"ros-humble-ros2-controllers-test-nodes-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547235138,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9c50f03211e7a1b34f3afb0a15555c79","name":"ros-humble-ros2-controllers-test-nodes","requires":[],"size":13707,"version":"2.15.0","binstar":{"package_id":"639287992b3749bdb867a42c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"89f3ac8fc4a038ebedd8ee48b9046a96625657e8a495a65ec4641a9aeb28d8e8"},"ros-humble-ros2-controllers-test-nodes-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691434721,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1a5906366c6a4149204da9a1f1739675","name":"ros-humble-ros2-controllers-test-nodes","requires":[],"size":20113,"version":"2.16.1","binstar":{"package_id":"639287992b3749bdb867a42c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8fda6bea1a56006a98a944f92d0b26b00b6cb47fa0682744861b522aba6201a8"},"ros-humble-filters-2.1.0-py310hd15adc0_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd15adc0_2","timestamp":1670547126497,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"17ca45a1283418dab4bee8cb58a21260","name":"ros-humble-filters","requires":[],"size":85429,"version":"2.1.0","binstar":{"package_id":"6392879ae6a2f79ab835423c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d96732a2fe535ca927309a284e144d1e80e06e49b14d497b62e5bd603c8d423"},"ros-humble-filters-2.1.0-py310he1f1850_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310he1f1850_3","timestamp":1675691480680,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"de8fa7417c365fedbdc9f17a23974811","name":"ros-humble-filters","requires":[],"size":87752,"version":"2.1.0","binstar":{"package_id":"6392879ae6a2f79ab835423c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf444204676258d2a36351212d642ef5bbce8ba24a54061793c400616ffdfcec"},"ros-humble-ros-gz-sim-0.244.9-py310ha2dfb7d_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gflags >=2.2.2,<2.3.0a0","libgcc-ng >=12","libgcc-ng >=12","libignition-gazebo6 >=6.12.0,<7.0a0","libignition-math6 >=6.13.0,<7.0a0","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310ha2dfb7d_2","timestamp":1670547346419,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"95fb4815e02d8964c2255f05e962558c","name":"ros-humble-ros-gz-sim","requires":[],"size":212759,"version":"0.244.9","binstar":{"package_id":"6392879bd9a997aae7279355","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3794b81cdb4337b7fd6745a682dd12c81ec785dfb1679d29ba4fdee1a2c47392"},"ros-humble-ros-gz-sim-0.244.9-py310h05deeee_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gflags >=2.2.2,<2.3.0a0","libgcc-ng >=12","libgcc-ng >=12","libignition-gazebo6 >=6.12.0,<7.0a0","libignition-math6 >=6.13.0,<7.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h05deeee_3","timestamp":1675691579391,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"839c75884f103bd39d6f00582be2a276","name":"ros-humble-ros-gz-sim","requires":[],"size":220322,"version":"0.244.9","binstar":{"package_id":"6392879bd9a997aae7279355","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa3bbc04b54086cd1db8ac08527da3402a4765baebb59b5bab7647f613a872df"},"ros-humble-behaviortree-cpp-v3-3.8.0-py310hd523a19_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","boost-cpp","cppzmq","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","ncurses >=6.3,<7.0a0","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","zeromq >=4.3.4,<4.4.0a0"],"build":"py310hd523a19_2","timestamp":1670547358693,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6824562a7fabd473c44d731dc824939a","name":"ros-humble-behaviortree-cpp-v3","requires":[],"size":379432,"version":"3.8.0","binstar":{"package_id":"6392881eead2dcc8c2e78ac7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f1d8ee9a255e7e210cda0741c2de1897ea459cc7fc5f95a27fb386973d2125f9"},"ros-humble-behaviortree-cpp-v3-3.8.2-py310h7db75e8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","boost-cpp","cppzmq","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","ncurses >=6.3,<7.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","zeromq >=4.3.4,<4.4.0a0"],"build":"py310h7db75e8_3","timestamp":1675691350849,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2c9b5eeba158219e8a9780a7e60fd6d9","name":"ros-humble-behaviortree-cpp-v3","requires":[],"size":384451,"version":"3.8.2","binstar":{"package_id":"6392881eead2dcc8c2e78ac7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6ce11431adfd691ba61682fc2b28ea41561b197b0a91d21fe94a6773b19b2b9e"},"ros-humble-rqt-py-common-1.1.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670547481887,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"320379cc067d7f5582433306b4e1bc57","name":"ros-humble-rqt-py-common","requires":[],"size":41545,"version":"1.1.4","binstar":{"package_id":"6392881f4f66fd116f5c0688","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"409f872e869498124a3f259fb2d24a92e2ccf7aeac9e35d56b4d53a12c52de04"},"ros-humble-rqt-py-common-1.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691268916,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"814c09bd20e988d60d39131bb8e6aa38","name":"ros-humble-rqt-py-common","requires":[],"size":65784,"version":"1.1.4","binstar":{"package_id":"6392881f4f66fd116f5c0688","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0451f70d04d6efa6c664719930a00cb5163014804f2e4c276a22f899b7056569"},"ros-humble-rsl-0.2.1-py310h24f1946_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","fmt >=9.1.0,<10.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h24f1946_2","timestamp":1670547148936,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0515de248d13dd7eb91b9805cdbb458b","name":"ros-humble-rsl","requires":[],"size":25605,"version":"0.2.1","binstar":{"package_id":"6392882066b3e4e3dec9ec93","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe22c59b2b88dc4fbaf1a4f6a15e45db775f003ffc102fe65a88b81b87ff754e"},"ros-humble-rsl-0.2.1-py310hf633daa_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","fmt >=9.1.0,<10.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hf633daa_3","timestamp":1675691227513,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ded1cd725881d930eaa7102da74a746f","name":"ros-humble-rsl","requires":[],"size":27894,"version":"0.2.1","binstar":{"package_id":"6392882066b3e4e3dec9ec93","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d89b093871ab6837381baf12dc5b47ca55f25e92e5a5918b804accbc2632485"},"ros-humble-launch-param-builder-0.1.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547184208,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d6d53676223e376ca00747800702dae6","name":"ros-humble-launch-param-builder","requires":[],"size":15009,"version":"0.1.1","binstar":{"package_id":"63928821959458a07d3ab59c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b41a44ff25e9fc316542517dca2a688f748b869013d71a5427700c3dffc46a4b"},"ros-humble-launch-param-builder-0.1.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691259112,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3213d6d08a17dc1f1a99364f2589592a","name":"ros-humble-launch-param-builder","requires":[],"size":18925,"version":"0.1.1","binstar":{"package_id":"63928821959458a07d3ab59c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7d24ec32c23bd670273efb6b05ca4f822e97259f9c76e639486ac284dba36f7a"},"ros-humble-rqt-gui-1.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547443433,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"24023c2e63a66da9cd01d5595fd08b8d","name":"ros-humble-rqt-gui","requires":[],"size":104349,"version":"1.1.4","binstar":{"package_id":"63928822e6a2f79ab8356d38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d64af4d1d2f4740ed9f0cb4f94ba5d1a48b45cd6639e8ac135271b89b94790de"},"ros-humble-rqt-gui-1.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691426360,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"19e2453e9260a1adbb97fe8db2183729","name":"ros-humble-rqt-gui","requires":[],"size":114447,"version":"1.1.4","binstar":{"package_id":"63928822e6a2f79ab8356d38","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58accd00f33fbaeb2ce1dd1a4834dd9f4312a4dd0027bf380c4392232cb2c4df"},"ros-humble-bondcpp-3.0.2-py310hda8390f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libuuid >=2.32.1,<3.0a0","python","python_abi 3.10.*","ros-humble-bond","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-smclib","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hda8390f_2","timestamp":1670547807051,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e6d5e7c46d0ffe8da55306512d01ac91","name":"ros-humble-bondcpp","requires":[],"size":181619,"version":"3.0.2","binstar":{"package_id":"6392896154e9ace854cd375c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8cc7f9db751afc96ae311783c55776221f0d1a7e43c7c019142d30684be96bfc"},"ros-humble-bondcpp-3.0.2-py310h69b2b4f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libuuid >=2.32.1,<3.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-bond","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-smclib","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h69b2b4f_3","timestamp":1675691917874,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ea4552ddf62d56c090b422e095ccdc1d","name":"ros-humble-bondcpp","requires":[],"size":184315,"version":"3.0.2","binstar":{"package_id":"6392896154e9ace854cd375c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5cd1aa3208248b38513685d8e5132edba0847a8695051887fb31223d8c582d09"},"ros-humble-tf2-ros-py-0.25.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-msgs","ros-humble-tf2-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547738563,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"96a5a3e24eb3bdfed1881a1c45437790","name":"ros-humble-tf2-ros-py","requires":[],"size":24906,"version":"0.25.1","binstar":{"package_id":"63928962e6a2f79ab835d5f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bad91ea8a72e9e1866666f352b317f7f750b82004a6a04d6bba0ade32ff1ec55"},"ros-humble-tf2-ros-py-0.25.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-msgs","ros-humble-tf2-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691834285,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"656559257fd5887f6c39ae0c8654d7d8","name":"ros-humble-tf2-ros-py","requires":[],"size":38397,"version":"0.25.2","binstar":{"package_id":"63928962e6a2f79ab835d5f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e0c4bcabd76052ea38d764ef15b1d5eab50a1997bd93e5863651ac858cd663be"},"ros-humble-nav2-common-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ament-cmake-core","ros-humble-launch","ros-humble-launch-ros","ros-humble-osrf-pycommon","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547760447,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8d22325d828395a463d61277d0458472","name":"ros-humble-nav2-common","requires":[],"size":17982,"version":"1.1.3","binstar":{"package_id":"63928963358aafdd3d8ec129","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"811b9e0b422560f61d3cd978100e767a8732d266777762eb8a4683c7b3f4253d"},"ros-humble-nav2-common-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-cmake-core","ros-humble-launch","ros-humble-launch-ros","ros-humble-osrf-pycommon","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691864102,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c8a33d3b5eb4e6fdc87efe4d3387f3d9","name":"ros-humble-nav2-common","requires":[],"size":25949,"version":"1.1.5","binstar":{"package_id":"63928963358aafdd3d8ec129","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5871cd85dd30eb4ba691f23c0cb807b20a7554b81e77dbedf8a8ad6f25cbc489"},"ros-humble-launch-testing-ros-0.19.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547714581,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f8e9fb27edead37521970e69e7d82e3e","name":"ros-humble-launch-testing-ros","requires":[],"size":26171,"version":"0.19.3","binstar":{"package_id":"63928963358aafdd3d8ec13d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61c4a55fd942b8fbbf69634cc6aafa8c4954216d4028a1288cc4c14e53466624"},"ros-humble-launch-testing-ros-0.19.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691804719,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8c562534b35320b6336693cc472c136c","name":"ros-humble-launch-testing-ros","requires":[],"size":36676,"version":"0.19.4","binstar":{"package_id":"63928963358aafdd3d8ec13d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46ab88117184db9955ecbfe95120786f61bc5c3d21e620b7a422f185b4e2b37e"},"ros-humble-message-filters-4.3.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547685792,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bd532fcf782ea4f5104e0181ea513a62","name":"ros-humble-message-filters","requires":[],"size":45422,"version":"4.3.2","binstar":{"package_id":"6392896466b3e4e3deca947b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ac9b6e5d7db6c97617a545fbff47cc9b91c87b650caf017cf9c3f350c9da5e6"},"ros-humble-message-filters-4.3.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rcutils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691770389,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4a08482b34a6c76cdce29582d8cb6962","name":"ros-humble-message-filters","requires":[],"size":52985,"version":"4.3.2","binstar":{"package_id":"6392896466b3e4e3deca947b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9ffeec0b992740a24a7fda7a261cd3a28da0839bc46c4c71c6ef11f52c58223a"},"ros-humble-rqt-gui-py-1.1.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-qt-gui","ros-humble-ros-workspace","ros-humble-rqt-gui","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547780760,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ff40883c401c12c16eed3f52f56f4a76","name":"ros-humble-rqt-gui-py","requires":[],"size":11538,"version":"1.1.4","binstar":{"package_id":"6392897b83c9be96eba70601","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d98c3d83395172e9d003345ba0778f4e632f7bc1e4d3b3ea70eb3a762d04e31a"},"ros-humble-rqt-gui-py-1.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-qt-gui","ros-humble-ros-workspace","ros-humble-rqt-gui","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691908098,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7bdc6281f16604c6c02cbedaf5295795","name":"ros-humble-rqt-gui-py","requires":[],"size":17105,"version":"1.1.4","binstar":{"package_id":"6392897b83c9be96eba70601","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5a71bff47b3cbe17790d7460dad11ef5a16f8af2a4c3c565a601d6fa81b2b642"},"ros-humble-realtime-tools-2.4.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547682005,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9f7f42c7652ebaf4bc43722d9c0484ae","name":"ros-humble-realtime-tools","requires":[],"size":27611,"version":"2.4.0","binstar":{"package_id":"6392897d46bec18b89ec0dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d0a185fc6b16a95cfcb783e35b53001594b0113a4cf54dd1a8773766fb69eeb6"},"ros-humble-realtime-tools-2.5.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691765495,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f841af052dc62c1adae563b8c0b168ec","name":"ros-humble-realtime-tools","requires":[],"size":30255,"version":"2.5.0","binstar":{"package_id":"6392897d46bec18b89ec0dc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f116b63ee1a1c4b4bcaf39178a1a10c3aeecbc066d809431a8fbae002ecef6e4"},"ros-humble-camera-info-manager-3.1.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-camera-calibration-parsers","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547833440,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f1875566015ec52cacb03bad6b5bd13f","name":"ros-humble-camera-info-manager","requires":[],"size":53573,"version":"3.1.5","binstar":{"package_id":"6392897da2b712100811f84f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d308e930f1242121715f6051b72c1e9e763acf028beeb8f1b8311670050ff8b"},"ros-humble-camera-info-manager-3.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-camera-calibration-parsers","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691785750,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b6be036621adfba9596b894736d4e0af","name":"ros-humble-camera-info-manager","requires":[],"size":55893,"version":"3.1.5","binstar":{"package_id":"6392897da2b712100811f84f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e005f6ea1ee48fc8d1913ef19397b4b505ae402e7e19b06676fb70583cccd074"},"ros-humble-ros2multicast-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547804785,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2fe3930d892a6a9f6f5aa118f7b01aa1","name":"ros-humble-ros2multicast","requires":[],"size":12044,"version":"0.18.4","binstar":{"package_id":"6392897e6a03c9fad26499ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe0373fd9670c19764d8494f87011ef49f60b40519e34e581613ea331fe87ab0"},"ros-humble-ros2multicast-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691936599,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4a68cfada97591af9dfe84719bf228f3","name":"ros-humble-ros2multicast","requires":[],"size":16717,"version":"0.18.5","binstar":{"package_id":"6392897e6a03c9fad26499ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b967959630ea126034b2a1b8646f705f1708e45d5e5f7125afb07254af99e961"},"ros-humble-ros2lifecycle-test-fixtures-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547721045,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d61e0346b9acb40e75ceae6d31764eb3","name":"ros-humble-ros2lifecycle-test-fixtures","requires":[],"size":19556,"version":"0.18.4","binstar":{"package_id":"6392897f2b3749bdb86863a1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f5bc6961b1a0b82dd839245835175bbf937915a7f083967ec943eb320abe051d"},"ros-humble-ros2lifecycle-test-fixtures-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691840094,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"69d67fb3f748056191fdde14a0b3e1c1","name":"ros-humble-ros2lifecycle-test-fixtures","requires":[],"size":21795,"version":"0.18.5","binstar":{"package_id":"6392897f2b3749bdb86863a1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a03d5c7c4465a0be720d5a3df3f45f38f838a54fa291df7d037c9bfeed29bfd2"},"ros-humble-parameter-traits-0.3.0-py310h24f1946_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["fmt >=9.1.0,<10.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rsl","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h24f1946_2","timestamp":1670547849267,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"78ab6a2ba6caec292fdfd195c475d1b1","name":"ros-humble-parameter-traits","requires":[],"size":12813,"version":"0.3.0","binstar":{"package_id":"6392898b46bec18b89ec1178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4191ef11595bf9808b6fa1c3d09d18ae74cab24e805d9dfd9feed88d19c2a02c"},"ros-humble-parameter-traits-0.3.0-py310hf633daa_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["fmt >=9.1.0,<10.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rsl","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hf633daa_3","timestamp":1675692006835,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7124aff074befc637c7b3004e8ecbe02","name":"ros-humble-parameter-traits","requires":[],"size":15178,"version":"0.3.0","binstar":{"package_id":"6392898b46bec18b89ec1178","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac06aa93718176227fe910eacd17f76a6139b8200fa81c9f4d4d9eb548d9f64c"},"ros-humble-rosbag2-storage-0.15.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547705987,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7faea2e3272f3b72474c54d91fb60947","name":"ros-humble-rosbag2-storage","requires":[],"size":208055,"version":"0.15.3","binstar":{"package_id":"6392898d46bec18b89ec11d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"611cef8d45ed6a239b1a750157ca5a5d068c90393ecce7dba11bd3c7588d95ba"},"ros-humble-rosbag2-storage-0.15.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691805471,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"93fdfede863a17a9bf82227fff8254d3","name":"ros-humble-rosbag2-storage","requires":[],"size":208657,"version":"0.15.4","binstar":{"package_id":"6392898d46bec18b89ec11d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"18aedb1ac178b16dda8b06d343838e79243557c88c7e91ab225f9fe13ea58c21"},"ros-humble-srdfdom-2.0.4-py310h34fe056_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-console-bridge-vendor","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-urdfdom-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h34fe056_2","timestamp":1670547780617,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a1e7c07b94fb7c30fdffc39990225403","name":"ros-humble-srdfdom","requires":[],"size":91139,"version":"2.0.4","binstar":{"package_id":"6392898ebbbc2b1e963a61b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ede773c9881bb62ac6ea32363d522986bfcb2a484a6532a5ae86a465c371531"},"ros-humble-srdfdom-2.0.4-py310hc95db8f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-console-bridge-vendor","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-urdfdom-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hc95db8f_3","timestamp":1675691908256,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5f79363c9235665836e7357b1b532541","name":"ros-humble-srdfdom","requires":[],"size":97306,"version":"2.0.4","binstar":{"package_id":"6392898ebbbc2b1e963a61b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6845d5cc79649a0a88ad7f6a6254dbee41edd1afb1855b8149bc648960abc170"},"ros-humble-diagnostic-updater-3.0.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-diagnostic-msgs","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547743248,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0c483a9a53fe12a7bd1a5ea971adb506","name":"ros-humble-diagnostic-updater","requires":[],"size":129065,"version":"3.0.0","binstar":{"package_id":"63928991a2b712100811ff49","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2268d250dacc86e3cfc545da6db10306603b44b623f58a662f3296d750758146"},"ros-humble-diagnostic-updater-3.1.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691855831,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c5e5b7a37a2e4f7874145c285e317d2b","name":"ros-humble-diagnostic-updater","requires":[],"size":147610,"version":"3.1.0","binstar":{"package_id":"63928991a2b712100811ff49","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69fa5d743ad9a53d87f7eb6a701bc2f2c4a001f9824031ceac69d1aab9f1556c"},"ros-humble-hardware-interface-2.18.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-control-msgs","ros-humble-lifecycle-msgs","ros-humble-pluginlib","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547826338,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"41cbf8f6e1948a706e0c47fa68e9732b","name":"ros-humble-hardware-interface","requires":[],"size":307900,"version":"2.18.0","binstar":{"package_id":"63928993a2b712100811ff77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"18dc3068760e25bd2a1e30d5fb643b96f76cf992924ab64a661024295f9cec7d"},"ros-humble-hardware-interface-2.22.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-lifecycle-msgs","ros-humble-pluginlib","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-tinyxml2-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691971860,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9a4f2175c4b570a176e2d4bd2ea6c47e","name":"ros-humble-hardware-interface","requires":[],"size":307736,"version":"2.22.0","binstar":{"package_id":"63928993a2b712100811ff77","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0cd8fa5b340796eddc36a1c8c0119e81daad5b2fecfd02375a74270360e84893"},"ros-humble-examples-rclcpp-minimal-composition-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547715163,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a2ccb569eb66116aa3a9119b4a7dc0bc","name":"ros-humble-examples-rclcpp-minimal-composition","requires":[],"size":167080,"version":"0.15.1","binstar":{"package_id":"639289ee46bec18b89ec241e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"326989211ebdba5c1b7b42001817ad0eea7e5edd5261948d2b15461f76cd771c"},"ros-humble-examples-rclcpp-minimal-composition-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691795411,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"12d7d429af291543b98df60b418f8ecc","name":"ros-humble-examples-rclcpp-minimal-composition","requires":[],"size":169894,"version":"0.15.1","binstar":{"package_id":"639289ee46bec18b89ec241e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"117902a2a9639a42b527a16d288302d0e57b2203c726db048f6ec5b57d18649f"},"ros-humble-action-tutorials-cpp-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-tutorials-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547947859,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"77189eb79192f9e553674bff75f0771e","name":"ros-humble-action-tutorials-cpp","requires":[],"size":107417,"version":"0.20.2","binstar":{"package_id":"639289f0a2b71210081216d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3b687eca20229f56b41021e3c4bc7338664839ec1515b9a53a215b673ab2e47a"},"ros-humble-action-tutorials-cpp-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-tutorials-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692050428,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b7610ec67b6bb3a70cd72f8590ca933f","name":"ros-humble-action-tutorials-cpp","requires":[],"size":109817,"version":"0.20.3","binstar":{"package_id":"639289f0a2b71210081216d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"94bf607eb88ff44aea7566ae3dfa0fae48707e6cacee9ab0abd27414f9d00ca7"},"ros-humble-examples-rclcpp-minimal-action-client-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547792212,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4dd903d78e8845bf84df26339353c9e1","name":"ros-humble-examples-rclcpp-minimal-action-client","requires":[],"size":131685,"version":"0.15.1","binstar":{"package_id":"639289f146bec18b89ec2465","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d63e01128043f2046dcbfd3f2d4325d5ce352910269c4b49a4794f2f871de685"},"ros-humble-examples-rclcpp-minimal-action-client-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691884914,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"778503d04417dd4b6b35e8f0df2caaf8","name":"ros-humble-examples-rclcpp-minimal-action-client","requires":[],"size":133985,"version":"0.15.1","binstar":{"package_id":"639289f146bec18b89ec2465","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e87e6b20b1d9f5cd2545a34744c3bf818d14fe5911fadc64319303719a8add5f"},"ros-humble-examples-rclcpp-minimal-action-server-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547749572,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4df36d5f55b15793b5eab0acd59dac7a","name":"ros-humble-examples-rclcpp-minimal-action-server","requires":[],"size":62875,"version":"0.15.1","binstar":{"package_id":"639289f42b3749bdb8687ad5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee630cecb37611dce9a3849df4d092d0a8aa8e13af14f893ec15374a4546dce8"},"ros-humble-examples-rclcpp-minimal-action-server-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691836452,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"321f557b5f0abe579d5f8e23c8869dc5","name":"ros-humble-examples-rclcpp-minimal-action-server","requires":[],"size":65163,"version":"0.15.1","binstar":{"package_id":"639289f42b3749bdb8687ad5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6e71a587b85390f1026919a8ec4135113a600b15667e307554ea136de424e9e"},"ros-humble-depthimage-to-laserscan-2.5.0-py310h39d476f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-image-geometry","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h39d476f_2","timestamp":1670547905657,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"221b50c5bd355a43dcac6be6c62b2381","name":"ros-humble-depthimage-to-laserscan","requires":[],"size":216540,"version":"2.5.0","binstar":{"package_id":"639289f6e6a2f79ab835e767","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a0def52c1cd8308e76cbe02f4c699ca16caa531e65d7ce3fa46de96aa30a4e6c"},"ros-humble-depthimage-to-laserscan-2.5.0-py310h0699a7d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-geometry","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h0699a7d_3","timestamp":1675692001990,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fdb7d3b9c5866919d4a61c9f725a5df8","name":"ros-humble-depthimage-to-laserscan","requires":[],"size":219824,"version":"2.5.0","binstar":{"package_id":"639289f6e6a2f79ab835e767","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d659e0375efd2e60715c73a3a327851513cae351c3a4981bd11c5cd5971e57f"},"ros-humble-stubborn-buddies-1.0.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rclcpp-lifecycle","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-stubborn-buddies-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547919175,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"649e92f5ef998b607683b8ecee52c352","name":"ros-humble-stubborn-buddies","requires":[],"size":362994,"version":"1.0.0","binstar":{"package_id":"639289f8e6a2f79ab835e7cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32bfcb1b322b497c86542e4c5a03d263b81a22ba34dc32d95274af18be4fa674"},"ros-humble-stubborn-buddies-1.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rclcpp-lifecycle","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-stubborn-buddies-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692046152,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4761faf119d25a50cabf9703e7649162","name":"ros-humble-stubborn-buddies","requires":[],"size":362787,"version":"1.0.0","binstar":{"package_id":"639289f8e6a2f79ab835e7cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6f0410d184710bbdbac2d594da54a4621ddd0abfbc16cf7e594d37f287cc3986"},"ros-humble-spacenav-3.1.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libspnav","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547958138,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"afdcf62d4c3f3e451cf560a0738d4d7b","name":"ros-humble-spacenav","requires":[],"size":115738,"version":"3.1.0","binstar":{"package_id":"639289fa46bec18b89ec2722","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b449b8aeb121a5eeb3ec733b442553693b217bdacbad21e9cfa70d0c42b86e78"},"ros-humble-spacenav-3.1.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libspnav","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","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":"py310h7c61026_3","timestamp":1675691789428,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fd428d0eda1324d3215b97c1532ddbad","name":"ros-humble-spacenav","requires":[],"size":118619,"version":"3.1.0","binstar":{"package_id":"639289fa46bec18b89ec2722","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e2b06cc5ef847203c0948d224b233c585114e24f2531eb2ed5266ec7716c198"},"ros-humble-udp-driver-1.2.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["asio","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-io-context","ros-humble-lifecycle-msgs","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-udp-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547802552,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4dcbf4a04135e3bf3f2eb6815720c2c5","name":"ros-humble-udp-driver","requires":[],"size":264654,"version":"1.2.0","binstar":{"package_id":"639289fb6a03c9fad264d2d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"16c30e4665dc6205f0aeea848f966c5ec322e71865c6203da5643102786f8a53"},"ros-humble-udp-driver-1.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["asio","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-io-context","ros-humble-lifecycle-msgs","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-udp-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691922956,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"08699e007542ff1e8a0f0818b1917dc6","name":"ros-humble-udp-driver","requires":[],"size":263256,"version":"1.2.0","binstar":{"package_id":"639289fb6a03c9fad264d2d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09d16b921e07e1ac89b8f644b14aefb63eb888a8196a9c59bfbf6385ae12da09"},"ros-humble-topic-tools-1.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros-humble-topic-tools-interfaces","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670547870028,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a9be1854f399d53c080b60d0cd0c4642","name":"ros-humble-topic-tools","requires":[],"size":276094,"version":"1.0.0","binstar":{"package_id":"639289fc2b3749bdb8687baf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4498de98cde5c5a6b4388a46056ba4c19e2ee5098cab50dd37d2da8ec04ac5bb"},"ros-humble-topic-tools-1.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros-humble-topic-tools-interfaces","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691992776,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f99e8c0fe5aa1a4e81dc5cc8f9e2242e","name":"ros-humble-topic-tools","requires":[],"size":281619,"version":"1.0.0","binstar":{"package_id":"639289fc2b3749bdb8687baf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14675ec1c7075414cbf053f2745181a423b69428cb01ad3990b04fc0cddaefe9"},"ros-humble-ublox-dgnss-node-0.3.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libusb >=1.0.26,<2.0a0","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-ublox-ubx-interfaces","ros-humble-ublox-ubx-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670547746653,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"634c4de3a04f20f96969f5776769bdb8","name":"ros-humble-ublox-dgnss-node","requires":[],"size":391134,"version":"0.3.5","binstar":{"package_id":"639289fc4f66fd116f5d0d11","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4369f082793f14c202d9f8a17c559b4fe9e8e698ffa4e62ff77063df5f18f420"},"ros-humble-ublox-dgnss-node-0.3.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libusb >=1.0.26,<2.0a0","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-ublox-ubx-interfaces","ros-humble-ublox-ubx-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691862344,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1334ff19005e90710229aeb60355f602","name":"ros-humble-ublox-dgnss-node","requires":[],"size":393645,"version":"0.3.5","binstar":{"package_id":"639289fc4f66fd116f5d0d11","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a9044871e2d7b678d5c6fb5628a0d2161946e72d461ecba37d6e071cbfcaf3a"},"ros-humble-rosbridge-msgs-1.3.1-py310h7c61026_4.tar.bz2":{"build_number":4,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_4","timestamp":1686904408280,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e42f0ba8cf563d3076469511a7c554c8","name":"ros-humble-rosbridge-msgs","requires":[],"size":71187,"version":"1.3.1","binstar":{"package_id":"63928a9f46f81babca03a9b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"896c77b00ef82fc90493e91194b1709aa48521289c4314aee166f97a89951246"},"ros-humble-joy-teleop-1.3.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-control-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosidl-runtime-py","ros-humble-sensor-msgs","ros-humble-teleop-tools-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670548231930,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cffde487db0fbb94271e787a71f3c2c4","name":"ros-humble-joy-teleop","requires":[],"size":20495,"version":"1.3.0","binstar":{"package_id":"63928b2446bec18b89ec78c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aeedc88a5005a83227233c78273cfca9f25c3eb8730d07cf412ca8535095afd0"},"ros-humble-joy-teleop-1.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosidl-runtime-py","ros-humble-sensor-msgs","ros-humble-teleop-tools-msgs","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692240080,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a4a263deff939b21f744fb237d4362c8","name":"ros-humble-joy-teleop","requires":[],"size":30689,"version":"1.3.0","binstar":{"package_id":"63928b2446bec18b89ec78c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dafbbef96d266fcbd9d5d89446194e22456e35c4bd8fc31f884a4bdae7e2fd4f"},"ros-humble-joint-limits-2.18.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670548258035,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"38c3eeb6d916e4af23acc111e36f36ad","name":"ros-humble-joint-limits","requires":[],"size":14412,"version":"2.18.0","binstar":{"package_id":"63928b25d9a997aae729c4ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84ee9d77cb151cec24d3d55d2238de2f54a03c4c61ce01d7236efa4cbd92c5c6"},"ros-humble-joint-limits-2.22.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692272098,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dcdd820c9e03edbe497aeeb5b9a3a97a","name":"ros-humble-joint-limits","requires":[],"size":16467,"version":"2.22.0","binstar":{"package_id":"63928b25d9a997aae729c4ef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"158cab91733bcea00f20ed02bacb6445f000519836c3abf08745a14bb09fe302"},"ros-humble-joy-3.1.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sdl2-vendor","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670548176436,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1bb438f95949108950234f3116cc437b","name":"ros-humble-joy","requires":[],"size":185597,"version":"3.1.0","binstar":{"package_id":"63928b264f66fd116f5dbf94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84b9db68762cfda706c8571f71793d81971c0e066fb50b449ec0dd5480398226"},"ros-humble-joy-3.1.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sdl2-vendor","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692208014,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8d9fa737c3aea0a4b51d149f429af9ed","name":"ros-humble-joy","requires":[],"size":188270,"version":"3.1.0","binstar":{"package_id":"63928b264f66fd116f5dbf94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d5e8480026319232160075adc92b7a814fad6905d22d546a3de3d854120af9ba"},"ros-humble-rosapi-msgs-1.3.1-py310h7c61026_4.tar.bz2":{"build_number":4,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rcl-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_4","timestamp":1686904371868,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6dce4cfc66dfbc12572f6101a9298e7d","name":"ros-humble-rosapi-msgs","requires":[],"size":460466,"version":"1.3.1","binstar":{"package_id":"639290084f66fd116f6112ae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e9b840aa8dd64a6d40e5538d8d81db2ea0cebaeaa6359827aaec3ec93d417efd"},"ros-humble-rosbridge-test-msgs-1.3.1-py310h7c61026_4.tar.bz2":{"build_number":4,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_4","timestamp":1686904294728,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7423f1ce708d9240435be8251d778464","name":"ros-humble-rosbridge-test-msgs","requires":[],"size":308794,"version":"1.3.1","binstar":{"package_id":"6392a5d146bec18b89f51e18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1529ba6d9e8dc761a3d733912a5bda87930d62f0fa58ff21cfe6759df8d8844c"},"ros-humble-turtlesim-1.4.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-geometry-msgs","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-std-srvs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670565717950,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2d4ac9dc2d3d499b26611db09943fd95","name":"ros-humble-turtlesim","requires":[],"size":815410,"version":"1.4.2","binstar":{"package_id":"6392a84d6a03c9fad274ba67","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e697006056ce0ba47095a636c58c6d8c714b025c9d0f7e8d36f44f82ebde37c5"},"ros-humble-turtlesim-1.4.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-geometry-msgs","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros-humble-std-srvs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675691999551,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d67605532809a49c39656ba1b54592da","name":"ros-humble-turtlesim","requires":[],"size":821662,"version":"1.4.2","binstar":{"package_id":"6392a84d6a03c9fad274ba67","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"694a426b1177f5ae4517338217709ceb826feead466fa2e106f910e6c70cd2ad"},"ros-humble-topic-monitor-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-launch","ros-humble-launch-ros","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565748335,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"653d760868891c1e3fd8463d9eb99dec","name":"ros-humble-topic-monitor","requires":[],"size":21523,"version":"0.20.2","binstar":{"package_id":"6392a84f46bec18b89f5ef29","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4cd5257537f05511bbc82983e002676c0e34556ceb0df9b6ff7440f18ddb8dff"},"ros-humble-topic-monitor-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch","ros-humble-launch-ros","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692037357,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7dcfa85c71138815ac03e4753f18c296","name":"ros-humble-topic-monitor","requires":[],"size":33179,"version":"0.20.3","binstar":{"package_id":"6392a84f46bec18b89f5ef29","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"909e2b67f91a76c299285ba7188b9adb6ea446e155f47b28134eb4444b945445"},"ros-humble-examples-rclcpp-minimal-subscriber-0.15.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558851732,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"71e23fb10ddfbfb6c45828c415653a7d","name":"ros-humble-examples-rclcpp-minimal-subscriber","requires":[],"size":944568,"version":"0.15.1","binstar":{"package_id":"6392a887e6a2f79ab841fff4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"73e8e74fe70202cef7dfff7ea16703dd9c1b40d8761c82f9d0bcc6072f788a40"},"ros-humble-examples-rclcpp-minimal-subscriber-0.15.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692284585,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bbfb31b3e9df967128771ca3fa864ba7","name":"ros-humble-examples-rclcpp-minimal-subscriber","requires":[],"size":941157,"version":"0.15.1","binstar":{"package_id":"6392a887e6a2f79ab841fff4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f1214cbbe8aecdf37b7d6c9a4ce695c366d1a8e5c6ceab77a16455635fe3941"},"ros-humble-quality-of-service-demo-cpp-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558590908,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5b14ccfa20f3a5bd4d60789ece54802a","name":"ros-humble-quality-of-service-demo-cpp","requires":[],"size":1010701,"version":"0.20.2","binstar":{"package_id":"6392a88aa2b7121008292389","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ac3c082ae5d35364e3c3794bdf6f20866a0e81363a0e7fddc4f9179ef7eb8cb"},"ros-humble-quality-of-service-demo-cpp-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692171784,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d20dc9827917a55bfe1cc868598a0491","name":"ros-humble-quality-of-service-demo-cpp","requires":[],"size":1016301,"version":"0.20.3","binstar":{"package_id":"6392a88aa2b7121008292389","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4a2fb7cf212eeebbdf1cb340bdd4afe594e9a8fa9ffff2ea790b0489589bcd1"},"ros-humble-rqt-graph-1.3.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-dotgraph","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558605160,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8e625b8d41732eb732f2cb93f38ad0a6","name":"ros-humble-rqt-graph","requires":[],"size":45738,"version":"1.3.0","binstar":{"package_id":"6392b38f6a03c9fad27afbb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"578532aa905494eab1a843730f18e9dd321b04814ac08e17fc8233d523c61a86"},"ros-humble-rqt-graph-1.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-dotgraph","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692599556,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"058eb106b05fa1d995cc1dfe1c732574","name":"ros-humble-rqt-graph","requires":[],"size":78730,"version":"1.3.0","binstar":{"package_id":"6392b38f6a03c9fad27afbb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a9a1fda81248101a467fd51b5f33b1a64727cd17cd3800e1d72c9fd53b584d2"},"ros-humble-rqt-publisher-1.5.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558574502,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6a10be20e5f24692ce9661cdd1789ead","name":"ros-humble-rqt-publisher","requires":[],"size":25961,"version":"1.5.0","binstar":{"package_id":"6392b3902dd706205576690b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5191565f3ec4ed7962a8650336667b2fb73d95399d8f22cf0a0d20b80563a80c"},"ros-humble-rqt-publisher-1.5.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692568532,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"36c567f34996507473c2566fc590c508","name":"ros-humble-rqt-publisher","requires":[],"size":42373,"version":"1.5.0","binstar":{"package_id":"6392b3902dd706205576690b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"387f3e0f6b6c4444d4f52b1c28e4dbd08ec5bcf129fc59f53a09aa00bfa3b472"},"ros-humble-rqt-py-console-1.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558555177,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"678f949e036f10ecdb5f2d8a294a85f6","name":"ros-humble-rqt-py-console","requires":[],"size":15079,"version":"1.0.2","binstar":{"package_id":"6392b3936e0eca100b4d2635","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"95873f4a7b7f176062bff7625f927f3be255064f62072740841e572d076e51db"},"ros-humble-rqt-py-console-1.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692544826,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b4430cac88c20df63816fc9f60041a12","name":"ros-humble-rqt-py-console","requires":[],"size":21488,"version":"1.0.2","binstar":{"package_id":"6392b3936e0eca100b4d2635","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd363a404d0468a4030c26aa0d6ff007c71f55fe76c09712737aa23ba80e95ea"},"ros-humble-rqt-shell-1.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-qt-gui-py-common","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558515421,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"46a9a24c4c6064c322ccd35d92825046","name":"ros-humble-rqt-shell","requires":[],"size":18185,"version":"1.0.2","binstar":{"package_id":"6392b394096178989be2e5c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"53564bc425ca6a40e540abdceb8f0ca55a2e2754c3e98cb634f82cc5bca1d2e7"},"ros-humble-rqt-shell-1.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-qt-gui-py-common","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692495565,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6d542b4886baa4262caed5044e3e8bb0","name":"ros-humble-rqt-shell","requires":[],"size":26959,"version":"1.0.2","binstar":{"package_id":"6392b394096178989be2e5c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a96c74848fb8ec2c08c70254f49a439fc755137d5d2eeb60876c959616710dd2"},"ros-humble-rqt-service-caller-1.0.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558535618,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"58a78384561667d37e520895ea43919b","name":"ros-humble-rqt-service-caller","requires":[],"size":19488,"version":"1.0.5","binstar":{"package_id":"6392b395d9a997aae73f3efa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c7d893705b0b6f8ceb8fea359151d7e9376297d15dd97806090cad8f838b272c"},"ros-humble-rqt-service-caller-1.0.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692520953,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"db3bc55cddd7e42cfb1f34def39c0531","name":"ros-humble-rqt-service-caller","requires":[],"size":30542,"version":"1.0.5","binstar":{"package_id":"6392b395d9a997aae73f3efa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d54a987a5a74f88212039b9acb1cd5fbfc1e95191e7b31ddd816cdb0978bbff5"},"ros-humble-ros2test-0.4.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-domain-coordinator","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-launch-testing-ros","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558611345,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"681ad0e0ff3ed21748a7bc0f2a11a848","name":"ros-humble-ros2test","requires":[],"size":8821,"version":"0.4.0","binstar":{"package_id":"6392b3c046bec18b89f9e0ad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4354b2f8d7c1f6c66287eb522c4400b99cf2cf5fe705e214ec99b0b0a2f7d7af"},"ros-humble-ros2test-0.4.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-domain-coordinator","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-launch-testing-ros","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692631272,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"affd96b0d42c1c302a1d7ffba9c1d3f2","name":"ros-humble-ros2test","requires":[],"size":11734,"version":"0.4.0","binstar":{"package_id":"6392b3c046bec18b89f9e0ad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ecb5c06d5028dee0a9ca819b744831d658906b4e32371193639184ecbda85f1"},"ros-humble-ros2node-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558586539,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4590bb77511456e6b80e8a6082575c4b","name":"ros-humble-ros2node","requires":[],"size":15114,"version":"0.18.4","binstar":{"package_id":"6392b3c1d9a997aae73f50b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3461b5e44016fd2fc7719f2cdb299cb699b68827746ba5bbe3718a2d2197f61a"},"ros-humble-ros2node-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692595383,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"243cad11b53c13baf6bfbd5a9e2cfab2","name":"ros-humble-ros2node","requires":[],"size":22373,"version":"0.18.5","binstar":{"package_id":"6392b3c1d9a997aae73f50b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a84297e4a423f31192f3709e455d675350039d939008bb3af6a19a8b4486d3d"},"ros-humble-ros2service-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558560507,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"459566685d1c38d645a86c92a5e2b399","name":"ros-humble-ros2service","requires":[],"size":16324,"version":"0.18.4","binstar":{"package_id":"6392b3c2ed6d66bf8fa294fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dc9eb799fb95d2c9456cd72344676a18c070ec0a47c90991b2aad36e4dfb8a08"},"ros-humble-ros2service-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692558872,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c7c88f7ef9af2eaba55bc0594ff6e08d","name":"ros-humble-ros2service","requires":[],"size":24260,"version":"0.18.5","binstar":{"package_id":"6392b3c2ed6d66bf8fa294fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf1ee5a78700d6d22330a621144d1b7b729a2b90a1b04a521f5950e8038981ae"},"ros-humble-ros2pkg-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","empy","importlib_resources","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-copyright","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558531145,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ae64305566dd7cc8f50620fcef0c1782","name":"ros-humble-ros2pkg","requires":[],"size":27431,"version":"0.18.4","binstar":{"package_id":"6392b3c3ead2dcc8c2fac57a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52f30595689d71b6ad9c389bceb7fc322a9a7ced2185d2ced91a66d9f44a0f2b"},"ros-humble-ros2pkg-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","empy","importlib_resources","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-copyright","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692519178,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9fe8788b2466e0597f6bdae1ccc141f8","name":"ros-humble-ros2pkg","requires":[],"size":39393,"version":"0.18.5","binstar":{"package_id":"6392b3c3ead2dcc8c2fac57a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da5f48040420559eb7831db71fcfd49a8ab53bfc2c30c3277e6c99abd8939a90"},"ros-humble-controller-interface-2.18.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-hardware-interface","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558653412,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8dbda9a008ac3011155935bfc2294f25","name":"ros-humble-controller-interface","requires":[],"size":37017,"version":"2.18.0","binstar":{"package_id":"6392b3c546bec18b89f9e0fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87637b945f9baae1e664d9fba837b97162305e00e115b0159b6968e0f1fcc098"},"ros-humble-controller-interface-2.22.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-hardware-interface","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692691450,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2b1562fd9b584074cf7acd09dfe5c457","name":"ros-humble-controller-interface","requires":[],"size":39207,"version":"2.22.0","binstar":{"package_id":"6392b3c546bec18b89f9e0fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71f2325d022153e2a6a7e66273a3d1d8fb5cddd9cea042befc9b49cf8dda05dd"},"ros-humble-pcl-conversions-2.4.0-py310h388ef92_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.*","ros-humble-message-filters","ros-humble-pcl-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h388ef92_2","timestamp":1670558652492,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"048eb26ff73b7ed6f920cf73309c1d77","name":"ros-humble-pcl-conversions","requires":[],"size":16461,"version":"2.4.0","binstar":{"package_id":"6392b3dd2dd7062055767cad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0838ac5a2478dc56881449db80c5b9e70db9e47f359bd43950f466b896c81957"},"ros-humble-pcl-conversions-2.4.0-py310h49fac9a_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-message-filters","ros-humble-pcl-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h49fac9a_3","timestamp":1675692684196,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2452cfe483565ae685833e11bc18041e","name":"ros-humble-pcl-conversions","requires":[],"size":20695,"version":"2.4.0","binstar":{"package_id":"6392b3dd2dd7062055767cad","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1451a508cf9c0ffbbca7455e49b9acb244e9fc85040443af02ec0f30cf88396c"},"ros-humble-tf2-tools-0.25.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["graphviz","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2-msgs","ros-humble-tf2-py","ros-humble-tf2-ros-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558683106,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ea65327df24a722766ebd2da5f2de69b","name":"ros-humble-tf2-tools","requires":[],"size":11559,"version":"0.25.1","binstar":{"package_id":"6392b3de4f66fd116f79f579","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82abf4977af93796edc767138d7aafbe817ac998f8597a2cdbdd060ca2ed922f"},"ros-humble-tf2-tools-0.25.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["graphviz","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2-msgs","ros-humble-tf2-py","ros-humble-tf2-ros-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692507865,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"abfa20404af294d12129044b605d927e","name":"ros-humble-tf2-tools","requires":[],"size":16599,"version":"0.25.2","binstar":{"package_id":"6392b3de4f66fd116f79f579","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f484a5eaf7aba5cabaec010328cbb7100ecb79d7fe280e8ed830cfba6689e7de"},"ros-humble-rqt-console-2.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558571419,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3e6938026031bfc41b08ce1e0f3f3173","name":"ros-humble-rqt-console","requires":[],"size":55859,"version":"2.0.2","binstar":{"package_id":"6392b3df66b3e4e3dee1e0f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f555581a68e7fabbedb19a7f1628b9942d796e82e4d03b38d0c1e27a963f075"},"ros-humble-rqt-console-2.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692593147,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"024e664bcda926681b8adc9ace6b0e57","name":"ros-humble-rqt-console","requires":[],"size":92750,"version":"2.0.2","binstar":{"package_id":"6392b3df66b3e4e3dee1e0f3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"119d315c814b74e65ecc57d4049574377992a927e85242ebe33e00c4e7aedc2c"},"ros-humble-ros2doctor-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","psutil","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-environment","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","rosdistro"],"build":"py310h413e681_2","timestamp":1670558497522,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a5d98fcddda29ffe17a5b2858c45fa92","name":"ros-humble-ros2doctor","requires":[],"size":33069,"version":"0.18.4","binstar":{"package_id":"6392b3e0a2b712100830c0c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8db83de99acc99d6bf87954cc7aab2baf1e2abdf4efd684f4e57f24f83353947"},"ros-humble-ros2doctor-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","importlib-metadata","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","psutil","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-environment","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","rosdistro"],"build":"py310h7c61026_3","timestamp":1675692507978,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"da2b70508d5f46e913bd39145e9e1b6a","name":"ros-humble-ros2doctor","requires":[],"size":53722,"version":"0.18.5","binstar":{"package_id":"6392b3e0a2b712100830c0c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9aec2483f3d0c31224659dd3755ec68d1059a92892b6ba83b4d8abcf6a46fa6e"},"ros-humble-ros2action-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558522711,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0f68689c507967f265b75348a5be3fe8","name":"ros-humble-ros2action","requires":[],"size":17124,"version":"0.18.4","binstar":{"package_id":"6392b3e246f81babca19f5de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a460149b9b0c4c4a792f73c3da7bd26d775f964c0349b46a4a04d34573dd6a0b"},"ros-humble-ros2action-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692534910,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"eff05f7b4d67ea68b889851ab95cd916","name":"ros-humble-ros2action","requires":[],"size":26104,"version":"0.18.5","binstar":{"package_id":"6392b3e246f81babca19f5de","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1745d5dcea224c014461fc537fff242e93cb4995fafebf7e4dded46778dbc6cc"},"ros-humble-kinematics-interface-kdl-0.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-kdl-parser","ros-humble-kinematics-interface","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tf2-eigen-kdl","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558645813,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f85c20b74779d631ee3c77031a454b9c","name":"ros-humble-kinematics-interface-kdl","requires":[],"size":65799,"version":"0.0.2","binstar":{"package_id":"6392b3f0d9a997aae73f5f99","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e863d5575324963ca460f42ab51ab136f6249ef7e9f13fbea9fd92ae5855670b"},"ros-humble-kinematics-interface-kdl-0.1.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-kdl-parser","ros-humble-kinematics-interface","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tf2-eigen-kdl","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692774231,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a88bbef167acdb20571d01c37891b515","name":"ros-humble-kinematics-interface-kdl","requires":[],"size":68703,"version":"0.1.0","binstar":{"package_id":"6392b3f0d9a997aae73f5f99","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5e21411613a319291efca69006587d6f4e6a1a178842f07629dc7734e6d4fa37"},"ros-humble-rqt-plot-1.1.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","matplotlib-base","numpy","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558527957,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"af0f8e43007fc25fcf0f876fce9f2096","name":"ros-humble-rqt-plot","requires":[],"size":45097,"version":"1.1.2","binstar":{"package_id":"6392b3f266b3e4e3dee1e33d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"39db144ab8b6976fd9d7aacd0621e3edcb02a82c146f6075cd439487da655733"},"ros-humble-rqt-plot-1.1.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","matplotlib-base","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692565476,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3a97b54ec96c0d72a99b93b55c5d2f09","name":"ros-humble-rqt-plot","requires":[],"size":76272,"version":"1.1.2","binstar":{"package_id":"6392b3f266b3e4e3dee1e33d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"910ba43df96e62ec52176fc7666a5382584f2f309303e84bb6532baf6fd09e8c"},"ros-humble-rqt-topic-1.5.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558550938,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"34944b0fb37e4274554394cd36c7c135","name":"ros-humble-rqt-topic","requires":[],"size":22884,"version":"1.5.0","binstar":{"package_id":"6392b3f3bbbc2b1e964f54ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"023c4e08723181103f058c4448bfd4e4cfbce9d290f81525c2e6752dcc2d1bed"},"ros-humble-rqt-topic-1.5.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692597212,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5a2691e9e877b2f16945396a34898fc8","name":"ros-humble-rqt-topic","requires":[],"size":36569,"version":"1.5.0","binstar":{"package_id":"6392b3f3bbbc2b1e964f54ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"917a5d02bd5be32751cecafcf388a97ef3a6e9ad14f1280353281d41e550d838"},"ros-humble-camera-calibration-3.0.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-message-filters","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558700980,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2269304ce3d47431da400631fd44ae4a","name":"ros-humble-camera-calibration","requires":[],"size":54804,"version":"3.0.0","binstar":{"package_id":"6392b3f5bbbc2b1e964f5512","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"342f6390cda299f94d32a6b03cc1a8db973cd511759d5afe1b6c8a397788cbe6"},"ros-humble-camera-calibration-3.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-message-filters","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692742235,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9031e2a9f8380d34e0eddc7e77cb745b","name":"ros-humble-camera-calibration","requires":[],"size":98122,"version":"3.0.0","binstar":{"package_id":"6392b3f5bbbc2b1e964f5512","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8e6a14a373190c2a03025e92acbe6083e29d029da40ad6ed84b17cfd3ca023e8"},"ros-humble-teleop-twist-joy-2.4.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-joy","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558607290,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"88a97377cc1fb1f3cae34728e7770d20","name":"ros-humble-teleop-twist-joy","requires":[],"size":176086,"version":"2.4.3","binstar":{"package_id":"6392b3f66d07f25db9897bce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e063b51f3cafb7c8a9f4117602785107976c8c9a34ac3533212d0684a5325f71"},"ros-humble-teleop-twist-joy-2.4.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-joy","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692672314,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"965db330dbb84ce698c7a472431cee5e","name":"ros-humble-teleop-twist-joy","requires":[],"size":178994,"version":"2.4.3","binstar":{"package_id":"6392b3f66d07f25db9897bce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9a80da57683492bf5845ad829dfb205b18e98e8bc4e9026e18225ace62dbf2f"},"ros-humble-control-toolbox-2.1.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-control-msgs","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558702166,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d5a814ac7b23ae813cf5bac357e0f6f9","name":"ros-humble-control-toolbox","requires":[],"size":83424,"version":"2.1.2","binstar":{"package_id":"6392b412959458a07d40213f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d7ea8342c2f9085a1ec9dac64db999f835925534566a5513f9edfb5d380a628"},"ros-humble-control-toolbox-2.1.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692718732,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"992bb35c4e9a89e69ef00e3b6e63770e","name":"ros-humble-control-toolbox","requires":[],"size":85499,"version":"2.1.2","binstar":{"package_id":"6392b412959458a07d40213f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e34598a3162760ed8c4f1ce56fedd718e4915c93814d64a5c4993dcac37019a"},"ros-humble-generate-parameter-library-0.3.0-py310h24f1946_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["fmt >=9.1.0,<10.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-generate-parameter-library-py","ros-humble-parameter-traits","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-rsl","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h24f1946_2","timestamp":1670558532235,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c4c3dca9adfcaa2a482686e461883e02","name":"ros-humble-generate-parameter-library","requires":[],"size":11442,"version":"0.3.0","binstar":{"package_id":"6392b413d9a997aae73f77b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ef6202de3371c18ccd93df514cbdb0f74d157701b8493295e91c27fab27925f"},"ros-humble-generate-parameter-library-0.3.0-py310hf633daa_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["fmt >=9.1.0,<10.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-generate-parameter-library-py","ros-humble-parameter-traits","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-rsl","ros-humble-tcb-span","ros-humble-tl-expected","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hf633daa_3","timestamp":1675692515749,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9c593a6e927117caaa79de3165ef068d","name":"ros-humble-generate-parameter-library","requires":[],"size":13710,"version":"0.3.0","binstar":{"package_id":"6392b413d9a997aae73f77b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7d29591ffb3c47b724dff783c9343b2c234aefb883f5f3542ef319d46857211"},"ros-humble-moveit-configs-utils-2.5.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-param-builder","ros-humble-launch-ros","ros-humble-ros-workspace","ros-humble-srdfdom","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558660956,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9f629e7f095b71f87d9d64555b32047e","name":"ros-humble-moveit-configs-utils","requires":[],"size":23457,"version":"2.5.4","binstar":{"package_id":"6392b41466b3e4e3dee1eace","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0b229822d7904d81c0dcee155c9d236ae27e1a4edc9b9daaafcbef7362efb51"},"ros-humble-moveit-configs-utils-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-param-builder","ros-humble-launch-ros","ros-humble-ros-workspace","ros-humble-srdfdom","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692665838,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"861303e97a31e32a8052ec23b707da9e","name":"ros-humble-moveit-configs-utils","requires":[],"size":34319,"version":"2.5.4","binstar":{"package_id":"6392b41466b3e4e3dee1eace","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f6f6fbd1043a3fe6285c224f073a07395cfd5d756f9ed142c9cb1db433e3d2f5"},"ros-humble-ros2interface-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558735808,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c0182fd8de2bcd016b3de2c4fe3d4aac","name":"ros-humble-ros2interface","requires":[],"size":17477,"version":"0.18.4","binstar":{"package_id":"6392b41566b3e4e3dee1eaec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"64a160ee74eff7291e21009a8e4621d92ae7464ddc928e65b694d74a538cf117"},"ros-humble-ros2interface-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692477918,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c1ba3d63ea3c670a9056d1f07fe70720","name":"ros-humble-ros2interface","requires":[],"size":26236,"version":"0.18.5","binstar":{"package_id":"6392b41566b3e4e3dee1eaec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af9f67ae19633bc9f055d515f3c4371ed5dbc02b12236870b56ec7cf8ed922a9"},"ros-humble-image-transport-3.1.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558622450,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bf62a2262ade92f80045e42ba86569c6","name":"ros-humble-image-transport","requires":[],"size":680558,"version":"3.1.5","binstar":{"package_id":"6392b4164f66fd116f7a1161","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3ccd2692867837e978f9cc4ebb43fb3f4d2cb98ed49dbf2000c0188442acb1e"},"ros-humble-image-transport-3.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692620517,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bb82d1e9ae537e2d24d4ceef216521ae","name":"ros-humble-image-transport","requires":[],"size":677473,"version":"3.1.5","binstar":{"package_id":"6392b4164f66fd116f7a1161","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"00e9b507690c6a2ae7e3de0f863d2fa64666e3b3adba5bac567a77011072fefa"},"ros-humble-tf2-ros-0.25.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558543333,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"99cea47c8bf4758cdaf333e0ee39a375","name":"ros-humble-tf2-ros","requires":[],"size":497062,"version":"0.25.1","binstar":{"package_id":"6392b41a2b3749bdb875bd20","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e71d2b69a1b47dfaedddae8b61edefd0c4b090b3fc1a3e943074df8781bf21f9"},"ros-humble-tf2-ros-0.25.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692525310,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"85271104f34fbda2303d9a1c3d4c59d3","name":"ros-humble-tf2-ros","requires":[],"size":501250,"version":"0.25.2","binstar":{"package_id":"6392b41a2b3749bdb875bd20","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f7535ed5d1b644ae9b120565e26c22a90d6bd04e3233d6617efa910a9c77a1f"},"ros-humble-nav2-msgs-1.1.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670558682851,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"61e67f17e510efaf6f641f0661415805","name":"ros-humble-nav2-msgs","requires":[],"size":881515,"version":"1.1.3","binstar":{"package_id":"6392b41c6a03c9fad27b3873","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0bc341b9fa1746b8c6addbd98490005217d97b476816c31c2cfb724786177744"},"ros-humble-nav2-msgs-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692678069,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"162eb39d7049653ceb09fe92d64043f1","name":"ros-humble-nav2-msgs","requires":[],"size":975028,"version":"1.1.5","binstar":{"package_id":"6392b41c6a03c9fad27b3873","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b2af71532e3e01bb95e9d5e5e11c5ec44234388f13716df8105f54ad0ae28af"},"ros-humble-ros2topic-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy","python","python_abi 3.10.*","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558572319,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b7bb15e4c6b21e290b75533ff8b09242","name":"ros-humble-ros2topic","requires":[],"size":38315,"version":"0.18.4","binstar":{"package_id":"6392b41ed9a997aae73f7930","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cfa1811721a1383d3aa9b8eb089d5bb1d794df2162f8e3bc000bd465974edd23"},"ros-humble-ros2topic-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosidl-runtime-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692558630,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8b1bf08820adacdc06bfec5c7690c8dc","name":"ros-humble-ros2topic","requires":[],"size":63023,"version":"0.18.5","binstar":{"package_id":"6392b41ed9a997aae73f7930","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"96430d39185c3c3473a9df679c0f66ff4f237056350999ade2def26ebea2869a"},"ros-humble-rosbag2-storage-default-plugins-0.15.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros-humble-sqlite3-vendor","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558716629,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5d8bc7b2f35c7bc9814b9a866ece37d2","name":"ros-humble-rosbag2-storage-default-plugins","requires":[],"size":93237,"version":"0.15.3","binstar":{"package_id":"6392b41f66b3e4e3dee1ec16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09cba7316985a4df8bf05bb9252c8f0ed5e560d70aeb3f7e77265e640ab0d77e"},"ros-humble-rosbag2-storage-default-plugins-0.15.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros-humble-sqlite3-vendor","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692718620,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"06c6739546530e0f73a4daed0af5a682","name":"ros-humble-rosbag2-storage-default-plugins","requires":[],"size":99203,"version":"0.15.4","binstar":{"package_id":"6392b41f66b3e4e3dee1ec16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b94621f46a7f3ee95f2552a0981c5888d8684c83f9307af28a9204c593f387bd"},"ros-humble-nav2-voxel-grid-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558744120,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1274f98fcb2bc17ca753394f1f70e4ae","name":"ros-humble-nav2-voxel-grid","requires":[],"size":25628,"version":"1.1.3","binstar":{"package_id":"6392b42046bec18b89f9edb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f92c6f48be2220175c3d9c86f20ce460cb038fd79fa0d12e2f899da8337980e"},"ros-humble-nav2-voxel-grid-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692756831,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3cfbc7466a63e6045d9bf5069bd283d4","name":"ros-humble-nav2-voxel-grid","requires":[],"size":28088,"version":"1.1.5","binstar":{"package_id":"6392b42046bec18b89f9edb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b870e703639bea5969de68b55879ae2223107cb0d554503a4f37a83c1d31d0cd"},"ros-humble-composition-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558701631,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"676abc980ce13b677ec21a8d9a2b0414","name":"ros-humble-composition","requires":[],"size":368233,"version":"0.20.2","binstar":{"package_id":"6392b4912dd706205576c081","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7761c058989e43e7cb6a711a519c89a2e340977d0bb291dc0af3e0f9647b2763"},"ros-humble-composition-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692695197,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f694062e3d22d7c0fe59f9e5dccd8db0","name":"ros-humble-composition","requires":[],"size":379077,"version":"0.20.3","binstar":{"package_id":"6392b4912dd706205576c081","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b1b7b7e0a5df5b17c529c7c58be010b47e92cd3a56bf46a70d359e254a6ac6b"},"ros-humble-logging-demo-0.20.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h7c61026_2","timestamp":1670558633341,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3d79e9a7b886c45026ac6b6242d269ba","name":"ros-humble-logging-demo","requires":[],"size":155506,"version":"0.20.2","binstar":{"package_id":"6392b4ab2b3749bdb875dff8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"133463d912fe96d1084859e3eebe328c5ac0943ae8ddd6af73c931a6feb88fc7"},"ros-humble-logging-demo-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692581729,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9efed7088e1756748c8d5267364e76fd","name":"ros-humble-logging-demo","requires":[],"size":162880,"version":"0.20.3","binstar":{"package_id":"6392b4ab2b3749bdb875dff8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eeb4fdf905cacf6652f255ae9b55e9e00b1e7570a3b0dacbafdd578ccc565b68"},"ros-humble-image-tools-0.20.2-py310h39d476f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h39d476f_2","timestamp":1670558744721,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5fe68e4088a69abeeab2305d445d41a9","name":"ros-humble-image-tools","requires":[],"size":275213,"version":"0.20.2","binstar":{"package_id":"6392b4ad4f66fd116f7a4c14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b7ff607c9f5f23fa1aaab9e5076d067051beabdc2a82e22dd4b80663eb03373"},"ros-humble-image-tools-0.20.3-py310h0699a7d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h0699a7d_3","timestamp":1675692701787,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d681e37c7dd091af4c59c372e75a87cf","name":"ros-humble-image-tools","requires":[],"size":272609,"version":"0.20.3","binstar":{"package_id":"6392b4ad4f66fd116f7a4c14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5fca74e5759338fc83012f51e95565059a69b69974d0e330cb83ec07b54515db"},"ros-humble-demo-nodes-cpp-native-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rmw-fastrtps-cpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558886998,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f176d205d307b063f9a7a3d008980272","name":"ros-humble-demo-nodes-cpp-native","requires":[],"size":88266,"version":"0.20.2","binstar":{"package_id":"6392b4ae6a03c9fad27b6ea2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"44da8ac7f5c29cab26859d0b4d269a1599dd2d0d87d26de82697923fdc0fcd69"},"ros-humble-demo-nodes-cpp-native-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rmw-fastrtps-cpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692745670,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1cb7c8b21dd7da53b076f5570fb6e9de","name":"ros-humble-demo-nodes-cpp-native","requires":[],"size":90719,"version":"0.20.3","binstar":{"package_id":"6392b4ae6a03c9fad27b6ea2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"570b025b106c692133cbf325f5e8ce43d43d200f127f732d0315f46ce5201c7b"},"ros-humble-ublox-gps-2.3.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["asio","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-diagnostic-msgs","ros-humble-diagnostic-updater","ros-humble-geometry-msgs","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-humble-ublox-msgs","ros-humble-ublox-serialization","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558853009,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"415a034c7c07978568d741af677c9777","name":"ros-humble-ublox-gps","requires":[],"size":1023061,"version":"2.3.0","binstar":{"package_id":"6392b4b46d07f25db9898e75","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cd49c1928e901e6348e6c201d32f4f6ec2e34d17e8feee7ccd39b6abdf49f11e"},"ros-humble-ublox-gps-2.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["asio","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-diagnostic-updater","ros-humble-geometry-msgs","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-humble-ublox-msgs","ros-humble-ublox-serialization","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692930837,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1fede07ff947ff880cbfb1ea62b8e5b6","name":"ros-humble-ublox-gps","requires":[],"size":1038017,"version":"2.3.0","binstar":{"package_id":"6392b4b46d07f25db9898e75","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b8f36e1f62846cdc37a881eafbf3db5e0b862c481e9e233d0a96fc53d9825a8"},"ros-humble-ublox-dgnss-0.3.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-ublox-dgnss-node","ros-humble-ublox-ubx-interfaces","ros-humble-ublox-ubx-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558876277,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f2b0b1612e154e9aace591b57c304415","name":"ros-humble-ublox-dgnss","requires":[],"size":10740,"version":"0.3.5","binstar":{"package_id":"6392b4b52b3749bdb875e1d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ab3b433a7eee03a08431bbddd62e2328137d22c5a266af67d2716a2852187b9"},"ros-humble-ublox-dgnss-0.3.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ublox-dgnss-node","ros-humble-ublox-ubx-interfaces","ros-humble-ublox-ubx-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692465821,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"76295dc06dc188b6ba80b5677bd82fd4","name":"ros-humble-ublox-dgnss","requires":[],"size":13207,"version":"0.3.5","binstar":{"package_id":"6392b4b52b3749bdb875e1d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"215007ab1cb7201e907f40000aa8262b61d7f2240fea39d7b9d67b559443a68b"},"ros-humble-demo-nodes-cpp-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-launch-xml","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558643306,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0aaa1055b547877a620e8bcecb750c34","name":"ros-humble-demo-nodes-cpp","requires":[],"size":1050435,"version":"0.20.2","binstar":{"package_id":"6392b4b82b3749bdb875e255","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f2521939837c077f1468f619a1ba625a086115710dbcd357d077c21b124720f"},"ros-humble-demo-nodes-cpp-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-example-interfaces","ros-humble-launch-ros","ros-humble-launch-xml","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692628720,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d0e372c3a5e47aff02f34f40fa66d5e6","name":"ros-humble-demo-nodes-cpp","requires":[],"size":1047444,"version":"0.20.3","binstar":{"package_id":"6392b4b82b3749bdb875e255","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"769c732ccfc99f2e39b9b41d1504b805648d5364a77c236754e7ee83afbe1c6a"},"ros-humble-teleop-tools-1.3.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-joy-teleop","ros-humble-key-teleop","ros-humble-ros-workspace","ros-humble-teleop-tools-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670558897846,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5818fa1869e09f85b9a90d25b0057ec9","name":"ros-humble-teleop-tools","requires":[],"size":8977,"version":"1.3.0","binstar":{"package_id":"6392b4ba114c465c98c8a2a6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2c1043759aaad4ff1c89598141b6e946951f72c96c4494a77d447b675a91905"},"ros-humble-teleop-tools-1.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joy-teleop","ros-humble-key-teleop","ros-humble-ros-workspace","ros-humble-teleop-tools-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692497763,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f7ecc1316c433808ca13706b35e4d214","name":"ros-humble-teleop-tools","requires":[],"size":10858,"version":"1.3.0","binstar":{"package_id":"6392b4ba114c465c98c8a2a6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"16307e86cdd798e79fccad76400b498ace9735fa587948236ee10f08f9109a54"},"ros-humble-rosbridge-library-1.3.1-py310h7c61026_4.tar.bz2":{"build_number":4,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pillow","pymongo","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_4","timestamp":1686904437374,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"47be3531da7488f070e7846cb786a9a8","name":"ros-humble-rosbridge-library","requires":[],"size":117430,"version":"1.3.1","binstar":{"package_id":"6392b64154e9ace854d98dc4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7390e97c12004415a8512b7812030120c4d71d3eb8797c03bda4665365b9c081"},"ros-humble-ros2run-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2pkg","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565693539,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d390c0ac60c4eeb6a33ed73e2ff59746","name":"ros-humble-ros2run","requires":[],"size":11609,"version":"0.18.4","binstar":{"package_id":"6392cf6f358aafdd3d9e0142","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db60f98692d2e00fc550d1ab223000196cbdb0d58e102c8549911077a8030700"},"ros-humble-ros2run-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2pkg","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693250804,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0362f85399d3ed11f5482a8c981ec020","name":"ros-humble-ros2run","requires":[],"size":16506,"version":"0.18.5","binstar":{"package_id":"6392cf6f358aafdd3d9e0142","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8318a242a148e805f395efb36800764924e17ec504ce4c66f314a14d01891f12"},"ros-humble-tf2-eigen-0.25.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565620168,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"340f174756d463f32fcaa1f943266966","name":"ros-humble-tf2-eigen","requires":[],"size":16100,"version":"0.25.1","binstar":{"package_id":"6392cf704f66fd116f8a49f0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"20b380ccc25a365bd2fe6a90738cdb710780dcd41ae57210861de9c8e0550f01"},"ros-humble-tf2-eigen-0.25.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693161949,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"737469e724915d124f00e474763cb49f","name":"ros-humble-tf2-eigen","requires":[],"size":18619,"version":"0.25.2","binstar":{"package_id":"6392cf704f66fd116f8a49f0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75e4cf4341def3ee31b4d4d50efe561e8645653f59ba70f08548d0e0bc82e5ee"},"ros-humble-robot-state-publisher-3.0.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-orocos-kdl-vendor","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565697339,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a1a594f7bb92686d835b2e98c9db1cac","name":"ros-humble-robot-state-publisher","requires":[],"size":253033,"version":"3.0.2","binstar":{"package_id":"6392cf712b3749bdb87d1e90","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fc3bca824060a809fc9a961e33f44a40e93e4d817a61109d3df91af64fb18755"},"ros-humble-robot-state-publisher-3.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-orocos-kdl-vendor","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693342930,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ccc34591f2da6c750827b65151448162","name":"ros-humble-robot-state-publisher","requires":[],"size":253761,"version":"3.0.2","binstar":{"package_id":"6392cf712b3749bdb87d1e90","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87940725e086785f85d0032fc05d9623aae563ae535a85cd53fb0fe64dc700b8"},"ros-humble-rosbag2-cpp-0.15.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros-humble-rosbag2-storage-default-plugins","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-shared-queues-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565667330,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"127ea267ebb5fa2ade8ad63a0ec369be","name":"ros-humble-rosbag2-cpp","requires":[],"size":271715,"version":"0.15.3","binstar":{"package_id":"6392cf7246f81babca262506","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"418a6f7c94a881fa0444de9161a6c0b94847d1deabbb2446013babbe4bdc6adb"},"ros-humble-rosbag2-cpp-0.15.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-rmw","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosbag2-storage","ros-humble-rosbag2-storage-default-plugins","ros-humble-rosidl-runtime-c","ros-humble-rosidl-runtime-cpp","ros-humble-rosidl-typesupport-cpp","ros-humble-rosidl-typesupport-introspection-cpp","ros-humble-shared-queues-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693220227,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0d8a0e329eb4e9f19f7e20eb782f8bd2","name":"ros-humble-rosbag2-cpp","requires":[],"size":277252,"version":"0.15.4","binstar":{"package_id":"6392cf7246f81babca262506","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57b22047f4bf13ab2c8b17434b8b868340e1ea47bd5c5dc8787620dc2f7d0112"},"ros-humble-tf2-kdl-0.25.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565743511,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b86ea7ff945142a5a8215351c490f394","name":"ros-humble-tf2-kdl","requires":[],"size":17813,"version":"0.25.1","binstar":{"package_id":"6392cf7246f81babca26250f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a9ac3711e82fce343f773df03320eff28044785bb40ad8ab699b1c4da4e15d63"},"ros-humble-tf2-kdl-0.25.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693428887,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e4d3986c887ec64b325574eddea7a687","name":"ros-humble-tf2-kdl","requires":[],"size":21703,"version":"0.25.2","binstar":{"package_id":"6392cf7246f81babca26250f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"67f648c108bf8ff7f3c6bdc776501b61d5ba59e6e07ee42e12eef64d6b56bef5"},"ros-humble-tf2-geometry-msgs-0.25.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565620218,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3100f106102ad02a64e4b7d79b4029c9","name":"ros-humble-tf2-geometry-msgs","requires":[],"size":24256,"version":"0.25.1","binstar":{"package_id":"6392cf736e0eca100b4ebe5b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d938922b6a10d2d8a5b55e4ac65a27f9324facaf90151680f0c01b5ce7c83d8"},"ros-humble-tf2-geometry-msgs-0.25.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-orocos-kdl-vendor","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693219502,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8ec1e7dc33c9dd68399a04099151ad2f","name":"ros-humble-tf2-geometry-msgs","requires":[],"size":31483,"version":"0.25.2","binstar":{"package_id":"6392cf736e0eca100b4ebe5b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6e1771a5b4bbc2bc81f0b2d6f497efb4bf5f05e224a6742bce5024c1cbd28df7"},"ros-humble-ros-testing-0.4.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-launch-testing","ros-humble-launch-testing-ament-cmake","ros-humble-launch-testing-ros","ros-humble-ros-workspace","ros-humble-ros2test","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565741214,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"725cbb93d915c93f933e635ab0b8de34","name":"ros-humble-ros-testing","requires":[],"size":10848,"version":"0.4.0","binstar":{"package_id":"6392cf73a2b71210083e95c3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"49b06a1f392f68910ab382fa195a39552175277f5c19c4954faf21b5f6c104a8"},"ros-humble-ros-testing-0.4.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-testing","ros-humble-launch-testing-ament-cmake","ros-humble-launch-testing-ros","ros-humble-ros-workspace","ros-humble-ros2test","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693309822,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"151c7f7cca64d58448e539e43d0a70c8","name":"ros-humble-ros-testing","requires":[],"size":13037,"version":"0.4.0","binstar":{"package_id":"6392cf73a2b71210083e95c3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2efee3ba75cba433795db4a27fcde00220d20d468ba8d803c3603897ff03b29"},"ros-humble-tf2-sensor-msgs-0.25.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-eigen3-cmake-module","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565721527,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6ca10ac815a705ccf931e3deddcea3ab","name":"ros-humble-tf2-sensor-msgs","requires":[],"size":12896,"version":"0.25.1","binstar":{"package_id":"6392cf73a2b71210083e95cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5a01e067799a7d999f1d1afa4dee09a2d320f1291492dea06188c0c5994877d6"},"ros-humble-tf2-sensor-msgs-0.25.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-tf2-ros-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693386786,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"364bf54e19e45b485d18a89a3bafb3cf","name":"ros-humble-tf2-sensor-msgs","requires":[],"size":15374,"version":"0.25.2","binstar":{"package_id":"6392cf73a2b71210083e95cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f3cee7b161e1555c78bf41bb7f7fb435e50d245875fc8a8eeb7d759203d0311a"},"ros-humble-joint-state-publisher-2.3.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565645929,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f3c0a338e9a29ba355f0a4eedf0bf0f9","name":"ros-humble-joint-state-publisher","requires":[],"size":17434,"version":"2.3.0","binstar":{"package_id":"6392cf742b3749bdb87d2464","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2b2dcf4e642f9fa6229789dc5899aee2a5c8cc4cafb0b78ae7da67bbafa6308f"},"ros-humble-joint-state-publisher-2.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693262199,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"efe306bd114dc93aa90b91094cf76b68","name":"ros-humble-joint-state-publisher","requires":[],"size":26744,"version":"2.3.0","binstar":{"package_id":"6392cf742b3749bdb87d2464","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fbe54d5cdcb2b7d95c86a409a173bc22e96a82f6b18b12a2be8305268ee94899"},"ros-humble-ros2param-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2service","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565720140,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9e8dfea1d3ff568dc1221be143648599","name":"ros-humble-ros2param","requires":[],"size":24093,"version":"0.18.4","binstar":{"package_id":"6392cf746a03c9fad286ff6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"76baca967161fa865ca051107852381d3136b58448b79c82a61c32fee26ef382"},"ros-humble-ros2param-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2service","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693282056,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"71163c57a0c0009939f8e1b849a2b514","name":"ros-humble-ros2param","requires":[],"size":38510,"version":"0.18.5","binstar":{"package_id":"6392cf746a03c9fad286ff6b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"898b4b6da65ae78b850fcd2aacc12128a3043edd6611e19f683a6c27e8313a26"},"ros-humble-ublox-2.3.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-ublox-gps","ros-humble-ublox-msgs","ros-humble-ublox-serialization","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565822385,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c3c83fcc5339118d3db64cd52fd12253","name":"ros-humble-ublox","requires":[],"size":9098,"version":"2.3.0","binstar":{"package_id":"6392cfc06a03c9fad287092d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ae1a1aadc8dd642323b6981dc2ac98f0bce612befbd4e3158444bce004cae19c"},"ros-humble-ublox-2.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ublox-gps","ros-humble-ublox-msgs","ros-humble-ublox-serialization","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693154575,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"24c0d140944cd7e13c11499fe56e7844","name":"ros-humble-ublox","requires":[],"size":11073,"version":"2.3.0","binstar":{"package_id":"6392cfc06a03c9fad287092d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8338446206aeec8b4773c09bdd3cc55f0d02654f487fd69b4d513101c2f701f7"},"ros-humble-robot-controllers-interface-0.9.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-robot-controllers-msgs","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565797490,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dd9830dcef301cddee5a7fc2e9abee84","name":"ros-humble-robot-controllers-interface","requires":[],"size":278292,"version":"0.9.3","binstar":{"package_id":"6392cfc2a2b71210083edad2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee06d3e3918acbb6461baf0713a3adca7bf00c1aa5cb82d30a00a72e16c4709f"},"ros-humble-robot-controllers-interface-0.9.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-robot-controllers-msgs","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693527831,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9fcce119f027aa2cc8370d0e3bac863b","name":"ros-humble-robot-controllers-interface","requires":[],"size":283015,"version":"0.9.3","binstar":{"package_id":"6392cfc2a2b71210083edad2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a27ad301c2fc24cfc2c4733de06254bb859796f7e5223a202bdd4efd90342122"},"ros-humble-nav2-simple-commander-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav2-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565609462,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d9e2ea7f83d967b848a27568fb418f0d","name":"ros-humble-nav2-simple-commander","requires":[],"size":41860,"version":"1.1.3","binstar":{"package_id":"6392cfe32dd70620557f9e54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c3dce7b4a320b8fd0fa42c2fa9763c6f4d8cab0cfe83439c883c934a929cc6b"},"ros-humble-nav2-simple-commander-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav2-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693148104,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8043203bac3c288d83115f912fbb9a58","name":"ros-humble-nav2-simple-commander","requires":[],"size":60854,"version":"1.1.5","binstar":{"package_id":"6392cfe32dd70620557f9e54","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c9a4cde8bdd1e8d4ecdee0b0e97ff84fca5ac56143ba556c0d496fc6be7fde3f"},"ros-humble-theora-image-transport-2.5.0-py310h0699a7d_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libogg >=1.3.4,<1.4.0a0","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","libtheora >=1.1.1,<1.2.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h0699a7d_2","timestamp":1670565796166,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c428211e986d81d62e0a08a154d4a0d3","name":"ros-humble-theora-image-transport","requires":[],"size":344380,"version":"2.5.0","binstar":{"package_id":"6392cfe5a2b71210083ef9ac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10c86c6399684da22fb199b447e042cefce94bb864b947595c6021b32e1ece26"},"ros-humble-theora-image-transport-2.5.0-py310h0699a7d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libogg >=1.3.4,<1.4.0a0","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","libtheora >=1.1.1,<1.2.0a0","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h0699a7d_3","timestamp":1675693352963,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"87a34c51c67ababe14338a470d58882d","name":"ros-humble-theora-image-transport","requires":[],"size":355895,"version":"2.5.0","binstar":{"package_id":"6392cfe5a2b71210083ef9ac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"359f7332df0d2db3449689b45cf0e3f909d95885f2a3b21c50f6681808648b44"},"ros-humble-ros2launch-0.19.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2pkg","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565662382,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f9f189ce8f79f2b43b0ee39d924f1030","name":"ros-humble-ros2launch","requires":[],"size":17985,"version":"0.19.3","binstar":{"package_id":"6392cfe666b3e4e3def0302b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"813b7cd5c09185d6bc3eabe73cdcf9f09dbdf64e931ce4191c235683bc44c311"},"ros-humble-ros2launch-0.19.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2pkg","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693210834,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8faa9daf945d6f444dbb23a8196685e1","name":"ros-humble-ros2launch","requires":[],"size":26882,"version":"0.19.4","binstar":{"package_id":"6392cfe666b3e4e3def0302b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"671f0f2994e52573599a9ef0f75ce039e46ede56350fd96928c9d3b4077ee811"},"ros-humble-ros2lifecycle-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-lifecycle-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2service","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565638931,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e78cc216e13ccfc192111edd1e5bc3cb","name":"ros-humble-ros2lifecycle","requires":[],"size":16908,"version":"0.18.4","binstar":{"package_id":"6392cfe8358aafdd3d9e1840","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"acf7cc42ccf8c77faa1910e8756ccf02e25a731fbd7303d1bf1d775cbb2a230b"},"ros-humble-ros2lifecycle-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-lifecycle-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2service","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693182374,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"709728165048537191b704b073b6f22a","name":"ros-humble-ros2lifecycle","requires":[],"size":25557,"version":"0.18.5","binstar":{"package_id":"6392cfe8358aafdd3d9e1840","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f402277e98348fb4e186395c3f7de1a350af35d4bb1de7f711559aec6f54592a"},"ros-humble-compressed-image-transport-2.5.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565855317,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dc1f54272d8e907f70150296bac1c9c4","name":"ros-humble-compressed-image-transport","requires":[],"size":187461,"version":"2.5.0","binstar":{"package_id":"6392cfea9e77a4aa6b7152fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f3988b0fc73146d3719c5f65beee2686cc9dd0c87f8f0332a83701ff2a11265"},"ros-humble-compressed-image-transport-2.5.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693423475,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0847f1dc1a2c776f5060097d3e13a8ec","name":"ros-humble-compressed-image-transport","requires":[],"size":195244,"version":"2.5.0","binstar":{"package_id":"6392cfea9e77a4aa6b7152fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c4e86016d7d7d8413acceb6e41b0b64fa007f07d29634e11a233f9ab5dbf085"},"ros-humble-rqt-reconfigure-1.1.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","pyyaml","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565854542,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e618be69bdf02c1c5ca7dad57f624ecd","name":"ros-humble-rqt-reconfigure","requires":[],"size":50750,"version":"1.1.1","binstar":{"package_id":"6392d02e46bec18b89018b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"21662efc314a4541f6d15f815fc65dc742b5701592bdc9a0e147d5065cb297fd"},"ros-humble-rqt-reconfigure-1.1.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","pyyaml","ros-humble-ament-index-python","ros-humble-python-qt-binding","ros-humble-qt-gui-py-common","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693514829,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dabcc159fdd11b8ac7c8d5866a577c2a","name":"ros-humble-rqt-reconfigure","requires":[],"size":79691,"version":"1.1.1","binstar":{"package_id":"6392d02e46bec18b89018b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7639de1daf17a8bc5cabb73a2b4cd615631b3dc69b2e8b655820c5e7831dc565"},"ros-humble-image-publisher-3.0.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-camera-info-manager","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565827414,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"98bfaeb17da98bf407b5d96c22520218","name":"ros-humble-image-publisher","requires":[],"size":114853,"version":"3.0.0","binstar":{"package_id":"6392d02f4f66fd116f8a95d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"136515b18040aec2a7236863de64ee3999e01b4079bc25d1ee394f84205ed002"},"ros-humble-image-publisher-3.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-info-manager","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693476271,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bf3aa5558a963414f1be0c2d096e9aa5","name":"ros-humble-image-publisher","requires":[],"size":120031,"version":"3.0.0","binstar":{"package_id":"6392d02f4f66fd116f8a95d6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"727d771a121df72e713341c80ee19dca832a4eff59fdc0e7b04ada9cfa790339"},"ros-humble-turtlebot3-node-2.1.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","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.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565931753,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"029314ff64559ddd5b02aa651fa34cd5","name":"ros-humble-turtlebot3-node","requires":[],"size":22696,"version":"2.1.5","binstar":{"package_id":"6392d03166b3e4e3def05409","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"48b09ea164219bfbc48af365947c29a689f5eb48f94eae1b5fe17daae3bfdd8c"},"ros-humble-turtlebot3-node-2.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","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":"py310h7c61026_3","timestamp":1675693617181,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"58f8a52381fb38baf6254727143c05be","name":"ros-humble-turtlebot3-node","requires":[],"size":24922,"version":"2.1.5","binstar":{"package_id":"6392d03166b3e4e3def05409","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"78a28983de6170613a476293652e6418e95d9bb9d6a1f5470a26f782e179bea5"},"ros-humble-ros-gz-image-0.244.9-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","libstdcxx-ng >=12","python","python_abi 3.10.*","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.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565633278,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"392b5260738e5d23cfd277d554551052","name":"ros-humble-ros-gz-image","requires":[],"size":73802,"version":"0.244.9","binstar":{"package_id":"6392d032358aafdd3d9e34ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"401a0f805115246467f874b9b8dcdffb7229c6df40f0bd68d9840d8529ecfc2b"},"ros-humble-ros-gz-image-0.244.9-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-msgs8 >=8.7.0,<9.0a0","libignition-transport11 >=11.3.2,<12.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-transport","ros-humble-rclcpp","ros-humble-ros-gz-bridge","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693215283,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d48bd67b78a3ae9a5374c9de4442b7f6","name":"ros-humble-ros-gz-image","requires":[],"size":76628,"version":"0.244.9","binstar":{"package_id":"6392d032358aafdd3d9e34ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45f4d9ce0ac5d4e0dcb4c622869c5a592da29f19be48b232156b7af5bc4acb42"},"ros-humble-image-view-3.0.0-py310hd15adc0_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-camera-calibration-parsers","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-stereo-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310hd15adc0_2","timestamp":1670565779551,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"14adf0d0ade16f3d84e9d61399080c2f","name":"ros-humble-image-view","requires":[],"size":390011,"version":"3.0.0","binstar":{"package_id":"6392d03466b3e4e3def05513","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c69a9eeeeff017bdb062131a60c36038f35dfbc6374d86260f57f29b721347f8"},"ros-humble-image-view-3.0.0-py310he1f1850_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-calibration-parsers","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-stereo-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310he1f1850_3","timestamp":1675693402485,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ed99d899a3cfcc6a511acba7964ad79a","name":"ros-humble-image-view","requires":[],"size":394231,"version":"3.0.0","binstar":{"package_id":"6392d03466b3e4e3def05513","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77b32159ff61270e92d81d068334f5c581eab0137fc574af3f993806105bb455"},"ros-humble-rqt-image-view-1.2.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-cv-bridge","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-qt-gui-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-cpp","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h413e681_2","timestamp":1670566054368,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f4451394bac1c8d9b9f8a13dd0eefcf8","name":"ros-humble-rqt-image-view","requires":[],"size":211656,"version":"1.2.0","binstar":{"package_id":"6392d0ac4f66fd116f8ab97f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dea4ecdc9792a49fb25a645e3a9c1cd25a445c02215283376a6c079a6088fa16"},"ros-humble-rqt-image-view-1.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-cv-bridge","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-qt-gui-cpp","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-cpp","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675693461498,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"07e8fbccf56a8e995fe15f561a8c743a","name":"ros-humble-rqt-image-view","requires":[],"size":216218,"version":"1.2.0","binstar":{"package_id":"6392d0ac4f66fd116f8ab97f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0b597404007165c941752ea7929c0c1c588674bc109a29f8aa3c60a25b9f9b7e"},"ros-humble-compressed-depth-image-transport-2.5.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565774889,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cbfd00e9cd2235b065a85a61adf49f37","name":"ros-humble-compressed-depth-image-transport","requires":[],"size":174865,"version":"2.5.0","binstar":{"package_id":"6392d0ae2b3749bdb87dab11","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12bf6120aa147bc43c797e83ce02637dd8ec73d218a69e670be032d7701a1a67"},"ros-humble-compressed-depth-image-transport-2.5.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693222730,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3098dce16a3b131b7173b50b6aadf3d3","name":"ros-humble-compressed-depth-image-transport","requires":[],"size":178422,"version":"2.5.0","binstar":{"package_id":"6392d0ae2b3749bdb87dab11","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f734a2cada8c8af644ca99d46d2c17ec994598c4fb58b9f9da5335371da8a1b0"},"ros-humble-image-proc-3.0.0-py310h39d476f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-transport","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tracetools-image-pipeline","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h39d476f_2","timestamp":1670565934800,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d237750fea49fd086d28cf6bfdda3e40","name":"ros-humble-image-proc","requires":[],"size":105965,"version":"3.0.0","binstar":{"package_id":"6392d0b154e9ace854df932d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9fbd8690c15973318284c632f7377f580c244e064bd86118415c42e51339f506"},"ros-humble-image-proc-3.0.0-py310h0699a7d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-transport","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tracetools-image-pipeline","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h0699a7d_3","timestamp":1675693361536,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"40884ae7dc2135437086481243f4622a","name":"ros-humble-image-proc","requires":[],"size":110607,"version":"3.0.0","binstar":{"package_id":"6392d0b154e9ace854df932d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5a2c341ec8eb4513202ba8858df108bc3d38b3cc01bca8969d683838d0b4f8dc"},"ros-humble-tf2-bullet-0.25.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["bullet","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565837535,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c6be19618f3afaa4ad6c9b5f33bcbfd4","name":"ros-humble-tf2-bullet","requires":[],"size":13365,"version":"0.25.1","binstar":{"package_id":"6392d0b22b3749bdb87dab51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f6f0c739944abec6574c92d4b825d3cb806cf66ffd2058e777b7f532d6dd4bb9"},"ros-humble-tf2-bullet-0.25.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["bullet","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693278587,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cfc26c798fc051657feda5e7e2b9c133","name":"ros-humble-tf2-bullet","requires":[],"size":16019,"version":"0.25.2","binstar":{"package_id":"6392d0b22b3749bdb87dab51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a339de6308d46005dc023f31efbf441a229b12c35ff5ef14f0fffcb12ee515b"},"ros-humble-rqt-msg-1.2.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670565974223,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9f783f9caf9d72ee6c1cc8e6df20734c","name":"ros-humble-rqt-msg","requires":[],"size":18055,"version":"1.2.0","binstar":{"package_id":"6392d0b5a2b71210083fac8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"944a7aec83154b43a59d0abd04e6d3f3c407f75243cc80e32c3123ad74f9d9e3"},"ros-humble-rqt-msg-1.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693393204,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3c0da19776de3b3c05d1adb35fd54661","name":"ros-humble-rqt-msg","requires":[],"size":26567,"version":"1.2.0","binstar":{"package_id":"6392d0b5a2b71210083fac8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8c2b905b79efb4bbdb7a2cbff5289ee528891d239eda17740c165323b7c0df6"},"ros-humble-ros-ign-bridge-0.244.9-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-bridge","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639114771,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bfa20816991faeb6c0601ec668b44d61","name":"ros-humble-ros-ign-bridge","requires":[],"size":17671,"version":"0.244.9","binstar":{"package_id":"6392d267ead2dcc8c207b6da","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b9768dbf513e3544406c64935246728357de086b0743de312a2fc54e572a6c2e"},"ros-humble-ros-ign-bridge-0.244.9-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-bridge","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692521264,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7b8d91232611f2ecf50ed5b64307de20","name":"ros-humble-ros-ign-bridge","requires":[],"size":17775,"version":"0.244.9","binstar":{"package_id":"6392d267ead2dcc8c207b6da","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd464c8a01d86708e815e134bd6562d1f196c64d3b36cbc43b8b4afd2936ad4e"},"ros-humble-robot-controllers-0.9.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.10.*","ros-humble-angles","ros-humble-control-msgs","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-nav-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-robot-controllers-interface","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros-humble-urdf","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566820797,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5dc31b9f9ba324caeae16f2584d5f225","name":"ros-humble-robot-controllers","requires":[],"size":552836,"version":"0.9.3","binstar":{"package_id":"6392d3a946f81babca292b70","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a64eba3baf1b0969eb9fc2f2087478aaa7e9562c094531f718ac23350256f69"},"ros-humble-robot-controllers-0.9.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-control-msgs","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-nav-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-robot-controllers-interface","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694048512,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2682d95cb3fb9d4b45711b03321b2fb1","name":"ros-humble-robot-controllers","requires":[],"size":552453,"version":"0.9.3","binstar":{"package_id":"6392d3a946f81babca292b70","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca0728151132d238093816f79f718f0bd2885b12dce5d6e4b89fdea0bd12e467"},"ros-humble-warehouse-ros-2.0.4-py310hbde123d_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","openssl >=1.1.1s,<1.1.2a","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hbde123d_2","timestamp":1670566815904,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b5867ba85e897ed10829a9a40ed4155d","name":"ros-humble-warehouse-ros","requires":[],"size":164865,"version":"2.0.4","binstar":{"package_id":"6392d3dde6a2f79ab84eb69a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc7b26eeb846b0852b0dd76c3cd22a83343ee274ce9276695533cffdc91dce26"},"ros-humble-warehouse-ros-2.0.4-py310h5b1920c_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h5b1920c_3","timestamp":1675859332763,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0e08de4f9aac7711d40a8d4405f983d8","name":"ros-humble-warehouse-ros","requires":[],"size":167427,"version":"2.0.4","binstar":{"package_id":"6392d3dde6a2f79ab84eb69a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9be3a3ba8e0ee5d945bcdbc35acb9703441cdf2d13121857db017fa295390875"},"ros-humble-ros2component-0.18.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-composition-interfaces","ros-humble-rcl-interfaces","ros-humble-rclcpp-components","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566874802,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2336e45bf902a6303d306c6702089bc7","name":"ros-humble-ros2component","requires":[],"size":21969,"version":"0.18.4","binstar":{"package_id":"6392d3de4f66fd116f8c9768","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e30200e6b3780e6c9e87a13f3c54fe796e749881ac63090bc1b696f3e5ead9a7"},"ros-humble-ros2component-0.18.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-composition-interfaces","ros-humble-rcl-interfaces","ros-humble-rclcpp-components","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693997892,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a157da346f18df4df4a871b8cc4ac7d3","name":"ros-humble-ros2component","requires":[],"size":34610,"version":"0.18.5","binstar":{"package_id":"6392d3de4f66fd116f8c9768","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"624023cd9d8822b796b053c9609f577e9d02a844825c6362a81db5096a52f2e0"},"ros-humble-interactive-markers-2.3.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566736066,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cb0b532e7f52d0e32440750d168cc78f","name":"ros-humble-interactive-markers","requires":[],"size":304151,"version":"2.3.2","binstar":{"package_id":"6392d3e0114c465c98ce4cac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ff8690b787cb2cff7e00cd824af04faecd113fe0b332e068086db24d10135b1"},"ros-humble-interactive-markers-2.3.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693842168,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"160ddd97a73fc481317897b82ea72abe","name":"ros-humble-interactive-markers","requires":[],"size":317179,"version":"2.3.2","binstar":{"package_id":"6392d3e0114c465c98ce4cac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1774a461ecadefac3a4502a06440c050d41f59ba68a59c78f2a1ef1655c97d9a"},"ros-humble-moveit-resources-fanuc-moveit-config-2.0.6-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-joint-state-publisher","ros-humble-moveit-resources-fanuc-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566763781,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b453061c8eaef51ab80d95ae9e04fc88","name":"ros-humble-moveit-resources-fanuc-moveit-config","requires":[],"size":20318,"version":"2.0.6","binstar":{"package_id":"6392d3e24f66fd116f8c983f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca849ac1819802f8ae331c448bc586056f08a96a6527e06e7e56ab318f7fcff4"},"ros-humble-moveit-resources-fanuc-moveit-config-2.0.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-moveit-resources-fanuc-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693874622,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d0ecdd7564cafe4aec8b731716ecbda1","name":"ros-humble-moveit-resources-fanuc-moveit-config","requires":[],"size":23128,"version":"2.0.6","binstar":{"package_id":"6392d3e24f66fd116f8c983f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c717d8d8f842995164b947f422d8ce13afbdf40a382ed3304825ecfa97e3b5cb"},"ros-humble-sros2-0.10.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["cryptography","importlib_resources","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566848367,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"23e3ffd5e43b7eca7a3649759fcdfb54","name":"ros-humble-sros2","requires":[],"size":39531,"version":"0.10.4","binstar":{"package_id":"6392d3e39e77a4aa6b717268","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f28b30bbf38a671fc1c2cbf5671c9ab7fc55419af5c2d64232bb0f2ee0aab03"},"ros-humble-sros2-0.10.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["cryptography","importlib_resources","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2cli","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693967871,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0c523d764b32699f9bf37f379c02233f","name":"ros-humble-sros2","requires":[],"size":60096,"version":"0.10.4","binstar":{"package_id":"6392d3e39e77a4aa6b717268","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e810d3c3a1ac8fd9ff0bd60e41d19d07085aba16d8cc7ac7aa0a81c5febd5141"},"ros-humble-rqt-srv-1.0.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-msg","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670567006210,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"94a621a69ea8d7c6ccd228a4a993edce","name":"ros-humble-rqt-srv","requires":[],"size":10169,"version":"1.0.3","binstar":{"package_id":"6392d46646bec18b89032a69","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f090e3ae0a51c4d99efe662f421e448e7ff5633fe807164da0ee7dfc4a588eaa"},"ros-humble-rqt-srv-1.0.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-msg","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694300677,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1c5e96d2bc4c9b7509e4b4130602dd84","name":"ros-humble-rqt-srv","requires":[],"size":13720,"version":"1.0.3","binstar":{"package_id":"6392d46646bec18b89032a69","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"05f53c2f667fa93aae05b29d1cb932b20ad5748a3627263573a969807bd54807"},"ros-humble-rqt-action-2.0.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-msg","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670567025019,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9729387d7e83070db466bab9cf04bfb0","name":"ros-humble-rqt-action","requires":[],"size":10243,"version":"2.0.1","binstar":{"package_id":"6392d4686a03c9fad2899056","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f227f7f22478d4c7578ae13c1f898f8e837737cef4de9aab457922f70656d1ee"},"ros-humble-rqt-action-2.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-msg","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694328463,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a94f7e88d622b0adaa758071b224d67e","name":"ros-humble-rqt-action","requires":[],"size":13718,"version":"2.0.1","binstar":{"package_id":"6392d4686a03c9fad2899056","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6ecc3d56b4f8819d5aa69fd5a0a9296cec9a6e14b5ba4a3a5d767f464a15e754"},"ros-humble-depth-image-proc-3.0.0-py310h39d476f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-stereo-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h39d476f_2","timestamp":1670566978201,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1153bafe80cab2c93ed9078f67a0bb8c","name":"ros-humble-depth-image-proc","requires":[],"size":443136,"version":"3.0.0","binstar":{"package_id":"6392d475bbbc2b1e965e53ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7194ab73297002fe4f753db704d5221c800d8f53f5620cc696a4374ce450743a"},"ros-humble-depth-image-proc-3.0.0-py310h0699a7d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-stereo-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h0699a7d_3","timestamp":1675694259749,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4936b1736a79daa257da6d14bef07c88","name":"ros-humble-depth-image-proc","requires":[],"size":440651,"version":"3.0.0","binstar":{"package_id":"6392d475bbbc2b1e965e53ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79688d0a0f8384450ce32535c9fcb35cbf17d3c4a1271815554be69f0b8b4ab0"},"ros-humble-image-rotate-3.0.0-py310h39d476f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h39d476f_2","timestamp":1670566857907,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5ec20596d419990f36ce9a52efc32be6","name":"ros-humble-image-rotate","requires":[],"size":83853,"version":"3.0.0","binstar":{"package_id":"6392d4769e77a4aa6b719acd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"768ddb4de8f8cd2279b9f370cce2077640676abbe06d7aeeac851cc4792a014d"},"ros-humble-image-rotate-3.0.0-py310h0699a7d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-rcl-interfaces","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h0699a7d_3","timestamp":1675694079379,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"51bb190faa35b67854f8b55cda03be70","name":"ros-humble-image-rotate","requires":[],"size":88251,"version":"3.0.0","binstar":{"package_id":"6392d4769e77a4aa6b719acd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd0db1d6d6373c320ee65de5c116d8587368f995a307d77d3535725684b1d070"},"ros-humble-stereo-image-proc-3.0.0-py310h39d476f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.*","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-proc","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-stereo-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h39d476f_2","timestamp":1670566796356,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f3210f2fb375c0716dd216a073ee4ab5","name":"ros-humble-stereo-image-proc","requires":[],"size":408382,"version":"3.0.0","binstar":{"package_id":"6392d478a2b712100843435e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df563034fe440bb06a8cb08f488006cb2592569586cb65d6e134f74a2f6f8398"},"ros-humble-stereo-image-proc-3.0.0-py310h0699a7d_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-geometry","ros-humble-image-proc","ros-humble-image-transport","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-stereo-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h0699a7d_3","timestamp":1675693984777,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b0c7601bac983d048969f4502d9d7236","name":"ros-humble-stereo-image-proc","requires":[],"size":430439,"version":"3.0.0","binstar":{"package_id":"6392d478a2b712100843435e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"29ae68c27abde49a96c973cbd2d50269fc36a316378db8069c5399a1dcad79c7"},"ros-humble-dummy-robot-bringup-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-python","ros-humble-dummy-map-server","ros-humble-dummy-sensors","ros-humble-launch","ros-humble-launch-ros","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670567049610,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8e8c751563b17f624e9a3373aa7c8b00","name":"ros-humble-dummy-robot-bringup","requires":[],"size":13175,"version":"0.20.2","binstar":{"package_id":"6392d48ca2b7121008434a42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"764533e9c3314eea1c581ead93e40768c28dd070dbc0664080fca9e7c87f2a78"},"ros-humble-dummy-robot-bringup-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-dummy-map-server","ros-humble-dummy-sensors","ros-humble-launch","ros-humble-launch-ros","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694281093,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"44dfff4fd667d820ebb43d668768ea36","name":"ros-humble-dummy-robot-bringup","requires":[],"size":15920,"version":"0.20.3","binstar":{"package_id":"6392d48ca2b7121008434a42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6020348f7f19fefd0175a58b694ee866b560d7e67385d8f2918d8585e3064339"},"ros-humble-image-common-3.1.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-camera-calibration-parsers","ros-humble-camera-info-manager","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566882780,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e0cf6a976f1ce06f13170f53960e67fa","name":"ros-humble-image-common","requires":[],"size":9363,"version":"3.1.5","binstar":{"package_id":"6392d48ea2b7121008434aa6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a7c79d3fdf50e6e7f89185aee9ff2a2cfe987fa612d927312e90f26bfbf62a4f"},"ros-humble-image-common-3.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-calibration-parsers","ros-humble-camera-info-manager","ros-humble-image-transport","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693260222,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"abf6913717d81b8ab906adb006d8bdba","name":"ros-humble-image-common","requires":[],"size":11542,"version":"3.1.5","binstar":{"package_id":"6392d48ea2b7121008434aa6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81c08952a837aa35c74e8fbe6a392d208ef373b73b89de1f98a9fef4ae732858"},"ros-humble-pendulum-control-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-pendulum-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rttest","ros-humble-tlsf-cpp","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566956541,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2f50b8161f061e0b40f722d1ccedbb2e","name":"ros-humble-pendulum-control","requires":[],"size":365596,"version":"0.20.2","binstar":{"package_id":"6392d4902b3749bdb87ef660","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5388ec583be515031f66be81d452e90a94f31ba74ff7161667c8a1901b1464fe"},"ros-humble-pendulum-control-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pendulum-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rttest","ros-humble-tlsf-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694194600,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d398adbd556b482bad3e73cbcf5a7754","name":"ros-humble-pendulum-control","requires":[],"size":365169,"version":"0.20.3","binstar":{"package_id":"6392d4902b3749bdb87ef660","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79d9c7d343be9708c7bc6c6982eb33810ee9ac341ff41989a3cc4d8d1a96700d"},"ros-humble-lifecycle-0.20.2-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-lifecycle-msgs","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670567020972,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b55b27ae4313e4f14851953105997779","name":"ros-humble-lifecycle","requires":[],"size":246513,"version":"0.20.2","binstar":{"package_id":"6392d49546f81babca29cd12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"754d898987ffce47f2f0926f3633a3e4281e0f20e2254e7c6dd221d5a0a0ed19"},"ros-humble-lifecycle-0.20.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-lifecycle-msgs","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694250093,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"de4f256a7c307884b134a2a18c899c53","name":"ros-humble-lifecycle","requires":[],"size":247682,"version":"0.20.3","binstar":{"package_id":"6392d49546f81babca29cd12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7e47ac4dd3b922e60877da1b427b3a01b3f43e19d4a7251cc1c770e4d5f5a633"},"ros-humble-laser-filters-2.0.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-angles","ros-humble-filters","ros-humble-laser-geometry","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566840116,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f15d9738f3ee57814a029bf29bd4a689","name":"ros-humble-laser-filters","requires":[],"size":979084,"version":"2.0.5","binstar":{"package_id":"6392d498114c465c98ce6343","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7fd97e95d1d656e8ee62921af0c131373e3f78326a9b1a2e3c5ad21078eb3110"},"ros-humble-laser-filters-2.0.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-filters","ros-humble-laser-geometry","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693219592,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9bb8c0ecba38f300b018c627bcbac5f7","name":"ros-humble-laser-filters","requires":[],"size":988091,"version":"2.0.5","binstar":{"package_id":"6392d498114c465c98ce6343","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b0bdeaedf1dc78172671d586f682e9e24e346ebc20bcb8df75ec3fcc8c46c0b"},"ros-humble-system-modes-0.9.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-system-modes-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566798898,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a85aa90fffde6deff1bdf2d4692239de","name":"ros-humble-system-modes","requires":[],"size":822620,"version":"0.9.0","binstar":{"package_id":"6392d4ad66b3e4e3def23b3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2b95d1d2ecbd9acb9b6287a93649e049cde0c58c650a8bf7d6fcb8b1d5376fd1"},"ros-humble-system-modes-0.9.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-launch-ros","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-system-modes-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693931074,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"52094fbbbb3d37335fc4e6ac703a26df","name":"ros-humble-system-modes","requires":[],"size":820346,"version":"0.9.0","binstar":{"package_id":"6392d4ad66b3e4e3def23b3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84986bb0587a6553eaafbe44e8171d75218c901211baa0bbd3369e221a6c284b"},"ros-humble-turtlebot3-fake-node-2.2.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-cmake","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-msgs","ros-humble-turtlebot3-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566701899,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1325fbf7541093606684b1d9f5f6f833","name":"ros-humble-turtlebot3-fake-node","requires":[],"size":168005,"version":"2.2.5","binstar":{"package_id":"6392d4ae4f66fd116f8d1251","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fa3ce9d9404690f896ae7b52496812acecc26b999b7b9fd50e348e9617a1b4ce"},"ros-humble-turtlebot3-fake-node-2.2.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-msgs","ros-humble-turtlebot3-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693827691,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e8ce482e6c968608f4fa20d596b4c3d8","name":"ros-humble-turtlebot3-fake-node","requires":[],"size":170332,"version":"2.2.5","binstar":{"package_id":"6392d4ae4f66fd116f8d1251","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b8205766d12429666cbb404e6c201149e45ac00d9530207efef7d3c3a2023b7"},"ros-humble-turtle-tf2-py-0.3.6-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-launch-ros","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-turtlesim","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566848905,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"854aeaf47212eba0880a17230af93be4","name":"ros-humble-turtle-tf2-py","requires":[],"size":21136,"version":"0.3.6","binstar":{"package_id":"6392d4ae4f66fd116f8d1275","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a93aa6779c12e495dbb6b9f02d6759502de8423be1e009610b05d55ea398352"},"ros-humble-turtle-tf2-py-0.3.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-launch-ros","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-turtlesim","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693214938,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"beec2766148a1b73fa786f44dd8b3243","name":"ros-humble-turtle-tf2-py","requires":[],"size":29533,"version":"0.3.6","binstar":{"package_id":"6392d4ae4f66fd116f8d1275","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4eb66a91e19dc8d3bb12cd55331364cc956bf8b281eeb478818b6ab0fb4dbca0"},"ros-humble-robot-localization-3.3.1-py310he1f1850_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","eigen","geographiclib-cpp >=2.1.1,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.*","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.*","ros2-distro-mutex 0.2.*"],"build":"py310he1f1850_2","timestamp":1670567080798,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bb68e34bdede0d2a83cdb9d1486a8cf4","name":"ros-humble-robot-localization","requires":[],"size":1012797,"version":"3.3.1","binstar":{"package_id":"6392d4af46f81babca29fc5f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"232cfed4be91d826dab2c6483826fbda4d9ca401c65c8ae5e5f870f989878a44"},"ros-humble-robot-localization-3.3.1-py310he1f1850_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","eigen","geographiclib-cpp >=2.1.2,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-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":"py310he1f1850_3","timestamp":1675693948365,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"57cdec14cb4d0b1d3d6c2ebd5df78191","name":"ros-humble-robot-localization","requires":[],"size":1031068,"version":"3.3.1","binstar":{"package_id":"6392d4af46f81babca29fc5f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f6005ce58dd7da4d79adda7ed7b891335102f2d161a2b2ee30495e0189994000"},"ros-humble-robot-localization-3.5.1-py310he1f1850_4.tar.bz2":{"build_number":4,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","eigen","geographiclib-cpp >=2.2,<2.3.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-diagnostic-msgs","ros-humble-diagnostic-updater","ros-humble-geographic-msgs","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rmw-implementation","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310he1f1850_4","timestamp":1686667307151,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f9160ade7c65bc6e5b1fb2e2f14e867d","name":"ros-humble-robot-localization","requires":[],"size":1038656,"version":"3.5.1","binstar":{"package_id":"6392d4af46f81babca29fc5f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a1fd3710f483ea5d2cd0ce501193521e6b164d70d2eedb410aa968cadc797b7d"},"ros-humble-turtle-tf2-cpp-0.3.6-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-launch-ros","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-turtlesim","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566924649,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f4bf6b4f5c1d54b9297329537cdba002","name":"ros-humble-turtle-tf2-cpp","requires":[],"size":408728,"version":"0.3.6","binstar":{"package_id":"6392d4b0114c465c98cea660","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"747533fa9f68fb24a4046b4973381d469e818c66bdf161a685d1139107974a56"},"ros-humble-turtle-tf2-cpp-0.3.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-launch-ros","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-turtlesim","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694110190,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"729b9a8eec786a90e18f1f2508f440e7","name":"ros-humble-turtle-tf2-cpp","requires":[],"size":414765,"version":"0.3.6","binstar":{"package_id":"6392d4b0114c465c98cea660","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fec81ffc2e14ff1c6eeb3054ffcfcd3902e6c2bf023cabf200aafe73a5fa38c6"},"ros-humble-joint-state-publisher-gui-2.3.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-joint-state-publisher","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566786120,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3f9d014a39e2565e9b1c59ce44047369","name":"ros-humble-joint-state-publisher-gui","requires":[],"size":17711,"version":"2.3.0","binstar":{"package_id":"6392d4eb46f81babca2a0f34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"899411a45d29553f78f757b1d0f6429a03e15b48590af8ca7272e0939ccabef8"},"ros-humble-joint-state-publisher-gui-2.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693920975,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9f7f06c11f64480d0f53163c93187fd2","name":"ros-humble-joint-state-publisher-gui","requires":[],"size":27176,"version":"2.3.0","binstar":{"package_id":"6392d4eb46f81babca2a0f34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d7b921410eb1278054e66155311ce27ae5104b7874bf408c7240e53e5bc4f88e"},"ros-humble-nav2-util-1.1.3-py310hd15adc0_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-action-msgs","ros-humble-bond","ros-humble-bondcpp","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-launch-testing-ament-cmake","ros-humble-lifecycle-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-msgs","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310hd15adc0_2","timestamp":1670566734822,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c99a896f1c4a8967252ef859f0464246","name":"ros-humble-nav2-util","requires":[],"size":224875,"version":"1.1.3","binstar":{"package_id":"6392d4ec96cc569e10636f4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dcd50884227c03c3be5c411a4cc37fa2536b00cb62df10f1ce2744dd18535c22"},"ros-humble-nav2-util-1.1.5-py310he1f1850_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-msgs","ros-humble-bond","ros-humble-bondcpp","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-launch-testing-ament-cmake","ros-humble-lifecycle-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-msgs","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310he1f1850_3","timestamp":1675693863478,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3acaefaddd3a5bded5d781cb9e9cbacc","name":"ros-humble-nav2-util","requires":[],"size":226104,"version":"1.1.5","binstar":{"package_id":"6392d4ec96cc569e10636f4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c57758e561d01b254753dbc755bf4961be853431ba0dcf242d9ec1a39b667775"},"ros-humble-image-transport-plugins-2.5.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","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.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670567070601,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d93224f940d23fa5b2d7cb46905b6126","name":"ros-humble-image-transport-plugins","requires":[],"size":9464,"version":"2.5.0","binstar":{"package_id":"6392d510d9a997aae74ed97c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2f31ec144e0b6a3e7dac69b5a72944a8befb7bd967c4d842402d7539d55e4e7"},"ros-humble-image-transport-plugins-2.5.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-compressed-depth-image-transport","ros-humble-compressed-image-transport","ros-humble-ros-workspace","ros-humble-theora-image-transport","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694224503,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6acdea01fd85c990ba95b5a5d4cfccdd","name":"ros-humble-image-transport-plugins","requires":[],"size":12638,"version":"2.5.0","binstar":{"package_id":"6392d510d9a997aae74ed97c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"158cab496ef9720073bc0b51a57692315e869d28a0f644e02716d03999c37b04"},"ros-humble-pcl-ros-2.4.0-py310h388ef92_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-pcl-conversions","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h388ef92_2","timestamp":1670567151225,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"095fdc13f4afd61a885239c2387cb209","name":"ros-humble-pcl-ros","requires":[],"size":85448,"version":"2.4.0","binstar":{"package_id":"6392d5112dd706205581ab32","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33988c5cabc4eb325cf15b792a9a32d9bf8e9b1c330b9f965b0c69c73f7e7006"},"ros-humble-pcl-ros-2.4.0-py310h49fac9a_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-pcl-conversions","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h49fac9a_3","timestamp":1675694318136,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"afdacd6d90e7bbbc6386422466aac8b0","name":"ros-humble-pcl-ros","requires":[],"size":90081,"version":"2.4.0","binstar":{"package_id":"6392d5112dd706205581ab32","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75004ee200bcc7373a938f428eea84c075780d48a535828b7f606f84a46601e7"},"ros-humble-geometry2-0.25.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-bullet","ros-humble-tf2-eigen","ros-humble-tf2-eigen-kdl","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-msgs","ros-humble-tf2-py","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-tf2-tools","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670567182526,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1ce936b895325f592a81fa3133a630df","name":"ros-humble-geometry2","requires":[],"size":9332,"version":"0.25.1","binstar":{"package_id":"6392d512d9a997aae74ed9c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"899cf96f1c5d94fbff28af765199f83138911ce9a241ca32a9e8295375a328ef"},"ros-humble-geometry2-0.25.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-bullet","ros-humble-tf2-eigen","ros-humble-tf2-eigen-kdl","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-msgs","ros-humble-tf2-py","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-tf2-tools","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694357241,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0e43a27e1977a99dd294a7b1aec04c04","name":"ros-humble-geometry2","requires":[],"size":11926,"version":"0.25.2","binstar":{"package_id":"6392d512d9a997aae74ed9c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"954c50106aa67baf5b432aef76e2c8dd1f4314cbda5f91fa7d7df914443b7e21"},"ros-humble-gazebo-ros-3.7.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","python","python_abi 3.10.*","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.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670567038749,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ea078dd3806e997baa7ee07d71a91acf","name":"ros-humble-gazebo-ros","requires":[],"size":840360,"version":"3.7.0","binstar":{"package_id":"6392d513a2b71210084391a0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"35df49c5e6c11a1978592b58bd44bbf1c5274359ba20090fb2318e7d948aa8bc"},"ros-humble-gazebo-ros-3.7.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-gazebo-dev","ros-humble-gazebo-msgs","ros-humble-geometry-msgs","ros-humble-launch-ros","ros-humble-rcl","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-tinyxml-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694188520,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b8840d181cd52b2e783e799d44c3a309","name":"ros-humble-gazebo-ros","requires":[],"size":852519,"version":"3.7.0","binstar":{"package_id":"6392d513a2b71210084391a0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"adf440414dba94ab7b561d8d498460541c350f07f1ba192b0704b517c7c1f0a4"},"ros-humble-webots-ros2-driver-2023.0.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tinyxml2-vendor","ros-humble-vision-msgs","ros-humble-webots-ros2-importer","ros-humble-webots-ros2-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566783723,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"818f846bcded3028afc3e8d3749d7aeb","name":"ros-humble-webots-ros2-driver","requires":[],"size":926762,"version":"2023.0.0","binstar":{"package_id":"6392d51446f81babca2a18dd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52443a04324faa52e2248b955f7dedf0b77edb9ec877cdcbf221e2806a6ef25b"},"ros-humble-webots-ros2-driver-2023.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tinyxml2-vendor","ros-humble-vision-msgs","ros-humble-webots-ros2-importer","ros-humble-webots-ros2-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693918725,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6fa25eb87d4346649ed37daa10fb51f7","name":"ros-humble-webots-ros2-driver","requires":[],"size":1009734,"version":"2023.0.1","binstar":{"package_id":"6392d51446f81babca2a18dd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"103fa5bfc252b4e795c730cf03c16999ebf30332d0c4105df853b401dcc2a8f9"},"ros-humble-rviz-common-11.2.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h413e681_2","timestamp":1670567140040,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c73e9de8c067c3ac9e3425d6d9de90f9","name":"ros-humble-rviz-common","requires":[],"size":836060,"version":"11.2.4","binstar":{"package_id":"6392d523358aafdd3d9f5ae3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f21598ffdb08d4219707a3ae0d522b347573d0de0c2650472f9916fa5a746023"},"ros-humble-rviz-common-11.2.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tinyxml2-vendor","ros-humble-urdf","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675694299645,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"335d2a23c9792c6e3726f722fe1b2302","name":"ros-humble-rviz-common","requires":[],"size":822988,"version":"11.2.5","binstar":{"package_id":"6392d523358aafdd3d9f5ae3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"711ecf131f918717d905f62b20fb1ab7cc3b8983643fa47f8f62655a67fc3f0d"},"ros-humble-rosbag2-compression-0.15.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670566822812,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d73b57ca981a89efb124d05eae15b8e5","name":"ros-humble-rosbag2-compression","requires":[],"size":166890,"version":"0.15.3","binstar":{"package_id":"6392d5246d07f25db98ed570","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"284d16eb35e5a51ad92fcb249d3eac229ae975296fe516c5de09880b29f63c87"},"ros-humble-rosbag2-compression-0.15.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693968324,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ec15e6f581da87e7fe60f15097178ebd","name":"ros-humble-rosbag2-compression","requires":[],"size":169531,"version":"0.15.4","binstar":{"package_id":"6392d5246d07f25db98ed570","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b56dd693f15a6b73a7b5a26742d252bd80f8d0243fdad1ed18c6f3695c62c677"},"ros-humble-controller-manager-2.18.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-ament-index-cpp","ros-humble-controller-interface","ros-humble-controller-manager-msgs","ros-humble-hardware-interface","ros-humble-launch","ros-humble-launch-ros","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-ros2-control-test-assets","ros-humble-ros2param","ros-humble-ros2run","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670567200827,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"81c5529c5203bef9581bc7c265f70df7","name":"ros-humble-controller-manager","requires":[],"size":317983,"version":"2.18.0","binstar":{"package_id":"6392d52566b3e4e3def27bbc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4824595b237ea694b4d0878a9ba3c1cb7a494a8d40db402fde715d28e59de6b0"},"ros-humble-controller-manager-2.22.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-controller-manager-msgs","ros-humble-diagnostic-updater","ros-humble-hardware-interface","ros-humble-launch","ros-humble-launch-ros","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-ros2-control-test-assets","ros-humble-ros2param","ros-humble-ros2run","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694378284,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"63786171a6674cbc2d4749b627933bcc","name":"ros-humble-controller-manager","requires":[],"size":379330,"version":"2.22.0","binstar":{"package_id":"6392d52566b3e4e3def27bbc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a282f0bf115693d4328f186b25f7b6b642b175fa55f63167ffc6466009fc5e7"},"ros-humble-rosapi-1.3.1-py310h7c61026_4.tar.bz2":{"build_number":4,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rcl-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros-humble-ros2service","ros-humble-ros2topic","ros-humble-rosapi-msgs","ros-humble-rosbridge-library","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_4","timestamp":1686904602531,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b95acb93cd8bb37e320aa8ec1c0c3b11","name":"ros-humble-rosapi","requires":[],"size":41046,"version":"1.3.1","binstar":{"package_id":"6392d87a6a03c9fad28c3aaf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1904fd8b346c6b7f0b1009c96a37f4df6e65b85aefb9469aa23f26ecb7f7f6a7"},"ros-humble-image-pipeline-3.0.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-camera-calibration","ros-humble-depth-image-proc","ros-humble-image-proc","ros-humble-image-publisher","ros-humble-image-rotate","ros-humble-image-view","ros-humble-ros-workspace","ros-humble-stereo-image-proc","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670569262919,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"12891dcce81099f461010d789477b653","name":"ros-humble-image-pipeline","requires":[],"size":12726,"version":"3.0.0","binstar":{"package_id":"6392dd3c13f4c7e7c558ba97","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a60e2baba6ff8d3a4d7203ed14c4579a304573d2b55b66605163eb9a0e4105b"},"ros-humble-image-pipeline-3.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-calibration","ros-humble-depth-image-proc","ros-humble-image-proc","ros-humble-image-publisher","ros-humble-image-rotate","ros-humble-image-view","ros-humble-ros-workspace","ros-humble-stereo-image-proc","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694725878,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"375212f1baef3eff9074b68b8efeafcc","name":"ros-humble-image-pipeline","requires":[],"size":12890,"version":"3.0.0","binstar":{"package_id":"6392dd3c13f4c7e7c558ba97","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6f7ac5a993d277469e63504d399eb256f84d6910a74f0d56d9cd08678140fe61"},"ros-humble-avt-vimba-camera-2001.1.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-camera-info-manager","ros-humble-diagnostic-msgs","ros-humble-diagnostic-updater","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-std-msgs","ros-humble-stereo-image-proc","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670569317679,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c5f50759a1f9004ad7e65b28cc05e652","name":"ros-humble-avt-vimba-camera","requires":[],"size":790758,"version":"2001.1.0","binstar":{"package_id":"6392dd3d46f81babca3023fb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8529755f09dfc3c9d4fc1cc982293d5e631fbaa1f791020663f8c902a8f6f253"},"ros-humble-avt-vimba-camera-2001.1.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-info-manager","ros-humble-diagnostic-msgs","ros-humble-diagnostic-updater","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-std-msgs","ros-humble-stereo-image-proc","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694853830,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ff9188cdc9dd6530531d28960a428ff7","name":"ros-humble-avt-vimba-camera","requires":[],"size":792958,"version":"2001.1.0","binstar":{"package_id":"6392dd3d46f81babca3023fb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c0986c095bc264df168bbfff14349e6cf6b4da43bfa175cbbd6988b91c8103e"},"ros-humble-perception-pcl-2.4.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-pcl-conversions","ros-humble-pcl-msgs","ros-humble-pcl-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670569224571,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ae9e6fd99c7e40056f8ded4af1b2623f","name":"ros-humble-perception-pcl","requires":[],"size":12589,"version":"2.4.0","binstar":{"package_id":"6392dd3ee6a2f79ab85163a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ba44508ba7116247e20a83f14296ce418418ed2b3048d14fa91eb5bd273b8d8"},"ros-humble-perception-pcl-2.4.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pcl-conversions","ros-humble-pcl-msgs","ros-humble-pcl-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694678893,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0eb8cbd7c285cea843e789d74945b2bc","name":"ros-humble-perception-pcl","requires":[],"size":12867,"version":"2.4.0","binstar":{"package_id":"6392dd3ee6a2f79ab85163a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e437226facb7189ccc9e87644492548a8f2e36c170cc6d9b422709e8137ca1f9"},"ros-humble-nav2-velocity-smoother-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670569276846,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1ac9cbdbca8ca3932f218210dbe1ec1a","name":"ros-humble-nav2-velocity-smoother","requires":[],"size":173740,"version":"1.1.3","binstar":{"package_id":"6392dd96bbbc2b1e96622372","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"388ea3ff217e4eb2e59792d616e1e6a95ea82634830cd86103688d326c836675"},"ros-humble-nav2-velocity-smoother-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694713574,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fe79f555736cfb81f20bd876f56a79b6","name":"ros-humble-nav2-velocity-smoother","requires":[],"size":173827,"version":"1.1.5","binstar":{"package_id":"6392dd96bbbc2b1e96622372","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"41fd78c59ef751af2bc85d418d0615314e2772eebe800e6eb55ddde57f28aba3"},"ros-humble-ros2cli-common-extensions-0.1.1-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-ros-workspace","ros-humble-ros2action","ros-humble-ros2cli","ros-humble-ros2component","ros-humble-ros2doctor","ros-humble-ros2interface","ros-humble-ros2launch","ros-humble-ros2lifecycle","ros-humble-ros2multicast","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros-humble-ros2run","ros-humble-ros2service","ros-humble-ros2topic","ros-humble-sros2","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670569416990,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"61c982d7f9a75f36884368f2a22ac97a","name":"ros-humble-ros2cli-common-extensions","requires":[],"size":11554,"version":"0.1.1","binstar":{"package_id":"6392dd9854e9ace854e2f7d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"63717fd2c91ec4136ff307a3250de588df508f4b9264c8b23e69c8a7fe7ee80d"},"ros-humble-ros2cli-common-extensions-0.1.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-ros-workspace","ros-humble-ros2action","ros-humble-ros2cli","ros-humble-ros2component","ros-humble-ros2doctor","ros-humble-ros2interface","ros-humble-ros2launch","ros-humble-ros2lifecycle","ros-humble-ros2multicast","ros-humble-ros2node","ros-humble-ros2param","ros-humble-ros2pkg","ros-humble-ros2run","ros-humble-ros2service","ros-humble-ros2topic","ros-humble-sros2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694661963,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"310ed3a8554eeea856eb2e6e5d6ec62e","name":"ros-humble-ros2cli-common-extensions","requires":[],"size":11753,"version":"0.1.1","binstar":{"package_id":"6392dd9854e9ace854e2f7d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"925e4da57a9687982849c320ea497746282847af0e36d6720c147453021d6c3e"},"ros-humble-nav2-amcl-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670569363419,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8add69909a8320a7c0b1df4c4f61340e","name":"ros-humble-nav2-amcl","requires":[],"size":493818,"version":"1.1.3","binstar":{"package_id":"6392dd99114c465c98cfd357","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"41ce1b815ab3ba7e4f5928c63413b2adf48f6bce5c57d5add16357a67689e799"},"ros-humble-nav2-amcl-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694814932,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"615e3f9ed3491a70178835bcb3026eea","name":"ros-humble-nav2-amcl","requires":[],"size":494743,"version":"1.1.5","binstar":{"package_id":"6392dd99114c465c98cfd357","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8cfe37f391dc5d1fcd964fcf189048e47d8ca7bfae6790bec88acc46f5da76dc"},"ros-humble-diff-drive-controller-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-controller-interface","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670569203921,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"18f527ffadaede06640f994abccab5c3","name":"ros-humble-diff-drive-controller","requires":[],"size":266481,"version":"2.15.0","binstar":{"package_id":"6392dd9a46f81babca30428d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"551c15b2fcecb47341277682876902e300f7b4e85e098a9df2cc83c59b1f9a58"},"ros-humble-diff-drive-controller-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694627178,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cc175868273d1cbfa8e827a7563fab7c","name":"ros-humble-diff-drive-controller","requires":[],"size":552977,"version":"2.16.1","binstar":{"package_id":"6392dd9a46f81babca30428d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a5170bf7de99050337cea21db4f084879f51b76c33c63f8d7da018e0fb1a1dc3"},"ros-humble-sros2-cmake-0.10.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","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":"py310h413e681_2","timestamp":1670569390107,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8046dda1fe5ed0c24f0765c1dbad3898","name":"ros-humble-sros2-cmake","requires":[],"size":12618,"version":"0.10.4","binstar":{"package_id":"6392dd9ce6a2f79ab85183f7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a386937fa0dd81a3034e6ee90e1ec94e3df5af3de487b00c6f9bc89d795b8dd6"},"ros-humble-sros2-cmake-0.10.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-sros2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694630600,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9d98d975363481a508cb7642d2271f6d","name":"ros-humble-sros2-cmake","requires":[],"size":12758,"version":"0.10.4","binstar":{"package_id":"6392dd9ce6a2f79ab85183f7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"074910f1d78799ce5c339db685ba85091fa90327dac2b187d69e47838b55d963"},"ros-humble-rosbag2-compression-zstd-0.15.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-zstd-vendor","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569533192,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"efb254a2622e05134ce4f80663012c9a","name":"ros-humble-rosbag2-compression-zstd","requires":[],"size":39492,"version":"0.15.3","binstar":{"package_id":"6392dddb46f81babca30593c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2fa0bccd2a96b3f603f22ddefd8dfbaf91a8f0fa8aabb93acf4748a54f416838"},"ros-humble-rosbag2-compression-zstd-0.15.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pluginlib","ros-humble-rcpputils","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-zstd-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694955014,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"82cc1064dc9861cab6605b15d666ebb3","name":"ros-humble-rosbag2-compression-zstd","requires":[],"size":42042,"version":"0.15.4","binstar":{"package_id":"6392dddb46f81babca30593c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b995b462023f84fdff2146388d426b4207d5355644e15515930fd30c6b4ea52"},"ros-humble-nav2-lifecycle-manager-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","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.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569411354,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"52f2294ced4af0e8b9f3b2a745cf346a","name":"ros-humble-nav2-lifecycle-manager","requires":[],"size":160006,"version":"1.1.3","binstar":{"package_id":"6392dddc358aafdd3da0b040","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9905000f1b6838cc51b81b4097ea020ee301206916ac8afbfd27ad6bde54648c"},"ros-humble-nav2-lifecycle-manager-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-bondcpp","ros-humble-diagnostic-updater","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694810524,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"49e8162f6f24418623e04c606bae0002","name":"ros-humble-nav2-lifecycle-manager","requires":[],"size":164254,"version":"1.1.5","binstar":{"package_id":"6392dddc358aafdd3da0b040","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"edb02d9efbe476543f0c3a52b552592119c9bcd4db9afa528f29fc0799806859"},"ros-humble-nav2-map-server-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["graphicsmagick","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","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.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569344590,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f7056708cf7e34e7b0fed6e56966ef14","name":"ros-humble-nav2-map-server","requires":[],"size":301562,"version":"1.1.3","binstar":{"package_id":"6392dddfead2dcc8c20db44e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9592a0d03d1f7e99d7e46d05a4c8815f474c5edcfafe56e30890ce06aca90436"},"ros-humble-nav2-map-server-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["graphicsmagick","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694732467,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fdf0f30e1a97223df93d8fb0c871dda0","name":"ros-humble-nav2-map-server","requires":[],"size":304309,"version":"1.1.5","binstar":{"package_id":"6392dddfead2dcc8c20db44e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"33df38189ba4b19c4040376def134daab8ea444c391fad3406092b120f6b4acb"},"ros-humble-moveit-resources-panda-moveit-config-2.0.6-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-joint-state-publisher","ros-humble-joint-state-publisher-gui","ros-humble-moveit-resources-panda-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569447129,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f953e2dfc205e3a8da7c3f296a121876","name":"ros-humble-moveit-resources-panda-moveit-config","requires":[],"size":25385,"version":"2.0.6","binstar":{"package_id":"6392dde046f81babca30619a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a44baa0c2b072b967ac42b8a6da95530e074b87ddd4861fa969f2213f4999d85"},"ros-humble-moveit-resources-panda-moveit-config-2.0.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-joint-state-publisher-gui","ros-humble-moveit-resources-panda-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694852032,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2f7105a6f180152e1a3f6a8338e26f2d","name":"ros-humble-moveit-resources-panda-moveit-config","requires":[],"size":29836,"version":"2.0.6","binstar":{"package_id":"6392dde046f81babca30619a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a6f9ba0345d24c2212f488c51ed7e1711a94bba96de4267b087613fea063aa3"},"ros-humble-nav-2d-utils-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569495559,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a15c045b9e788fedd4374a6947fdddf0","name":"ros-humble-nav-2d-utils","requires":[],"size":32620,"version":"1.1.3","binstar":{"package_id":"6392dde213f4c7e7c558c4aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7d2ec207f2d963081c2ce638529beb67da02d012e785b079b0044a4db6458366"},"ros-humble-nav-2d-utils-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694909323,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8229ccdd3d0ff02f5f690913ad365056","name":"ros-humble-nav-2d-utils","requires":[],"size":35388,"version":"1.1.5","binstar":{"package_id":"6392dde213f4c7e7c558c4aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2ab48e506ab522c4d7c1d27a56f93a4efc66cd123a62d0165a3334868c14175"},"ros-humble-gripper-controllers-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569274961,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"39dca6593e72b195a1ea5546116eb786","name":"ros-humble-gripper-controllers","requires":[],"size":99936,"version":"2.15.0","binstar":{"package_id":"6392de33a2b71210084a68c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3baecc3641a2439a53b6a4bcabd2381501313eccabd245b19d7562df547c06cc"},"ros-humble-gripper-controllers-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694771183,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a0a71ae93f21d6749ab46d2173b207ea","name":"ros-humble-gripper-controllers","requires":[],"size":389378,"version":"2.16.1","binstar":{"package_id":"6392de33a2b71210084a68c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da1c0bff2517884c4df8f7ab4d574bc8ea309250a29e64dce961e0f56185da4a"},"ros-humble-ros2controlcli-2.18.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pygraphviz","python","python_abi 3.10.*","ros-humble-controller-manager","ros-humble-controller-manager-msgs","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.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569712393,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"55b8806252aee556274277346ddfe076","name":"ros-humble-ros2controlcli","requires":[],"size":21860,"version":"2.18.0","binstar":{"package_id":"6392de6754e9ace854e33638","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3b1dae4ca0c8e4c30c95445e3c574a9c1c2d35b72a12fa0d2d54b672102709e"},"ros-humble-ros2controlcli-2.22.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pygraphviz","python","python_abi 3.10.* *_cp310","ros-humble-controller-manager","ros-humble-controller-manager-msgs","ros-humble-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"],"build":"py310h7c61026_3","timestamp":1675695249535,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a6c5a3963d96963653fb2c5a8725ec6b","name":"ros-humble-ros2controlcli","requires":[],"size":35899,"version":"2.22.0","binstar":{"package_id":"6392de6754e9ace854e33638","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e92eb77e11e4c47ba9cceee88e8cdd1b35c4b94b5c4a5a9d7c6235cf2f1c3f40"},"ros-humble-cartographer-ros-2.0.9000-py310he7a41c7_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["abseil-cpp","cartographer >=2.0.0,<2.1.0a0","eigen","gflags >=2.2.2,<2.3.0a0","glog >=0.6.0,<0.7.0a0","libabseil =20220623.0=cxx17*","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-cartographer-ros-msgs","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-nav-msgs","ros-humble-pcl-conversions","ros-humble-rclcpp","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310he7a41c7_2","timestamp":1670569626887,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"47db0efccae2dd8df3fc74353845d2fe","name":"ros-humble-cartographer-ros","requires":[],"size":1088335,"version":"2.0.9000","binstar":{"package_id":"6392de692b3749bdb881ad12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b93bd9954cbb7d425a8fb0935fc83081909d7ee41ad5544f7047eb0ad51f8fd6"},"ros-humble-cartographer-ros-2.0.9000-py310h0e05a27_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["abseil-cpp","cartographer >=2.0.0,<2.1.0a0","eigen","gflags >=2.2.2,<2.3.0a0","glog >=0.6.0,<0.7.0a0","libabseil =20220623.0=cxx17*","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-cartographer-ros-msgs","ros-humble-geometry-msgs","ros-humble-launch","ros-humble-nav-msgs","ros-humble-pcl-conversions","ros-humble-rclcpp","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h0e05a27_3","timestamp":1675694079660,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f5ebcb32838d21795c1768ff5a9bf8e1","name":"ros-humble-cartographer-ros","requires":[],"size":1092458,"version":"2.0.9000","binstar":{"package_id":"6392de692b3749bdb881ad12","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e7499cf5f0746cf04bf9eb9bc960810f0003ee6ca4cc8c6ab63e16a4901e17be"},"ros-humble-transmission-interface-2.18.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569673915,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e178b176f168cfcc45bf5db0157eaac2","name":"ros-humble-transmission-interface","requires":[],"size":65856,"version":"2.18.0","binstar":{"package_id":"6392de6966b3e4e3def7dd4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da6af3a4f218c8d72f5efc1ce684be1cdc23cb20a81c25c58791f707f2e83bc4"},"ros-humble-transmission-interface-2.22.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692482229,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d07d16ca583e0c0609b93313728ffdbd","name":"ros-humble-transmission-interface","requires":[],"size":68137,"version":"2.22.0","binstar":{"package_id":"6392de6966b3e4e3def7dd4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b715249133f32dc6978be00743b4b02d519c043f65ae9656a7e4780974f0e19f"},"ros-humble-warehouse-ros-sqlite-1.0.3-py310hec15e5f_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libsqlite >=3.40.0,<4.0a0","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-class-loader","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-warehouse-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","sqlite"],"build":"py310hec15e5f_2","timestamp":1670569261868,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f12688ec5ae9235f8c40f83c945f6a7f","name":"ros-humble-warehouse-ros-sqlite","requires":[],"size":97213,"version":"1.0.3","binstar":{"package_id":"6392de6a4f66fd116f948040","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3a6408d83c61a97cb44f1d151238b61eb725cdaaf710275f13a120d7f24ebf9"},"ros-humble-warehouse-ros-sqlite-1.0.3-py310h698c4fd_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libsqlite >=3.40.0,<4.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-class-loader","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-warehouse-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","sqlite"],"build":"py310h698c4fd_3","timestamp":1675695210158,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"818cdb97e0f921dc0c66e763f84568d5","name":"ros-humble-warehouse-ros-sqlite","requires":[],"size":100085,"version":"1.0.3","binstar":{"package_id":"6392de6a4f66fd116f948040","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c2e4c25ecde4513aee0c26aab74ea9fc48efd140cf320367b7c651b3c7f29e31"},"ros-humble-webots-ros2-mavic-2023.0.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-builtin-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-webots-ros2-driver","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569195503,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"eec84ee2b4d2bec91e5db290581f8480","name":"ros-humble-webots-ros2-mavic","requires":[],"size":14611,"version":"2023.0.0","binstar":{"package_id":"6392de6bed6d66bf8faa70b6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"039a0c5de5488867b9d3c67fc34fe5491245750d78807dca7e7c99a71d72648d"},"ros-humble-webots-ros2-mavic-2023.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-webots-ros2-driver","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695155994,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4ac4d5ca2330fb57aaa9a63066f6f99c","name":"ros-humble-webots-ros2-mavic","requires":[],"size":19025,"version":"2023.0.1","binstar":{"package_id":"6392de6bed6d66bf8faa70b6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e0d402c912aba20f199760cfd9f67dca833247c15db1634c942fb7faafc0004"},"ros-humble-joint-state-broadcaster-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","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.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569706604,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fac22edc88583d5bff134d5e11b98c84","name":"ros-humble-joint-state-broadcaster","requires":[],"size":115158,"version":"2.15.0","binstar":{"package_id":"6392de8646f81babca30d89e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"98bc4e7b211e59ac8eb06dee6060c6982b27c16c10e6d261428784b2cdd43915"},"ros-humble-joint-state-broadcaster-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-control-msgs","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp-lifecycle","ros-humble-rcutils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695298305,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"38a2c4bef7786e363f4cd132187f9381","name":"ros-humble-joint-state-broadcaster","requires":[],"size":405088,"version":"2.16.1","binstar":{"package_id":"6392de8646f81babca30d89e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40c2748cccd8c762939507067fe682c765e3d89bfb1079a9171e01c6c2f1f32a"},"ros-humble-rviz-visual-testing-framework-11.2.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-cmake-gtest","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rviz-common","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*","xorg-libx11","xorg-libxext"],"build":"py310h413e681_2","timestamp":1670569263997,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4f7d8d63ba14a15f1b345d6f609f1eb5","name":"ros-humble-rviz-visual-testing-framework","requires":[],"size":88418,"version":"11.2.4","binstar":{"package_id":"6392dea2ed6d66bf8faa7843","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9675afed03fd546af7e0e29f1ba6e6d135e216f45c99374ab059fcabb0db0b90"},"ros-humble-rviz-visual-testing-framework-11.2.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-cmake-gtest","ros-humble-rcutils","ros-humble-ros-workspace","ros-humble-rviz-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675694708506,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d9ab3577d7ca692b5c22260a6442eaac","name":"ros-humble-rviz-visual-testing-framework","requires":[],"size":92693,"version":"11.2.5","binstar":{"package_id":"6392dea2ed6d66bf8faa7843","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bac92d2dcc8d5f33f4cf56fe625423a09a7050714684cd57208b453fac30af0c"},"ros-humble-joint-trajectory-controller-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-angles","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569667733,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"228d1ab6202660c232a95cd88b535fa8","name":"ros-humble-joint-trajectory-controller","requires":[],"size":294650,"version":"2.15.0","binstar":{"package_id":"6392dec3a2b71210084aa2bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b36afe14195bf737b4a33d04c9abaf94adc7ff6c17d804bdf4c98b733bc8dea"},"ros-humble-joint-trajectory-controller-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-backward-ros","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695242624,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"35ed9a6b831023cbbf0762bf803d5395","name":"ros-humble-joint-trajectory-controller","requires":[],"size":583909,"version":"2.16.1","binstar":{"package_id":"6392dec3a2b71210084aa2bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fedf9ba12c0b90bba1e9be278faaf793a5b835f3081e2e58734aa47477c902db"},"ros-humble-nav2-behavior-tree-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-behaviortree-cpp-v3","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569611339,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c1e1bd8c14a0616877ba3894e500ea72","name":"ros-humble-nav2-behavior-tree","requires":[],"size":2131008,"version":"1.1.3","binstar":{"package_id":"6392dec446bec18b8907c271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"597c53ef6455beb883ad74e145ca2b4ecdde504df5d32c576c988dc6b0a45d6f"},"ros-humble-nav2-behavior-tree-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-behaviortree-cpp-v3","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-lifecycle-msgs","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695166389,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7886bb959a3db56afb27b872c7011863","name":"ros-humble-nav2-behavior-tree","requires":[],"size":2228992,"version":"1.1.5","binstar":{"package_id":"6392dec446bec18b8907c271","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b9e847c5fed1ac314b173ade3047b13c680d24faaed1ba218f858c551134746"},"ros-humble-forward-command-controller-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569320515,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dff80b66302de5f25c62b9b71f5e671d","name":"ros-humble-forward-command-controller","requires":[],"size":176915,"version":"2.15.0","binstar":{"package_id":"6392dec66a03c9fad28ecf2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"651ec6c145443da1ca49622ec01817e8e56a40ea794c80779f6ed77c231b24fc"},"ros-humble-forward-command-controller-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694795002,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"54dc6efa3e678b80990375c3279c3e80","name":"ros-humble-forward-command-controller","requires":[],"size":468500,"version":"2.16.1","binstar":{"package_id":"6392dec66a03c9fad28ecf2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8af65a3cc4e32cb43906c99cd23349d7be964046dd91b4fb13732a9af1b42855"},"ros-humble-webots-ros2-tesla-2023.0.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv","libstdcxx-ng >=12","numpy","py-opencv","python","python_abi 3.10.*","ros-humble-ackermann-msgs","ros-humble-builtin-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-webots-ros2-driver","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569969027,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"837135f1d5a4c4efc3b94af496c62c19","name":"ros-humble-webots-ros2-tesla","requires":[],"size":18522,"version":"2023.0.0","binstar":{"package_id":"6392df4f13f4c7e7c5594b18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b5dbb171e24c758c696a7a55f27fa062e61fd601594bf3cb2b069a06339064d"},"ros-humble-webots-ros2-tesla-2023.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","py-opencv","python","python_abi 3.10.* *_cp310","ros-humble-ackermann-msgs","ros-humble-builtin-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-webots-ros2-driver","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695130650,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3884a2a02b75123f9b78574d22507a5c","name":"ros-humble-webots-ros2-tesla","requires":[],"size":24105,"version":"2023.0.1","binstar":{"package_id":"6392df4f13f4c7e7c5594b18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"381b5dd42bdd7df1893bfc76e9f2b7016cfea50d531382c2b703d05abd5e7ad3"},"ros-humble-gazebo-plugins-3.7.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-camera-info-manager","ros-humble-cv-bridge","ros-humble-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.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569932862,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d1ecafd5e5038851d7ec1c804b0a9d06","name":"ros-humble-gazebo-plugins","requires":[],"size":3615194,"version":"3.7.0","binstar":{"package_id":"6392df53e6a2f79ab8534af3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"881727d6801dbcd4e1e4630d6cf802033a3395d2411d824f5d5f37f943f6ad0f"},"ros-humble-gazebo-plugins-3.7.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-camera-info-manager","ros-humble-cv-bridge","ros-humble-gazebo-dev","ros-humble-gazebo-msgs","ros-humble-gazebo-ros","ros-humble-geometry-msgs","ros-humble-image-transport","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695086919,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c1c8992b3708737317b49f5f73596357","name":"ros-humble-gazebo-plugins","requires":[],"size":3607629,"version":"3.7.0","binstar":{"package_id":"6392df53e6a2f79ab8534af3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7084c12e83f452dcd8cbfcc29ff09d142eb6513614a15a08e29dc415ae44c2a9"},"ros-humble-webots-ros2-control-2023.0.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-controller-manager","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-webots-ros2-driver","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569230200,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8ca98456e773da4cb51d0428563b8c0f","name":"ros-humble-webots-ros2-control","requires":[],"size":156126,"version":"2023.0.0","binstar":{"package_id":"6392df574f66fd116f95470c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6d2369023563f437b9e5f1cdf9cbcf99f67d3bfac263660afa6f38707cddef31"},"ros-humble-webots-ros2-control-2023.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-controller-manager","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-webots-ros2-driver","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694726045,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3dd5c42210012123f23e8a0c554fe2cc","name":"ros-humble-webots-ros2-control","requires":[],"size":173710,"version":"2023.0.1","binstar":{"package_id":"6392df574f66fd116f95470c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"272b18c44458ae2104a20351fa042257d3eeb36bd84625ee6ef4999b5b690d6d"},"ros-humble-force-torque-sensor-broadcaster-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.*","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.2.*","ros2-distro-mutex 0.2.*"],"build":"py310h413e681_2","timestamp":1670569316005,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f1d2cddb74805ac61fc557383c6842b2","name":"ros-humble-force-torque-sensor-broadcaster","requires":[],"size":96139,"version":"2.15.0","binstar":{"package_id":"6392df59e6a2f79ab8534dd9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"73b02fd82c42f0f6f9ebb0ef7b646389446f00451d4a458b79533d7231a038d8"},"ros-humble-force-torque-sensor-broadcaster-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694591986,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2ec189f4916590ae919f11243152524f","name":"ros-humble-force-torque-sensor-broadcaster","requires":[],"size":385446,"version":"2.16.1","binstar":{"package_id":"6392df59e6a2f79ab8534dd9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af02c3cdc92f7d74d997370b353af99ca734d3981a9417f3f4354c49fa755fc8"},"ros-humble-tricycle-controller-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-ackermann-msgs","ros-humble-controller-interface","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639149916,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9a1d87486f6d72e116684ac6d9bd1a6f","name":"ros-humble-tricycle-controller","requires":[],"size":266077,"version":"2.15.0","binstar":{"package_id":"6393ee5966b3e4e3deab4512","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57a8c49a8ddf5aff23198ab32f35990d098aee52b7a287f32200e6ea60d64cd0"},"ros-humble-tricycle-controller-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ackermann-msgs","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-nav-msgs","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-rcpputils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694884651,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1fbc6995c2320f5a576174e81f47df5a","name":"ros-humble-tricycle-controller","requires":[],"size":265256,"version":"2.16.1","binstar":{"package_id":"6393ee5966b3e4e3deab4512","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f0946b021ef694907accec42c786d5dbbd6065c6340372a96e9f24329ba7df6"},"ros-humble-ur-controllers-2.2.6-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-controller-interface","ros-humble-joint-trajectory-controller","ros-humble-lifecycle-msgs","ros-humble-pluginlib","ros-humble-rclcpp-lifecycle","ros-humble-rcutils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-ur-dashboard-msgs","ros-humble-ur-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639053530,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3cd1653b380de14ef251cda56fa76895","name":"ros-humble-ur-controllers","requires":[],"size":208561,"version":"2.2.6","binstar":{"package_id":"6393ee5b66b3e4e3deab458f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"42e42729f87964300a169c1d490753f396bb4fa5aa7314ddb70e0f762185f8dc"},"ros-humble-ur-controllers-2.2.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-controller-interface","ros-humble-joint-trajectory-controller","ros-humble-lifecycle-msgs","ros-humble-pluginlib","ros-humble-rclcpp-lifecycle","ros-humble-rcutils","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-ur-dashboard-msgs","ros-humble-ur-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695692202,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a629e8dd824c8b505d3e736c3e5d3cc3","name":"ros-humble-ur-controllers","requires":[],"size":208318,"version":"2.2.6","binstar":{"package_id":"6393ee5b66b3e4e3deab458f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"094872216ca96b38497a857dcfa3f60f508be2340677ba6d72b8b90f21163b6c"},"ros-humble-velocity-controllers-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-forward-command-controller","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639001102,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1ccf094cd852c881c8ddb280ac2cf599","name":"ros-humble-velocity-controllers","requires":[],"size":30072,"version":"2.15.0","binstar":{"package_id":"6393ee5d4f66fd116f5eabee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f517cee918d38f34cafbf97b3f02881e44e1d1bc5c32c03a503e391963a0fc5f"},"ros-humble-velocity-controllers-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-forward-command-controller","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695512429,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"67e434b22ef5201c2399ddec7ba4662a","name":"ros-humble-velocity-controllers","requires":[],"size":30431,"version":"2.16.1","binstar":{"package_id":"6393ee5d4f66fd116f5eabee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"507aae4f08858131d17e15f6d7cde4a329ce32e9c1747bc684ca63b9d3c25179"},"ros-humble-imu-sensor-broadcaster-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639189707,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c53e28a835207bd52218e110f9034c96","name":"ros-humble-imu-sensor-broadcaster","requires":[],"size":101108,"version":"2.15.0","binstar":{"package_id":"6393ee5fe6a2f79ab8ccba9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b992167bbe1d43a2a45d2727f1212ed7b417494423e432b6857650062c928473"},"ros-humble-imu-sensor-broadcaster-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-controller-interface","ros-humble-generate-parameter-library","ros-humble-hardware-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694935342,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d35c2e523f4302482c4692f250b2ce21","name":"ros-humble-imu-sensor-broadcaster","requires":[],"size":387455,"version":"2.16.1","binstar":{"package_id":"6393ee5fe6a2f79ab8ccba9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b195d5ef249cd8175f8c46d24bf93bc9e98cbfe816e75240b050d4d4d02ef42"},"ros-humble-ros-core-0.10.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-cmake-auto","ros-humble-ament-cmake-gmock","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-pytest","ros-humble-ament-cmake-ros","ros-humble-ament-index-cpp","ros-humble-ament-index-python","ros-humble-ament-lint-auto","ros-humble-ament-lint-common","ros-humble-class-loader","ros-humble-common-interfaces","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-launch-testing-ament-cmake","ros-humble-launch-testing-ros","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-pluginlib","ros-humble-rcl-lifecycle","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-rclpy","ros-humble-ros-environment","ros-humble-ros-workspace","ros-humble-ros2cli-common-extensions","ros-humble-ros2launch","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros-humble-sros2","ros-humble-sros2-cmake","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639093901,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f91ca02a83216f947ec53414524a75c6","name":"ros-humble-ros-core","requires":[],"size":11987,"version":"0.10.0","binstar":{"package_id":"6393ee61358aafdd3df3eb00","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"93f3060df4290838b01b5f6345528942c1578b397231958d0b3324433a8a9891"},"ros-humble-ros-core-0.10.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake","ros-humble-ament-cmake-auto","ros-humble-ament-cmake-gmock","ros-humble-ament-cmake-gtest","ros-humble-ament-cmake-pytest","ros-humble-ament-cmake-ros","ros-humble-ament-index-cpp","ros-humble-ament-index-python","ros-humble-ament-lint-auto","ros-humble-ament-lint-common","ros-humble-class-loader","ros-humble-common-interfaces","ros-humble-launch","ros-humble-launch-ros","ros-humble-launch-testing","ros-humble-launch-testing-ament-cmake","ros-humble-launch-testing-ros","ros-humble-launch-xml","ros-humble-launch-yaml","ros-humble-pluginlib","ros-humble-rcl-lifecycle","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-rclpy","ros-humble-ros-environment","ros-humble-ros-workspace","ros-humble-ros2cli-common-extensions","ros-humble-ros2launch","ros-humble-rosidl-default-generators","ros-humble-rosidl-default-runtime","ros-humble-sros2","ros-humble-sros2-cmake","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695739088,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"48148885d6ca867ad3c1aac7f5b01eee","name":"ros-humble-ros-core","requires":[],"size":12125,"version":"0.10.0","binstar":{"package_id":"6393ee61358aafdd3df3eb00","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e20bffda0d1037d9d915ec098d6b5782c328a1706e406cef5f33be0092c94972"},"ros-humble-ros2-control-2.18.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-controller-interface","ros-humble-controller-manager","ros-humble-controller-manager-msgs","ros-humble-hardware-interface","ros-humble-joint-limits","ros-humble-ros-workspace","ros-humble-ros2-control-test-assets","ros-humble-ros2controlcli","ros-humble-transmission-interface","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639099466,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"608f8bbbf4011ba9d1149fbb8cc166fd","name":"ros-humble-ros2-control","requires":[],"size":11686,"version":"2.18.0","binstar":{"package_id":"6393ee8454e9ace8543c1b9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d3d0a40c95477431c0d22d3f0ca2d1434cc0a7cdf23fc3ced769372c3b52a06"},"ros-humble-ros2-control-2.22.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-controller-interface","ros-humble-controller-manager","ros-humble-controller-manager-msgs","ros-humble-hardware-interface","ros-humble-joint-limits","ros-humble-ros-workspace","ros-humble-ros2-control-test-assets","ros-humble-ros2controlcli","ros-humble-transmission-interface","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695626196,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4a669c7c64277449ff8114b878c4aae2","name":"ros-humble-ros2-control","requires":[],"size":12009,"version":"2.22.0","binstar":{"package_id":"6393ee8454e9ace8543c1b9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2f3338684e996b2e0c7222d67137818b7d8bbd18b998985867212750501dcf0"},"ros-humble-moveit-resources-2.0.6-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-moveit-resources-fanuc-description","ros-humble-moveit-resources-fanuc-moveit-config","ros-humble-moveit-resources-panda-description","ros-humble-moveit-resources-panda-moveit-config","ros-humble-moveit-resources-pr2-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639129358,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"086bb8992cb33cb55753dbd7bd75b00a","name":"ros-humble-moveit-resources","requires":[],"size":12009,"version":"2.0.6","binstar":{"package_id":"6393ee8546f81babcae1d1ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6f864c49495173291091af5f335a49937449ecac488dbbdc661b371b04c60fb2"},"ros-humble-moveit-resources-2.0.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-moveit-resources-fanuc-description","ros-humble-moveit-resources-fanuc-moveit-config","ros-humble-moveit-resources-panda-description","ros-humble-moveit-resources-panda-moveit-config","ros-humble-moveit-resources-pr2-description","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695662612,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"122b87c699ed142f5f0ad609fafe3900","name":"ros-humble-moveit-resources","requires":[],"size":12323,"version":"2.0.6","binstar":{"package_id":"6393ee8546f81babcae1d1ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b0f86008faa8f294154ba8e5e82a9af70720738324dbc9307145351e0c92597"},"ros-humble-aws-robomaker-small-warehouse-world-1.0.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gazebo","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-gazebo-plugins","ros-humble-gazebo-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639227330,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"38f8c7efbfd9d1fb56ab28efd8433d8f","name":"ros-humble-aws-robomaker-small-warehouse-world","requires":[],"size":6826982,"version":"1.0.5","binstar":{"package_id":"6393ee864f66fd116f5ece7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77d9608432b06cc23929bd9563c077ae0c304ef92d6b523e023920ec089111c8"},"ros-humble-aws-robomaker-small-warehouse-world-1.0.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gazebo","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-gazebo-plugins","ros-humble-gazebo-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695722019,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9dd7fe5ba62047e9ae95bc5d34861f18","name":"ros-humble-aws-robomaker-small-warehouse-world","requires":[],"size":6674352,"version":"1.0.5","binstar":{"package_id":"6393ee864f66fd116f5ece7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2bbcb1119b106dfb9d226484b7616bc321df1fbcb729375aa4121870786d9318"},"ros-humble-turtlebot3-cartographer-2.1.5-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-cartographer-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639064072,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b5db01ae8923dad67d6cde19c74fc8fa","name":"ros-humble-turtlebot3-cartographer","requires":[],"size":19290,"version":"2.1.5","binstar":{"package_id":"6393ee87a2b7121008f884c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"98bd5197eb4d06420d252f475936b74a16df9a07d4c5b1cdb9eb76c1b4b4aeaf"},"ros-humble-turtlebot3-cartographer-2.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","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":"py310h7c61026_3","timestamp":1675694772048,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ec0526b26eddd8da594785f235328b3f","name":"ros-humble-turtlebot3-cartographer","requires":[],"size":20208,"version":"2.1.5","binstar":{"package_id":"6393ee87a2b7121008f884c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c5e2f0f93ab47fff6e21759fd7733c443842247c407175a2729f245b83250166"},"ros-humble-ros-ign-image-0.244.9-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-image","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639257661,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8011e3e0eed716b087676f84b46e2251","name":"ros-humble-ros-ign-image","requires":[],"size":16794,"version":"0.244.9","binstar":{"package_id":"6393ee9e83c9be96ebb8ffd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c47e9c42cdcac16ae7982d888efebf1cad5f1bfb0b474ea29775302ed26ed9d"},"ros-humble-ros-ign-image-0.244.9-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-image","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694121692,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ea9c5711f169125b90cff0d5b9b3cf65","name":"ros-humble-ros-ign-image","requires":[],"size":16912,"version":"0.244.9","binstar":{"package_id":"6393ee9e83c9be96ebb8ffd7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"993b666f28a65199d95da5b2ca8831c7acb34c2c3d9c6e1e0727769f4e579c44"},"ros-humble-ros-ign-gazebo-0.244.9-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-sim","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h413e681_2","timestamp":1670639230844,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"135fc1178264aa8a221f6f84144a2168","name":"ros-humble-ros-ign-gazebo","requires":[],"size":20066,"version":"0.244.9","binstar":{"package_id":"6393ee9f46f81babcae1d4a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c8d689322076dc91fdb417b1a746d093e3e864f610334015c65b2c0c96cd6097"},"ros-humble-ros-ign-gazebo-0.244.9-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-sim","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675691880673,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6d8e37758cc667329c535bac7d7b210d","name":"ros-humble-ros-ign-gazebo","requires":[],"size":20435,"version":"0.244.9","binstar":{"package_id":"6393ee9f46f81babcae1d4a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32ef0e10943b337eee09eb2c5a5d81b477864bd8380e306fd0832e0f5b723881"},"ros-humble-admittance-controller-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-filters","ros-humble-generate-parameter-library","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-joint-trajectory-controller","ros-humble-kinematics-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639080316,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c48cbd0ccb3115c59d66d77941c41261","name":"ros-humble-admittance-controller","requires":[],"size":327596,"version":"2.15.0","binstar":{"package_id":"6393ee9f4f66fd116f5ed0be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6ea665069afce13e1e7384f9226c9c5dedff5ce4e92997b374f221f04fcf60cb"},"ros-humble-admittance-controller-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-controller-interface","ros-humble-filters","ros-humble-generate-parameter-library","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-joint-trajectory-controller","ros-humble-kinematics-interface","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-realtime-tools","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695633910,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"084da876b49e72f5e638d3657810c3d9","name":"ros-humble-admittance-controller","requires":[],"size":331122,"version":"2.16.1","binstar":{"package_id":"6393ee9f4f66fd116f5ed0be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1dd4220e6cdb2cd9cc63d07791fcde23fb949a4720a57ef7526083739d03a749"},"ros-humble-effort-controllers-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-forward-command-controller","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670638999894,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1ce4772136014d2349d6def9d493480a","name":"ros-humble-effort-controllers","requires":[],"size":30072,"version":"2.15.0","binstar":{"package_id":"6393eea02b3749bdb8f153ac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2b1657ab26d31101afc8000a26826156e518fe1c9d323f9789269a93af03cfc"},"ros-humble-effort-controllers-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-forward-command-controller","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695551599,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8bc2e567f08b41531d6e32ec84dc587f","name":"ros-humble-effort-controllers","requires":[],"size":30359,"version":"2.16.1","binstar":{"package_id":"6393eea02b3749bdb8f153ac","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"13ecc49a0b8b1b891ef024c5548876f5cf170f38eae0d8c1239ef9c6ade8593c"},"ros-humble-nav2-costmap-2d-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geometry-msgs","ros-humble-laser-geometry","ros-humble-map-msgs","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-nav2-voxel-grid","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639243882,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"54afec2393645451daa7434ef0f052b2","name":"ros-humble-nav2-costmap-2d","requires":[],"size":1596195,"version":"1.1.3","binstar":{"package_id":"6393f30e46f81babcae2c984","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"146f46ba1d703fb005847890988b49112371d349b8323062bdeb8a6952ac0559"},"ros-humble-nav2-costmap-2d-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geometry-msgs","ros-humble-laser-geometry","ros-humble-map-msgs","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-nav2-voxel-grid","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695732423,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"06ccfbed4d01974becffb812ebcd62b2","name":"ros-humble-nav2-costmap-2d","requires":[],"size":1586744,"version":"1.1.5","binstar":{"package_id":"6393f30e46f81babcae2c984","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0dcab0ca0e94e11c01980db397a829113d81680c049772c70affcfb1949b394c"},"ros-humble-moveit-core-2.5.4-py310h8d6b2bb_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","bullet","eigen","fcl >=0.7.0,<0.8.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-common-interfaces","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometric-shapes","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-moveit-common","ros-humble-moveit-msgs","ros-humble-octomap-msgs","ros-humble-pluginlib","ros-humble-pybind11-vendor","ros-humble-random-numbers","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-ruckig","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-srdfdom","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-trajectory-msgs","ros-humble-urdf","ros-humble-urdfdom","ros-humble-urdfdom-headers","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h8d6b2bb_2","timestamp":1670639650144,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dd6a071bec4cea8e4e46b6c9108dabb5","name":"ros-humble-moveit-core","requires":[],"size":1738516,"version":"2.5.4","binstar":{"package_id":"6393f3112dd7062055f88ac1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f5f3474fbadb1165a7e7e5a58521d78f463d03ed6029d1e002c228e0e5d3eded"},"ros-humble-moveit-core-2.5.4-py310hf1d9ee8_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","bullet","eigen","fcl >=0.7.0,<0.8.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-common-interfaces","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometric-shapes","ros-humble-geometry-msgs","ros-humble-kdl-parser","ros-humble-moveit-common","ros-humble-moveit-msgs","ros-humble-octomap-msgs","ros-humble-pluginlib","ros-humble-pybind11-vendor","ros-humble-random-numbers","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-ruckig","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-srdfdom","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-trajectory-msgs","ros-humble-urdf","ros-humble-urdfdom","ros-humble-urdfdom-headers","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310hf1d9ee8_3","timestamp":1675696142402,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5372e4be4e07f5127536889caf80e927","name":"ros-humble-moveit-core","requires":[],"size":1736844,"version":"2.5.4","binstar":{"package_id":"6393f3112dd7062055f88ac1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a90a9c5dc367ff070cd93fd8336a3e84640d1941bc6d2133fbd591eb6cdf47f7"},"ros-humble-position-controllers-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-forward-command-controller","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670640486998,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"18b2dfcfd3dc5e6785c2816db6f144a6","name":"ros-humble-position-controllers","requires":[],"size":29309,"version":"2.15.0","binstar":{"package_id":"6393f3694fd2d87ac8ef7853","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f43ef3f15373308b867108423d9f66622abc21e40c5c1610634d86baf335a57"},"ros-humble-position-controllers-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-backward-ros","ros-humble-forward-command-controller","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675696996289,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ba17aa85487e980f0b135e090d3c942e","name":"ros-humble-position-controllers","requires":[],"size":29674,"version":"2.16.1","binstar":{"package_id":"6393f3694fd2d87ac8ef7853","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c8ab90c314372b9c712ac754bfaf01de5373f43ffd5f121f21ac9800a651feab"},"ros-humble-rosbag2-transport-0.15.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-keyboard-handler","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-rosbag2-cpp","ros-humble-rosbag2-interfaces","ros-humble-rosbag2-storage","ros-humble-shared-queues-vendor","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670639719116,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1582ce4356e6423cdc022a7d074fd08d","name":"ros-humble-rosbag2-transport","requires":[],"size":393877,"version":"0.15.3","binstar":{"package_id":"6393f36b4f66fd116f613e8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6872292d23b2b79ff0eb2457d7deb7eeeb254116ff1a9a0f1035fdfdbc8319fc"},"ros-humble-rosbag2-transport-0.15.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-keyboard-handler","ros-humble-rclcpp","ros-humble-rmw","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-rosbag2-cpp","ros-humble-rosbag2-interfaces","ros-humble-rosbag2-storage","ros-humble-shared-queues-vendor","ros-humble-yaml-cpp-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675696223342,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"53c462b23cade5b1b81b95260b78bc5c","name":"ros-humble-rosbag2-transport","requires":[],"size":396242,"version":"0.15.4","binstar":{"package_id":"6393f36b4f66fd116f613e8b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a2f2329b8a85141e6b468fd3218724565640d3d2b90e78f7ee2f59641a1934d"},"ros-humble-rviz-default-plugins-11.2.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-ignition-math6-vendor","ros-humble-image-transport","ros-humble-interactive-markers","ros-humble-laser-geometry","ros-humble-map-msgs","ros-humble-nav-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h413e681_2","timestamp":1670640424203,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5c4033f3df217611fa44ccb41acf9488","name":"ros-humble-rviz-default-plugins","requires":[],"size":2295932,"version":"11.2.4","binstar":{"package_id":"6393f36f6d07f25db9c7188e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"072462f3ba337ac22527f0140e2c4bd71d3d072e22e643e954127fb477ca23fa"},"ros-humble-rviz-default-plugins-11.2.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-ignition-math6-vendor","ros-humble-image-transport","ros-humble-interactive-markers","ros-humble-laser-geometry","ros-humble-map-msgs","ros-humble-nav-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675696928064,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8226d85021e4878a5439bf0483401793","name":"ros-humble-rviz-default-plugins","requires":[],"size":2277233,"version":"11.2.5","binstar":{"package_id":"6393f36f6d07f25db9c7188e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db8a88097b572cd6ba21bd515655a326cabeed41dccbfc9203e75991bb769e45"},"ros-humble-ros2-controllers-2.15.0-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-admittance-controller","ros-humble-diff-drive-controller","ros-humble-effort-controllers","ros-humble-force-torque-sensor-broadcaster","ros-humble-forward-command-controller","ros-humble-imu-sensor-broadcaster","ros-humble-joint-state-broadcaster","ros-humble-joint-trajectory-controller","ros-humble-position-controllers","ros-humble-ros-workspace","ros-humble-tricycle-controller","ros-humble-velocity-controllers","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670640875013,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"531f9744ed7b649e3c150a4eb0e6ac71","name":"ros-humble-ros2-controllers","requires":[],"size":11453,"version":"2.15.0","binstar":{"package_id":"6393f4ed4f66fd116f621e72","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a0c82c0b5acb7b6295dc1111a30245e7ef583006c73f6ccca935dfcdb8c8e185"},"ros-humble-ros2-controllers-2.16.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-admittance-controller","ros-humble-diff-drive-controller","ros-humble-effort-controllers","ros-humble-force-torque-sensor-broadcaster","ros-humble-forward-command-controller","ros-humble-imu-sensor-broadcaster","ros-humble-joint-state-broadcaster","ros-humble-joint-trajectory-controller","ros-humble-position-controllers","ros-humble-ros-workspace","ros-humble-tricycle-controller","ros-humble-velocity-controllers","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719951185,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2d7e0cb6e5178ffffa390cc980de1af6","name":"ros-humble-ros2-controllers","requires":[],"size":11774,"version":"2.16.1","binstar":{"package_id":"6393f4ed4f66fd116f621e72","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"072d66f99fbb61af19e85bc40e465337af41300ac139cf985daed82f18708428"},"ros-humble-pilz-industrial-motion-planner-testutils-2.5.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670640834564,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fe04fcb586cada290ff99e7f1b49fae0","name":"ros-humble-pilz-industrial-motion-planner-testutils","requires":[],"size":157688,"version":"2.5.4","binstar":{"package_id":"6393f4eebbbc2b1e960385a9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce9f2651aac9461d6478e90b50285e9180a0df9c6c1483ccdeaae71e8e3c7a2f"},"ros-humble-pilz-industrial-motion-planner-testutils-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719693168,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"237126533c379bd89355ed90b1167fa2","name":"ros-humble-pilz-industrial-motion-planner-testutils","requires":[],"size":158019,"version":"2.5.4","binstar":{"package_id":"6393f4eebbbc2b1e960385a9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d4d27b709bc49c9223915a80a4d77262824d3f976b3bbf6b265a5ecb2134efcc"},"ros-humble-nav2-rviz-plugins-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-lifecycle-manager","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-std-msgs","ros-humble-tf2-geometry-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h413e681_2","timestamp":1670641634172,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4e1034803dad4fce51641bb9c93cd8eb","name":"ros-humble-nav2-rviz-plugins","requires":[],"size":475112,"version":"1.1.3","binstar":{"package_id":"6393f5ce66b3e4e3dead5868","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80f70e5f3c9e14cd3c7cdadd3825ca7deb92a69a7ed6ec0c9f2b7d017a6fdf6e"},"ros-humble-nav2-rviz-plugins-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-lifecycle-manager","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-resource-retriever","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-std-msgs","ros-humble-tf2-geometry-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675697628551,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"27e2e9a970cc3690c8f0b77849115dd0","name":"ros-humble-nav2-rviz-plugins","requires":[],"size":470977,"version":"1.1.5","binstar":{"package_id":"6393f5ce66b3e4e3dead5868","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a617a7b8b23c0098c5a24ea7578709f643d5a750e658ad727916d366b24a115"},"ros-humble-nav2-core-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670641237484,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7839a2e1abf09db96cd0cc9eb4169a56","name":"ros-humble-nav2-core","requires":[],"size":18445,"version":"1.1.3","binstar":{"package_id":"6393f5d01f9cf5f92a1e2537","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e097c077e1f8ae7a182c670f60fdea9219226e061848e0293ca0c304ad76efa2"},"ros-humble-nav2-core-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675697217415,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"28b363b9a6fcc9fda50852168ff91e91","name":"ros-humble-nav2-core","requires":[],"size":18579,"version":"1.1.5","binstar":{"package_id":"6393f5d01f9cf5f92a1e2537","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a35830026e460dc4b95de42438dd24984cd9b53ff358fe0dd4ed1dcda6ff5e3"},"ros-humble-moveit-ros-occupancy-map-monitor-2.5.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-geometric-shapes","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670641346236,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5be528209b1dfe0099c3352a1d0eda0f","name":"ros-humble-moveit-ros-occupancy-map-monitor","requires":[],"size":349023,"version":"2.5.4","binstar":{"package_id":"6393f5d14f66fd116f624993","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a64b2e74d9ea95b99cffae7f07e1acacaa55e487d8cb7d8dd42c533a75fb2d1f"},"ros-humble-moveit-ros-occupancy-map-monitor-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-geometric-shapes","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675697332737,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"17a57057525fa3c9b73831f15ecd22eb","name":"ros-humble-moveit-ros-occupancy-map-monitor","requires":[],"size":346899,"version":"2.5.4","binstar":{"package_id":"6393f5d14f66fd116f624993","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7998ebe91a6eb0dfee36afb847ca7cb591ec0e5867a95faef62122bcc09af443"},"ros-humble-costmap-queue-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-nav2-costmap-2d","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670641387596,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4cc1e03cd1f3579bd1c4706063578432","name":"ros-humble-costmap-queue","requires":[],"size":28188,"version":"1.1.3","binstar":{"package_id":"6393f5d34f66fd116f6249e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c8e6bc84ee376b7a7a5436bc248a96616ab9cbad7dd18fa35874895133b32947"},"ros-humble-costmap-queue-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav2-costmap-2d","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675697377906,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"86fe42c3d63b58e1f807d2151d247dde","name":"ros-humble-costmap-queue","requires":[],"size":28278,"version":"1.1.5","binstar":{"package_id":"6393f5d34f66fd116f6249e8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"06e764cea3e4a52f58909085313a68d63dba0b0af79592e47df0172adfd9919a"},"ros-humble-rosbag2-py-0.15.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-pybind11-vendor","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros-humble-rosbag2-transport","ros-humble-rpyutils","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670641467435,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5f092559902af6379ccecb5aba362fbd","name":"ros-humble-rosbag2-py","requires":[],"size":531224,"version":"0.15.3","binstar":{"package_id":"6393f5d44f66fd116f624a21","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aee555f09c5f2696914809639d121ed533fdf03a342f10ea4bd0d0c3e6b9bfb8"},"ros-humble-rosbag2-py-0.15.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-pybind11-vendor","ros-humble-ros-workspace","ros-humble-rosbag2-compression","ros-humble-rosbag2-cpp","ros-humble-rosbag2-storage","ros-humble-rosbag2-transport","ros-humble-rpyutils","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675697461477,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9a7e33cfc43db697bf4c9ccd789ea6bc","name":"ros-humble-rosbag2-py","requires":[],"size":531572,"version":"0.15.4","binstar":{"package_id":"6393f5d44f66fd116f624a21","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"06c141b325cd3d807bc25af2f910de3051ed672e46612b769d0400cee555184e"},"ros-humble-moveit-simple-controller-manager-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670743510149,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b0690eba081ec46fbbe7cb77c0101189","name":"ros-humble-moveit-simple-controller-manager","requires":[],"size":136209,"version":"2.5.4","binstar":{"package_id":"6393f87e6a03c9fad22be8b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"457bf34b7bffb31622de17e4dbe081c73f4f9614bbe290b43fe6ccd74d3293d7"},"ros-humble-moveit-simple-controller-manager-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675697475885,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b4a9b2c8bd1723e6ebe014f620012ee5","name":"ros-humble-moveit-simple-controller-manager","requires":[],"size":136339,"version":"2.5.4","binstar":{"package_id":"6393f87e6a03c9fad22be8b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"114b3ad45ea7f19dd54fe75aafea6f2ade9aacf6a13303ee0fca4d5b01ef2ea1"},"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670794099623,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ab1fdb17e2439df7f3e6725273d43ed9","name":"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","requires":[],"size":150181,"version":"2.5.4","binstar":{"package_id":"6393f880bbbc2b1e96051924","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"045408e96973a72c3aa47d2674ffc24d07993ea3824438c4ceb04a407e52f85f"},"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675697872839,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f21575292d4ceb1f795b820b9ed88ac4","name":"ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","requires":[],"size":150151,"version":"2.5.4","binstar":{"package_id":"6393f880bbbc2b1e96051924","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8a26eaa79f8d83376ed567cb26706617b90dc3171800ad0281cc7c762a50529"},"ros-humble-rviz2-11.2.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h413e681_2","timestamp":1670675587415,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b28ac623babcfceddd2fd9c2b31180c1","name":"ros-humble-rviz2","requires":[],"size":25047,"version":"11.2.4","binstar":{"package_id":"6393f8cde6a2f79ab8ce7eb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac74f9c9a16670cb893f2116a8c682d069f4acd543a76aa8645c76114d735d1e"},"ros-humble-rviz2-11.2.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675697388080,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b6f951ee24627e001b3c5b3ba73ca025","name":"ros-humble-rviz2","requires":[],"size":25183,"version":"11.2.5","binstar":{"package_id":"6393f8cde6a2f79ab8ce7eb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cac4ef5ed07f2dfe43a1cc2e072cfb588528ec9a3eedaf781cc90902b937f561"},"ros-humble-nav2-smac-planner-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libode >=0.16.2,<0.16.3.0a0","libstdcxx-ng >=12","nlohmann_json","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-builtin-interfaces","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-ompl","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670675279781,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fa2b7c6e7bcca141b0b9ff542344086f","name":"ros-humble-nav2-smac-planner","requires":[],"size":762152,"version":"1.1.3","binstar":{"package_id":"63947b306a03c9fad2582f8f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"863e8758d0da4fed214d526e54392459563c63d306ba36526dfd4f99fb6005a4"},"ros-humble-nav2-smac-planner-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libode >=0.16.2,<0.16.3.0a0","libstdcxx-ng >=12","nlohmann_json","numpy >=1.21.6,<2.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-builtin-interfaces","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-ompl","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719947146,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9c7b33ac479c586472d4f2063d09d644","name":"ros-humble-nav2-smac-planner","requires":[],"size":772668,"version":"1.1.5","binstar":{"package_id":"63947b306a03c9fad2582f8f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22d349c51f230a573ccc01624dd2b3d867ad02aed34944e5f00591981a991ee8"},"ros-humble-nav2-smoother-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670675065924,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"06433b409dd918fcc8bddbf5f6b20845","name":"ros-humble-nav2-smoother","requires":[],"size":272676,"version":"1.1.3","binstar":{"package_id":"63947b31ead2dcc8c2ce0db2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b941e2415841a3d88057f70392ea5289cea4e24ea8de8709a1b7135010bc4a58"},"ros-humble-nav2-smoother-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719680341,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6a5327c669aa7f30f46fd54c5ec1f187","name":"ros-humble-nav2-smoother","requires":[],"size":273225,"version":"1.1.5","binstar":{"package_id":"63947b31ead2dcc8c2ce0db2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"56b541bd4221c083d394f371c46200336161b4726f9898562f02015b6eb391b3"},"ros-humble-nav2-planner-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670675356781,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"034222be6d9dd4677d1b78b0ad533da5","name":"ros-humble-nav2-planner","requires":[],"size":279612,"version":"1.1.3","binstar":{"package_id":"63947b3266b3e4e3dedd2e10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c7d3cd6f0c299ee2377e441317f0dfebeadcf133f415c0c3c00c557a9ee18fb6"},"ros-humble-nav2-planner-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675720050461,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"27e92c1ee951a534739a8cae1bf71738","name":"ros-humble-nav2-planner","requires":[],"size":280828,"version":"1.1.5","binstar":{"package_id":"63947b3266b3e4e3dedd2e10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b2a1bca28fb6f96c992f836d0d810983f79009c22d0920852d2a11794b2f717"},"ros-humble-nav2-navfn-planner-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670675410385,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"669f4984ab882c7628027fe5b9b916be","name":"ros-humble-nav2-navfn-planner","requires":[],"size":64581,"version":"1.1.3","binstar":{"package_id":"63947b346643907e3b804fe6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce59f15e107b09cfd09bbd376a7183a75e29ef13b3f596299c89a19b9c343b97"},"ros-humble-nav2-navfn-planner-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675720123396,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"517cb98721852111c52b54da97fba3e2","name":"ros-humble-nav2-navfn-planner","requires":[],"size":64560,"version":"1.1.5","binstar":{"package_id":"63947b346643907e3b804fe6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"54b784989994e346731e131d0159b75d11bf29bdff1f8ee8352b1159f3023f6f"},"ros-humble-nav2-theta-star-planner-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670674970391,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c8584db15f7befb04af4cda2c41e91e5","name":"ros-humble-nav2-theta-star-planner","requires":[],"size":54232,"version":"1.1.3","binstar":{"package_id":"63947b356e0eca100b76d3b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8044ff77ba2b46c23faf2153e2639c0ef52cede33f047ec1e7335a6e6c50c44"},"ros-humble-nav2-theta-star-planner-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719553997,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a703d3a37e3f078e2f410bba18d6846f","name":"ros-humble-nav2-theta-star-planner","requires":[],"size":55916,"version":"1.1.5","binstar":{"package_id":"63947b356e0eca100b76d3b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5450e8204592eb6eb29af4cc34384944bffc58e423f44c230fccaadc855311cf"},"ros-humble-nav2-behaviors-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-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":"py310h413e681_2","timestamp":1670675457761,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b9ed4097ac7c3f74e727f2867396d770","name":"ros-humble-nav2-behaviors","requires":[],"size":711140,"version":"1.1.3","binstar":{"package_id":"63947b5e46bec18b899d3d3f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"415f0045a9d998693c07135b7c3b685b3040603d9eaa8bda5e09626e23e8c27a"},"ros-humble-nav2-behaviors-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-behavior-tree","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719873113,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d52435bfad7327fe58ecf5f09e26ff06","name":"ros-humble-nav2-behaviors","requires":[],"size":707567,"version":"1.1.5","binstar":{"package_id":"63947b5e46bec18b899d3d3f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f4d9e1dd9fa3f39a29dde10ac5bbb5fc3a4fdbc75403095142693ba1e3b73bbb"},"ros-humble-nav2-constrained-smoother-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670675013575,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b490a2c0f58bb12552dbac18bcc58188","name":"ros-humble-nav2-constrained-smoother","requires":[],"size":78913,"version":"1.1.3","binstar":{"package_id":"63947b604f66fd116fa2757c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"88eb3454682b776f60fa0fb71a087f6ca2357df48182d6779d7cedd81423cfcb"},"ros-humble-nav2-constrained-smoother-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719541421,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f5d5d25c8e897caeb92bd1e86801fbd7","name":"ros-humble-nav2-constrained-smoother","requires":[],"size":79001,"version":"1.1.5","binstar":{"package_id":"63947b604f66fd116fa2757c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a92fd79953a7962cfd28b1e9de8195372e176e776ba65e3121d35116542b5b15"},"ros-humble-nav2-bt-navigator-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-behaviortree-cpp-v3","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-behavior-tree","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670675241989,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"868d5dbe0f79a67a2b90576441142ba6","name":"ros-humble-nav2-bt-navigator","requires":[],"size":401468,"version":"1.1.3","binstar":{"package_id":"63947b61e6a2f79ab8eb521e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2fa526423af44caa363565a0fac29aca39db5048d73a7dc8d79a5e7e76945ca5"},"ros-humble-nav2-bt-navigator-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-behaviortree-cpp-v3","ros-humble-geometry-msgs","ros-humble-nav-msgs","ros-humble-nav2-behavior-tree","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719650587,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3f7b62cfc77846d20db7dbc58713d0d9","name":"ros-humble-nav2-bt-navigator","requires":[],"size":401528,"version":"1.1.5","binstar":{"package_id":"63947b61e6a2f79ab8eb521e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b341508a2a432d532b49096ada9599d30d5c32868312b86be85fe524f06c0d6"},"ros-humble-nav2-controller-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670675585411,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6832e4ba885d9af9f90171cd0724e791","name":"ros-humble-nav2-controller","requires":[],"size":451069,"version":"1.1.3","binstar":{"package_id":"63947c754f66fd116fa364af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a94e9741133f5cf2a11e9e016240d51b4f6af20a23f237a6fb8a4ed41ce3d48b"},"ros-humble-nav2-controller-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675720182494,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d374222c41a13fdab778f99481ed873e","name":"ros-humble-nav2-controller","requires":[],"size":450006,"version":"1.1.5","binstar":{"package_id":"63947c754f66fd116fa364af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db73d0d8cd6c35618f8cd2e499589099044ebb52d94a58d4fcfba4fd45419d05"},"ros-humble-moveit-ros-planning-2.5.4-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-eigen3-cmake-module","ros-humble-message-filters","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-occupancy-map-monitor","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-srdfdom","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670675396288,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e8da4d674b66aa1a7063eb53b1a454c3","name":"ros-humble-moveit-ros-planning","requires":[],"size":1993995,"version":"2.5.4","binstar":{"package_id":"63947c76ead2dcc8c2ce682a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c10c3b76a93b30218aad0508af1c1ded5d41c693d5e8e7b0846d054f97663633"},"ros-humble-moveit-ros-planning-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-eigen3-cmake-module","ros-humble-message-filters","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-occupancy-map-monitor","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-srdfdom","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719971779,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9c1ff0ad9ac1b32202f4f9a4f1c7a2bd","name":"ros-humble-moveit-ros-planning","requires":[],"size":1959357,"version":"2.5.4","binstar":{"package_id":"63947c76ead2dcc8c2ce682a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45fd9327842c4424c25866b5adb90f8b0b3145139e3590b370f05c0fde07ad57"},"ros-humble-nav2-waypoint-follower-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670675711796,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"abecaa86e5bba59d357f99570417a019","name":"ros-humble-nav2-waypoint-follower","requires":[],"size":946116,"version":"1.1.3","binstar":{"package_id":"63947c77a2b71210082e5bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2aeaef27867a61e2ff84cdb199f7a96a552a69e0d927a77b5a3ef3fa72cc1231"},"ros-humble-nav2-waypoint-follower-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","ros-humble-nav-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclcpp-lifecycle","ros-humble-ros-workspace","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675720311607,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6e7fc5d70ff5513c6120e5322ce62009","name":"ros-humble-nav2-waypoint-follower","requires":[],"size":943243,"version":"1.1.5","binstar":{"package_id":"63947c77a2b71210082e5bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ef2bd54cd21d5dcd32e9c93b8c16b901bd30a618685107017db4ab4681f6c6e1"},"ros-humble-nav2-regulated-pure-pursuit-controller-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670675461018,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"82dd18cbe42699a0d0a733ee8e4f933e","name":"ros-humble-nav2-regulated-pure-pursuit-controller","requires":[],"size":114418,"version":"1.1.3","binstar":{"package_id":"63947c78bbbc2b1e962d69a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"967dea932280354dc3941b145da7e0b6c6f9d9d44ccce49e7327d4571553713d"},"ros-humble-nav2-regulated-pure-pursuit-controller-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675720043247,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b7f1336a1ab34f341d9b02757cd96948","name":"ros-humble-nav2-regulated-pure-pursuit-controller","requires":[],"size":114427,"version":"1.1.5","binstar":{"package_id":"63947c78bbbc2b1e962d69a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d024ebd91823f371cf8df168f63606ab2cc6fc2612ef3056c7d1b4f6aed0d377"},"ros-humble-dwb-core-1.1.3-py310h413e681_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.10.* *_cp310","ros-humble-dwb-msgs","ros-humble-geometry-msgs","ros-humble-nav-2d-utils","ros-humble-nav-msgs","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h413e681_2","timestamp":1670674977240,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"78db2bfd986a9883bcc5fd3f5334769a","name":"ros-humble-dwb-core","requires":[],"size":270358,"version":"1.1.3","binstar":{"package_id":"63947c79358aafdd3d07c31a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"66b05045d788894b04281e4d3801d112ed9c282ba96ca0aae525ec9522be2790"},"ros-humble-dwb-core-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-dwb-msgs","ros-humble-geometry-msgs","ros-humble-nav-2d-utils","ros-humble-nav-msgs","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719548855,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"50f436a7a15501cb7c7b9d30337729cb","name":"ros-humble-dwb-core","requires":[],"size":270417,"version":"1.1.5","binstar":{"package_id":"63947c79358aafdd3d07c31a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c95f9d535f44728a5bafbf61b37ee07ce7a59ae15eda41557cdd7e6e3d86e1b4"},"ros-humble-moveit-plugins-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-simple-controller-manager","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670793554665,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e56aeeb5b89bc702189de0f82696f8f8","name":"ros-humble-moveit-plugins","requires":[],"size":12274,"version":"2.5.4","binstar":{"package_id":"6395846954e9ace8546fb6a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"235e4c8a02f82b8d91e795719f116ba2e15d7bd6fddde33b7405d3ce51b3a696"},"ros-humble-moveit-plugins-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-simple-controller-manager","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719764544,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"347915424920576f9af977de7d86df78","name":"ros-humble-moveit-plugins","requires":[],"size":12306,"version":"2.5.4","binstar":{"package_id":"6395846954e9ace8546fb6a7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e062641f32076d5f0f64c3708e215c953bff869f21bb425dd0b119501fab368e"},"ros-humble-moveit-kinematics-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-class-loader","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-orocos-kdl-vendor","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-kdl","ros-humble-urdfdom","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670743357032,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6698c84cc9e11c196adac03df4af84c1","name":"ros-humble-moveit-kinematics","requires":[],"size":299466,"version":"2.5.4","binstar":{"package_id":"639585db1f9cf5f92a388600","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df9c4b499e9c3986b8ce6f54fac839a0dc1a088798260b02c1e54382d0ca9f6b"},"ros-humble-moveit-kinematics-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-class-loader","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-orocos-kdl-vendor","ros-humble-pluginlib","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-kdl","ros-humble-urdfdom","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675720997621,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"64a75a4caeec171e8c17c2acc7f70631","name":"ros-humble-moveit-kinematics","requires":[],"size":315412,"version":"2.5.4","binstar":{"package_id":"639585db1f9cf5f92a388600","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a12448833111ee9cdba64f648142dd7e7cd25116f92868efa1462185968bf9d"},"ros-humble-nav2-rotation-shim-controller-1.1.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670743438590,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"35b82fabcc06fe3e7c566d1eeaac0e09","name":"ros-humble-nav2-rotation-shim-controller","requires":[],"size":138616,"version":"1.1.3","binstar":{"package_id":"639585dca2b71210089676f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a902001b7a6b121e233c74affe648c4ebb17bffaf8cb76ba505ee07d7b30cde"},"ros-humble-nav2-rotation-shim-controller-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geometry-msgs","ros-humble-nav2-common","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-msgs","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675721087768,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6c8bf6af95aab0bf6e01938449e46e8f","name":"ros-humble-nav2-rotation-shim-controller","requires":[],"size":138559,"version":"1.1.5","binstar":{"package_id":"639585dca2b71210089676f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f4f10ca92f0127e42a2a99acab0c4d02dfcf2aa6067569953fd1d59089c70d4"},"ros-humble-dwb-plugins-1.1.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-dwb-core","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670743023329,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"12398e4be733a1004d13aa2ea0f52943","name":"ros-humble-dwb-plugins","requires":[],"size":66656,"version":"1.1.3","binstar":{"package_id":"639585e02dd70620554daa4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eb7de14a3dafe345114a84ae752e9b1c10aef73f51b8e4d5054dad818d931950"},"ros-humble-dwb-plugins-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-dwb-core","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675720628223,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"68213168b6cfb02699267fe7e6082c34","name":"ros-humble-dwb-plugins","requires":[],"size":66707,"version":"1.1.5","binstar":{"package_id":"639585e02dd70620554daa4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"903274b12d995d3d8a5e6b9566f5cce12a93602af72969069b704a15327d1fe0"},"ros-humble-dwb-critics-1.1.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-costmap-queue","ros-humble-dwb-core","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670743157602,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"172d5a3e1710bcd82d90559bb4b19fbc","name":"ros-humble-dwb-critics","requires":[],"size":85700,"version":"1.1.3","binstar":{"package_id":"639585e246f81babca8682fe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81d4882332b6d19bf2a325116f1ef3c08d17fccc9ad56d6b86dbfb49f00d0d9e"},"ros-humble-dwb-critics-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-costmap-queue","ros-humble-dwb-core","ros-humble-geometry-msgs","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-nav2-costmap-2d","ros-humble-nav2-util","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675720778829,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"85527bc458916222e26c1d801f145f46","name":"ros-humble-dwb-critics","requires":[],"size":85698,"version":"1.1.5","binstar":{"package_id":"639585e246f81babca8682fe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6178626b180c14a21614001f3834c5bc4f68a5cd270e2827bc02e770206d5b1"},"ros-humble-turtlebot3-bringup-2.1.5-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670793492966,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4616ab047c8208207b60d227ac2fdda0","name":"ros-humble-turtlebot3-bringup","requires":[],"size":18409,"version":"2.1.5","binstar":{"package_id":"63964971a2b7121008e87c79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"328fd7faedf169911daefeab4c009142be5f1f4aa3354e7c3c24c64e0b5ed0e7"},"ros-humble-turtlebot3-bringup-2.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","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":"py310h7c61026_3","timestamp":1675719834536,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ea64ad7bfec3ad684c1afad8e11c2be5","name":"ros-humble-turtlebot3-bringup","requires":[],"size":18445,"version":"2.1.5","binstar":{"package_id":"63964971a2b7121008e87c79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ea1f3462600678297a2e8f9f6ccb629a265ae0fc96794a4f00ee59e14a10714a"},"ros-humble-urdf-tutorial-1.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-joint-state-publisher-gui","ros-humble-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":"py310h7c61026_2","timestamp":1670793582764,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3b719c2e915967c2ddf58dc410b9de88","name":"ros-humble-urdf-tutorial","requires":[],"size":918691,"version":"1.0.0","binstar":{"package_id":"63964972bbbc2b1e96bdfdd8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cd65fa9447b8c1ffdb5c1316db6f1323053343af1fd425ffa6c95815ab787f78"},"ros-humble-urdf-tutorial-1.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-joint-state-publisher-gui","ros-humble-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":"py310h7c61026_3","timestamp":1675719798264,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"27ec233dff050197ae176d0e9db70a7b","name":"ros-humble-urdf-tutorial","requires":[],"size":927068,"version":"1.0.0","binstar":{"package_id":"63964972bbbc2b1e96bdfdd8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bf2a284eefe1eac56ef62f8c0c1fecaec38cc8febf143fc3cd7dafd812014c61"},"ros-humble-webots-ros2-universal-robot-2023.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-control-msgs","ros-humble-controller-manager","ros-humble-joint-state-broadcaster","ros-humble-joint-trajectory-controller","ros-humble-rclpy","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-trajectory-msgs","ros-humble-webots-ros2-control","ros-humble-webots-ros2-driver","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670793576046,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"216452402b79a0606fd0e67a6c76cbd8","name":"ros-humble-webots-ros2-universal-robot","requires":[],"size":4089432,"version":"2023.0.0","binstar":{"package_id":"63964a3f46f81babcae7dcdb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f1a678d8b6dce83c18a9220cf4030c60b4fa5720cba485756eab04b2bf3644c"},"ros-humble-webots-ros2-universal-robot-2023.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-control-msgs","ros-humble-controller-manager","ros-humble-joint-state-broadcaster","ros-humble-joint-trajectory-controller","ros-humble-rclpy","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-trajectory-msgs","ros-humble-webots-ros2-control","ros-humble-webots-ros2-driver","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719734929,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"332d312736d39e147930357e6a7a99c7","name":"ros-humble-webots-ros2-universal-robot","requires":[],"size":4080209,"version":"2023.0.1","binstar":{"package_id":"63964a3f46f81babcae7dcdb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ad45043c12b3d7adc8c8aec1a3058fde981f35d4cf3f766f6dbe97514e3dc2e"},"ros-humble-webots-ros2-epuck-2023.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-controller-manager","ros-humble-diff-drive-controller","ros-humble-geometry-msgs","ros-humble-joint-state-broadcaster","ros-humble-nav-msgs","ros-humble-rclpy","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-ros","ros-humble-webots-ros2-control","ros-humble-webots-ros2-driver","ros-humble-webots-ros2-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670793684492,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9985ca0483de6b64f6cd80f0b3adcfe0","name":"ros-humble-webots-ros2-epuck","requires":[],"size":55682,"version":"2023.0.0","binstar":{"package_id":"63964a402b3749bdb865b979","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce3fb168e40e9fa2daf3ddec7b9c8349fff97e86a4af031d132c2a39dde13343"},"ros-humble-webots-ros2-epuck-2023.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-controller-manager","ros-humble-diff-drive-controller","ros-humble-geometry-msgs","ros-humble-joint-state-broadcaster","ros-humble-nav-msgs","ros-humble-rclpy","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-tf2-ros","ros-humble-webots-ros2-control","ros-humble-webots-ros2-driver","ros-humble-webots-ros2-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719571504,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5ca381a1f1668da9d5a2a930e44e8832","name":"ros-humble-webots-ros2-epuck","requires":[],"size":51083,"version":"2023.0.1","binstar":{"package_id":"63964a402b3749bdb865b979","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34a753912f6f11d7e94a02088b08c9d91c94548c76e4dda71ed428d41b3a6a42"},"ros-humble-webots-ros2-turtlebot-2023.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-controller-manager","ros-humble-diff-drive-controller","ros-humble-joint-state-broadcaster","ros-humble-rclpy","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-tf2-ros","ros-humble-webots-ros2-control","ros-humble-webots-ros2-driver","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670793617164,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4a6e36c2bf74928a21fe45616c7f4511","name":"ros-humble-webots-ros2-turtlebot","requires":[],"size":23998,"version":"2023.0.0","binstar":{"package_id":"63964a4146f81babcae7dcf7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d98371f8c96ef36d9c505777ddea393826c9ed5b45c3392d2ac00815d436c7a4"},"ros-humble-webots-ros2-turtlebot-2023.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-controller-manager","ros-humble-diff-drive-controller","ros-humble-joint-state-broadcaster","ros-humble-rclpy","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-tf2-ros","ros-humble-webots-ros2-control","ros-humble-webots-ros2-driver","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719767316,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b4e64be1ab79dcb2603657fe46900a57","name":"ros-humble-webots-ros2-turtlebot","requires":[],"size":22196,"version":"2023.0.1","binstar":{"package_id":"63964a4146f81babcae7dcf7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4386430d74c6e6348ceb1793d7439cbe959d2e1a5ab758027b1c916f7fa72740"},"ros-humble-webots-ros2-tiago-2023.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-controller-manager","ros-humble-diff-drive-controller","ros-humble-geometry-msgs","ros-humble-joint-state-broadcaster","ros-humble-rclpy","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-tf2-ros","ros-humble-webots-ros2-control","ros-humble-webots-ros2-driver","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670793649881,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4e827429aad3c90547836fb4cebebea0","name":"ros-humble-webots-ros2-tiago","requires":[],"size":28562,"version":"2023.0.0","binstar":{"package_id":"63964a42114c465c985658b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6b363d5d44e6fa3782d757b79375cb234f5b656dfeb3a24097d45743580af9d1"},"ros-humble-webots-ros2-tiago-2023.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-controller-manager","ros-humble-diff-drive-controller","ros-humble-geometry-msgs","ros-humble-joint-state-broadcaster","ros-humble-rclpy","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-tf2-ros","ros-humble-webots-ros2-control","ros-humble-webots-ros2-driver","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719544886,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"64aa367075d9370a42470b3d06e63655","name":"ros-humble-webots-ros2-tiago","requires":[],"size":26435,"version":"2023.0.1","binstar":{"package_id":"63964a42114c465c985658b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6915a87bc61749e96bd3515fe76063dfa3274b85495d3df09e6b1a32c2e106f4"},"ros-humble-ros-gz-sim-demos-0.244.9-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-gazebo6","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-transport-plugins","ros-humble-robot-state-publisher","ros-humble-ros-gz-bridge","ros-humble-ros-gz-image","ros-humble-ros-gz-sim","ros-humble-ros-workspace","ros-humble-rqt-image-view","ros-humble-rqt-plot","ros-humble-rqt-topic","ros-humble-rviz2","ros-humble-sdformat-urdf","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670793787522,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e197be51fcf1613226972b61d056e32e","name":"ros-humble-ros-gz-sim-demos","requires":[],"size":37701,"version":"0.244.9","binstar":{"package_id":"63964a4246bec18b89ff9386","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34ccdc94e7b12dba1d05be3d4898ed1eedc5fbb7bb53715ef227e8439be4c4a0"},"ros-humble-ros-gz-sim-demos-0.244.9-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libignition-gazebo6","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-transport-plugins","ros-humble-robot-state-publisher","ros-humble-ros-gz-bridge","ros-humble-ros-gz-image","ros-humble-ros-gz-sim","ros-humble-ros-workspace","ros-humble-rqt-image-view","ros-humble-rqt-plot","ros-humble-rqt-topic","ros-humble-rviz2","ros-humble-sdformat-urdf","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719658958,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6680080d0e3272219115da7fe7ab5965","name":"ros-humble-ros-gz-sim-demos","requires":[],"size":37760,"version":"0.244.9","binstar":{"package_id":"63964a4246bec18b89ff9386","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c285a6532817f5afc941985a1ae4d6ca00e5d26979e4f94df13b58da671add86"},"ros-humble-rqt-bag-1.1.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosbag2-py","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670794246962,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b87d6042e585f090fa571b79766356c5","name":"ros-humble-rqt-bag","requires":[],"size":151313,"version":"1.1.4","binstar":{"package_id":"63964bb4e6a2f79ab848612f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"267574b237b5155b11a9f33eaef4c1905a580fa63b55065d777db3c35088a9eb"},"ros-humble-rqt-bag-1.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosbag2-py","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719497596,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2e74d84b01c8988e183b333343fde8ab","name":"ros-humble-rqt-bag","requires":[],"size":149283,"version":"1.1.4","binstar":{"package_id":"63964bb4e6a2f79ab848612f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a81e238110806deda892a925d6c9e4473a40292f8984830d6574f98f6ae1bbf6"},"ros-humble-rosbridge-server-1.3.1-py310h7c61026_4.tar.bz2":{"build_number":4,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosapi","ros-humble-rosbridge-library","ros-humble-rosbridge-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","tornado","twisted"],"build":"py310h7c61026_4","timestamp":1686904639775,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f1ffce0164472372f1653454cb03cc74","name":"ros-humble-rosbridge-server","requires":[],"size":33205,"version":"1.3.1","binstar":{"package_id":"63964bb5ead2dcc8c26069f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8eb2d6b3fa561e6a244370b1ce08cb27be5e58aec706c70522c73ecd63418194"},"ros-humble-moveit-ros-robot-interaction-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-interactive-markers","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670794206124,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6009b5fb55185e96041af7acfc63aade","name":"ros-humble-moveit-ros-robot-interaction","requires":[],"size":246532,"version":"2.5.4","binstar":{"package_id":"63964bb846f81babcae84a33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f38747ed7a39c1f0907f809900aa030f61d34b0cff145f033269dcb21732db5"},"ros-humble-moveit-ros-robot-interaction-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-interactive-markers","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675720841503,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0af80e3741dde1dbdc0bccd3dd719a8d","name":"ros-humble-moveit-ros-robot-interaction","requires":[],"size":244104,"version":"2.5.4","binstar":{"package_id":"63964bb846f81babcae84a33","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3b3e847ea8a5a08ff91ea19b4c16cfd2f23c9c35225c96b7a95265fe9bc51501"},"ros-humble-ur-description-2.0.1-py310hf666ce2_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher-gui","ros-humble-launch","ros-humble-launch-ros","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-urdf","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","urdfdom >=3.1.0,<3.2.0a0"],"build":"py310hf666ce2_2","timestamp":1670794286417,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d64636e4856bcfdbe27ae0e5f8ce4491","name":"ros-humble-ur-description","requires":[],"size":21062908,"version":"2.0.1","binstar":{"package_id":"63964c49358aafdd3d4b1be3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff5b7a9a188b8ed74f771b015eee1c3b564e64af6f683344d5d60990278602e7"},"ros-humble-ur-description-2.0.1-py310hf666ce2_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher-gui","ros-humble-launch","ros-humble-launch-ros","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-urdf","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","urdfdom >=3.1.0,<3.2.0a0"],"build":"py310hf666ce2_3","timestamp":1675719555502,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7dcf21027015f40460296a38691a1cf8","name":"ros-humble-ur-description","requires":[],"size":21068492,"version":"2.0.1","binstar":{"package_id":"63964c49358aafdd3d4b1be3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6a368467fe3fb077a6910e9745a0a475e2a91392c72ddf288087c8094ed437c"},"ros-humble-slam-toolbox-2.6.3-py310hb344815_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libgcc-ng >=12","libgcc-ng >=12","liblapack >=3.9.0,<4.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<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.2.* humble","ros2-distro-mutex 0.2.* humble","suitesparse >=5.10.1,<6.0a0","tbb >=2021.7.0","tbb-devel","xorg-libx11","xorg-libxext"],"build":"py310hb344815_2","timestamp":1670793975915,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0c1270ef0d91a584771bf99a8e430553","name":"ros-humble-slam-toolbox","requires":[],"size":3107833,"version":"2.6.3","binstar":{"package_id":"63964c4e66b3e4e3de8cae9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4aa21fc1351e175732f84ea47c14e1b918b5ef4972e5fa67cee3148e5d49d0de"},"ros-humble-slam-toolbox-2.6.4-py310hb344815_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libgcc-ng >=12","libgcc-ng >=12","liblapack >=3.9.0,<4.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<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.7.0","tbb-devel","xorg-libx11","xorg-libxext"],"build":"py310hb344815_3","timestamp":1675697799634,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5f2853eda69ede3580f02ab225d075e9","name":"ros-humble-slam-toolbox","requires":[],"size":3098718,"version":"2.6.4","binstar":{"package_id":"63964c4e66b3e4e3de8cae9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"420bd91a7b08a7c0841d3920ce3c9a3182ce9d933f348088231f99ccab73a703"},"ros-humble-slam-toolbox-2.6.4-py310hb344815_4.tar.bz2":{"build_number":4,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libgcc-ng >=12","libgcc-ng >=12","liblapack >=3.9.0,<4.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.8,<5.16.0a0","ros-humble-builtin-interfaces","ros-humble-interactive-markers","ros-humble-message-filters","ros-humble-nav-msgs","ros-humble-nav2-map-server","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rosidl-default-generators","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-tf2-sensor-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","suitesparse >=5.10.1,<6.0a0","tbb >=2021.9.0","tbb-devel","xorg-libx11 >=1.8.5,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py310hb344815_4","timestamp":1686667066790,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d9e1c9e4fb9b1064864454bec18f044c","name":"ros-humble-slam-toolbox","requires":[],"size":3090910,"version":"2.6.4","binstar":{"package_id":"63964c4e66b3e4e3de8cae9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9f31d4fb759565552120d9d381eeee66b3e76e8e76ab91fd3f32d269dd6b57a5"},"ros-humble-nav2-dwb-controller-1.1.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-costmap-queue","ros-humble-dwb-core","ros-humble-dwb-critics","ros-humble-dwb-msgs","ros-humble-dwb-plugins","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670793529530,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"10afca9e89240cdab3d7451172445823","name":"ros-humble-nav2-dwb-controller","requires":[],"size":11839,"version":"1.1.3","binstar":{"package_id":"63964c9046f81babcae880bd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a6e9696a0b70c9e2952750db9c03ae46cbaec17650ebf3623b8b3821967b85b4"},"ros-humble-nav2-dwb-controller-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-costmap-queue","ros-humble-dwb-core","ros-humble-dwb-critics","ros-humble-dwb-msgs","ros-humble-dwb-plugins","ros-humble-nav-2d-msgs","ros-humble-nav-2d-utils","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675721482898,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0c03908fa45f56d39604f3f367e42a7b","name":"ros-humble-nav2-dwb-controller","requires":[],"size":11860,"version":"1.1.5","binstar":{"package_id":"63964c9046f81babcae880bd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"278db6107f5bbd6d9b46c5416af59f32232953dc7f83154b01c545807a9468cb"},"ros-humble-moveit-ros-warehouse-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-warehouse-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670793766267,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6e35d54552bb59edbceac0ce0ecbba7e","name":"ros-humble-moveit-ros-warehouse","requires":[],"size":725461,"version":"2.5.4","binstar":{"package_id":"63964c9254e9ace8548804d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db64ba00a772229a45f6eed7247345c9128cba574330cefd35611f52838829b1"},"ros-humble-moveit-ros-warehouse-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-warehouse-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675721280450,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ddaedc354cfbb01b51591a528a10f74a","name":"ros-humble-moveit-ros-warehouse","requires":[],"size":724212,"version":"2.5.4","binstar":{"package_id":"63964c9254e9ace8548804d9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f6c877da042612a68d6aeed41870a84e43e7a6623ae225d944e0e008ff51ebd"},"ros-humble-moveit-ros-move-group-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-kinematics","ros-humble-moveit-ros-occupancy-map-monitor","ros-humble-moveit-ros-planning","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670794018998,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"12cd1fa1b89ce0edd7b14cc02f351407","name":"ros-humble-moveit-ros-move-group","requires":[],"size":574535,"version":"2.5.4","binstar":{"package_id":"63964c9466b3e4e3de8cbb14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27d194dc118fc57347de325b22c18b68617377fa84efc61a061566b215b3ad72"},"ros-humble-moveit-ros-move-group-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-kinematics","ros-humble-moveit-ros-occupancy-map-monitor","ros-humble-moveit-ros-planning","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-ros-workspace","ros-humble-std-srvs","ros-humble-tf2","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675721711081,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"722a7285c86923262042ad8b98f713c8","name":"ros-humble-moveit-ros-move-group","requires":[],"size":574480,"version":"2.5.4","binstar":{"package_id":"63964c9466b3e4e3de8cbb14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed6ea42ed62092a60e386d719b7dec40102bcd56f5847813ec2e3cbc941581d1"},"ros-humble-moveit-planners-ompl-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["_openmp_mutex >=4.5","libgcc-ng >=12","libgcc-ng >=12","libgomp","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-planning","ros-humble-ompl","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670794332427,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5d0c3da673a07c8223f213a36eb2e784","name":"ros-humble-moveit-planners-ompl","requires":[],"size":480993,"version":"2.5.4","binstar":{"package_id":"63964c9666b3e4e3de8cbb39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c503353782bb1dee3e70f76895d99242f7827a64c57c919116fb175555467104"},"ros-humble-moveit-planners-ompl-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["_openmp_mutex >=4.5","libgcc-ng >=12","libgcc-ng >=12","libgomp","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-planning","ros-humble-ompl","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675720757112,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0e127a1c36418ba61a69dafc7ad619b0","name":"ros-humble-moveit-planners-ompl","requires":[],"size":478188,"version":"2.5.4","binstar":{"package_id":"63964c9666b3e4e3de8cbb39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ece29858e0e1671719e45ad008e4da1259f6f0ef02415238541b55e2db30c457"},"ros-humble-ros2bag-0.15.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosbag2-py","ros-humble-rosbag2-transport","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670794380794,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7827163344c1be079e2710f101f6732a","name":"ros-humble-ros2bag","requires":[],"size":38381,"version":"0.15.3","binstar":{"package_id":"63964c98ead2dcc8c2609624","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e3d982183c53a2144131f24b7e9f4b12c894e47ca0798f8ad05d6098eac40065"},"ros-humble-ros2bag-0.15.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2cli","ros-humble-rosbag2-py","ros-humble-rosbag2-transport","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675719908355,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1b9eaee827dce4960a9195884bff5823","name":"ros-humble-ros2bag","requires":[],"size":37176,"version":"0.15.4","binstar":{"package_id":"63964c98ead2dcc8c2609624","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7adeb77c93806264bb6e1303648f3cb0ba1d290a26e6cc7cc3a39475f6b1916d"},"ros-humble-ros-ign-gazebo-demos-0.244.9-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-sim-demos","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670794877150,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1360dc2b4088389bcc6ae9a6b5b0976d","name":"ros-humble-ros-ign-gazebo-demos","requires":[],"size":18777,"version":"0.244.9","binstar":{"package_id":"63964e9a46f81babcae90b4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b44a65957114eecf21e5db311668da936123fe897950832be88a4ca9b948f56c"},"ros-humble-ros-ign-gazebo-demos-0.244.9-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-sim-demos","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675720622379,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"aa417eb349ff54af539a037e79d22f58","name":"ros-humble-ros-ign-gazebo-demos","requires":[],"size":18843,"version":"0.244.9","binstar":{"package_id":"63964e9a46f81babcae90b4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"07354e93b1959e460520f661b331852e6efb19d3a5a033d02ed80acf10f21b34"},"ros-humble-ros-gz-0.244.9-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-bridge","ros-humble-ros-gz-image","ros-humble-ros-gz-sim","ros-humble-ros-gz-sim-demos","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670794904336,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d8cbafa5cfbfba212592ccc4521ca099","name":"ros-humble-ros-gz","requires":[],"size":13892,"version":"0.244.9","binstar":{"package_id":"63964e9b66b3e4e3de8d688c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"389cc05f57018d6064706ce256eaefa2b6917815fe2665e9c7f2f57e4d861411"},"ros-humble-ros-gz-0.244.9-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz-bridge","ros-humble-ros-gz-image","ros-humble-ros-gz-sim","ros-humble-ros-gz-sim-demos","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675720649847,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"db5998894ad64a340e5c45fc4b636608","name":"ros-humble-ros-gz","requires":[],"size":13959,"version":"0.244.9","binstar":{"package_id":"63964e9b66b3e4e3de8d688c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"082697c7dd1499941ac3ee38a19bc00f510023c84f36f7683214b8fa721c36eb"},"ros-humble-webots-ros2-tests-2023.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670794810991,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"098ffbc79ac8a5fbf4271321ae2cd1c4","name":"ros-humble-webots-ros2-tests","requires":[],"size":19073,"version":"2023.0.0","binstar":{"package_id":"63964e9cbbbc2b1e96bf10a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8b1bf34af9bb2b2a5b93a6587675064109c7cb98180d18d15bf77332387ff25"},"ros-humble-webots-ros2-tests-2023.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675721073746,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ea85d6f1e1d8c63ab75defe779e2cdd2","name":"ros-humble-webots-ros2-tests","requires":[],"size":18422,"version":"2023.0.1","binstar":{"package_id":"63964e9cbbbc2b1e96bf10a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"172978d699b4f79a547ecaf700ec685529441caea0cc36c846b442613ef7f5bd"},"ros-humble-moveit-ros-benchmarks-2.5.4-py310he1f1850_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-param-builder","ros-humble-moveit-common","ros-humble-moveit-configs-utils","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-warehouse","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310he1f1850_2","timestamp":1670794698108,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6ccea562265ad7a8d08778332c2efcfd","name":"ros-humble-moveit-ros-benchmarks","requires":[],"size":299635,"version":"2.5.4","binstar":{"package_id":"63964e9da2b7121008ea0efe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a74a2955c96b69857d227d2a25e72ab2f2fb155163445e69c2c809e6c80e923"},"ros-humble-moveit-ros-benchmarks-2.5.4-py310he1f1850_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-param-builder","ros-humble-moveit-common","ros-humble-moveit-configs-utils","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-warehouse","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2-eigen","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310he1f1850_3","timestamp":1675721837661,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5fe24b173b080dc226cb41a83d3389ca","name":"ros-humble-moveit-ros-benchmarks","requires":[],"size":299189,"version":"2.5.4","binstar":{"package_id":"63964e9da2b7121008ea0efe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5f419a9e614837ab5759cfb6ad5c1ad149fca0f34a8d01da317b7f15003e36ac"},"ros-humble-rosbag2-tests-0.15.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670794876405,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5644f602ed63af407369798391716551","name":"ros-humble-rosbag2-tests","requires":[],"size":11510,"version":"0.15.3","binstar":{"package_id":"63964f126a03c9fad2fb4d51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8fdbb11b019b129288ebe5445dd0255b22fed5c942848d108884aaa11d86bcb6"},"ros-humble-rosbag2-tests-0.15.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675720876899,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"72ce6edbedd21dfda20b8ddd87ecc4de","name":"ros-humble-rosbag2-tests","requires":[],"size":11535,"version":"0.15.4","binstar":{"package_id":"63964f126a03c9fad2fb4d51","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d6e600375999684030f3db79d86e3b5362336926709ac213ed126b99c21c4b2"},"ros-humble-ur-robot-driver-2.2.6-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-controller-manager","ros-humble-controller-manager-msgs","ros-humble-force-torque-sensor-broadcaster","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-joint-state-broadcaster","ros-humble-joint-state-publisher","ros-humble-joint-trajectory-controller","ros-humble-launch","ros-humble-launch-ros","ros-humble-pluginlib","ros-humble-position-controllers","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-rclpy","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-ros2-controllers-test-nodes","ros-humble-rviz2","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-geometry-msgs","ros-humble-ur-client-library","ros-humble-ur-controllers","ros-humble-ur-dashboard-msgs","ros-humble-ur-description","ros-humble-ur-msgs","ros-humble-urdf","ros-humble-velocity-controllers","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","socat"],"build":"py310h7c61026_2","timestamp":1670795021684,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f045c13d826971c087da12fd83877f2d","name":"ros-humble-ur-robot-driver","requires":[],"size":770058,"version":"2.2.6","binstar":{"package_id":"63964f1446f81babcae93a35","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6ba7312e5e2c4e29d546553f978accbe73cfe890a90bb968e8dece7ef1bd83eb"},"ros-humble-ur-robot-driver-2.2.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-controller-manager","ros-humble-controller-manager-msgs","ros-humble-force-torque-sensor-broadcaster","ros-humble-geometry-msgs","ros-humble-hardware-interface","ros-humble-joint-state-broadcaster","ros-humble-joint-state-publisher","ros-humble-joint-trajectory-controller","ros-humble-launch","ros-humble-launch-ros","ros-humble-pluginlib","ros-humble-position-controllers","ros-humble-rclcpp","ros-humble-rclcpp-lifecycle","ros-humble-rclpy","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-ros2-controllers-test-nodes","ros-humble-rviz2","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-geometry-msgs","ros-humble-ur-client-library","ros-humble-ur-controllers","ros-humble-ur-dashboard-msgs","ros-humble-ur-description","ros-humble-ur-msgs","ros-humble-urdf","ros-humble-velocity-controllers","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","socat"],"build":"py310h7c61026_3","timestamp":1675721015004,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1b45d56780756893eb38d8f8e32cad5f","name":"ros-humble-ur-robot-driver","requires":[],"size":783194,"version":"2.2.6","binstar":{"package_id":"63964f1446f81babcae93a35","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"743bdebdd902b9e89633295db1c3c79ecdae2675de923fe351fa9bf5e13c065a"},"ros-humble-moveit-ros-planning-interface-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-warehouse","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670794830760,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cbb6d74e4855f1986d151283f3e0bd75","name":"ros-humble-moveit-ros-planning-interface","requires":[],"size":373047,"version":"2.5.4","binstar":{"package_id":"63964f15a2b7121008ea2224","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8cc0a3d3cb996cf29fa28c1c9cf48c1231c094b2551cc6a393e4e52ae335e1c7"},"ros-humble-moveit-ros-planning-interface-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-warehouse","ros-humble-rclcpp","ros-humble-rclcpp-action","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675722486382,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ba7a5f0d5ad3a9a67b6c4e5dc2363758","name":"ros-humble-moveit-ros-planning-interface","requires":[],"size":376829,"version":"2.5.4","binstar":{"package_id":"63964f15a2b7121008ea2224","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0f71eb6693cafe9e65725cc6da6328e84ff12db08d4f9fe678a1045cac9b2cd6"},"ros-humble-navigation2-1.1.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav2-amcl","ros-humble-nav2-behavior-tree","ros-humble-nav2-behaviors","ros-humble-nav2-bt-navigator","ros-humble-nav2-collision-monitor","ros-humble-nav2-constrained-smoother","ros-humble-nav2-controller","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-dwb-controller","ros-humble-nav2-lifecycle-manager","ros-humble-nav2-map-server","ros-humble-nav2-msgs","ros-humble-nav2-navfn-planner","ros-humble-nav2-planner","ros-humble-nav2-regulated-pure-pursuit-controller","ros-humble-nav2-rotation-shim-controller","ros-humble-nav2-rviz-plugins","ros-humble-nav2-simple-commander","ros-humble-nav2-smac-planner","ros-humble-nav2-smoother","ros-humble-nav2-theta-star-planner","ros-humble-nav2-util","ros-humble-nav2-velocity-smoother","ros-humble-nav2-voxel-grid","ros-humble-nav2-waypoint-follower","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670794693943,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5532f056aa252dfe0d1ec7892e2ab19a","name":"ros-humble-navigation2","requires":[],"size":13932,"version":"1.1.3","binstar":{"package_id":"63964f1646f81babcae93aa9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"40f0847ff97c63cffd7f569be0d7c711e90a3d89a14f7ba4dd3ef513a23da64c"},"ros-humble-navigation2-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav2-amcl","ros-humble-nav2-behavior-tree","ros-humble-nav2-behaviors","ros-humble-nav2-bt-navigator","ros-humble-nav2-collision-monitor","ros-humble-nav2-constrained-smoother","ros-humble-nav2-controller","ros-humble-nav2-core","ros-humble-nav2-costmap-2d","ros-humble-nav2-dwb-controller","ros-humble-nav2-lifecycle-manager","ros-humble-nav2-map-server","ros-humble-nav2-msgs","ros-humble-nav2-navfn-planner","ros-humble-nav2-planner","ros-humble-nav2-regulated-pure-pursuit-controller","ros-humble-nav2-rotation-shim-controller","ros-humble-nav2-rviz-plugins","ros-humble-nav2-simple-commander","ros-humble-nav2-smac-planner","ros-humble-nav2-smoother","ros-humble-nav2-theta-star-planner","ros-humble-nav2-util","ros-humble-nav2-velocity-smoother","ros-humble-nav2-voxel-grid","ros-humble-nav2-waypoint-follower","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675722283513,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0688fe2fab33a18b63f9b0f420fe49e1","name":"ros-humble-navigation2","requires":[],"size":13952,"version":"1.1.5","binstar":{"package_id":"63964f1646f81babcae93aa9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"78513d21a3af6eebede61a0f6656178f058f68d8d7d7bdf6a6ce1f35680cf5ad"},"ros-humble-moveit-resources-prbt-moveit-config-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","ros-humble-moveit-resources-prbt-support","ros-humble-moveit-ros-move-group","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670794903792,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b3e9739d184a60b5469327f5e0e2ae0d","name":"ros-humble-moveit-resources-prbt-moveit-config","requires":[],"size":24947,"version":"2.5.4","binstar":{"package_id":"63964f18ead2dcc8c26155c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf8043ffaa1daed3af9ce0d5de99878f909ef8f54b1fb54ee4ca74e8ed320777"},"ros-humble-moveit-resources-prbt-moveit-config-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-joint-state-publisher","ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","ros-humble-moveit-resources-prbt-support","ros-humble-moveit-ros-move-group","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675722525684,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9144ba621f16ed1d9f7767835bb186dc","name":"ros-humble-moveit-resources-prbt-moveit-config","requires":[],"size":25012,"version":"2.5.4","binstar":{"package_id":"63964f18ead2dcc8c26155c7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd63966f7c11818e924abab68d9a224613458f0c91f04cddd98d3bddaee67860"},"ros-humble-rosbridge-suite-1.3.1-py310h7c61026_4.tar.bz2":{"build_number":4,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosapi","ros-humble-rosbridge-library","ros-humble-rosbridge-server","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_4","timestamp":1686904664457,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f447f2129704d191fc0f01312f43eaac","name":"ros-humble-rosbridge-suite","requires":[],"size":11664,"version":"1.3.1","binstar":{"package_id":"63964f982dd70620557d0eb4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cbe0cbab374753926512ebf7e23857288944278db0d8569174faab92633a8687"},"ros-humble-ros-ign-0.244.9-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz","ros-humble-ros-ign-bridge","ros-humble-ros-ign-gazebo","ros-humble-ros-ign-gazebo-demos","ros-humble-ros-ign-image","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670795591681,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3146d8d9debc0db951b344f26fe0a68c","name":"ros-humble-ros-ign","requires":[],"size":13883,"version":"0.244.9","binstar":{"package_id":"6396514b13f4c7e7c5c551df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c8fd9585d882e0988a0977e0cd3dfea049aa2a8713a5202632772a058e7b2fb"},"ros-humble-ros-ign-0.244.9-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-gz","ros-humble-ros-ign-bridge","ros-humble-ros-ign-gazebo","ros-humble-ros-ign-gazebo-demos","ros-humble-ros-ign-image","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675721627203,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"404daff1b033a441ae5df3665fb1c6e1","name":"ros-humble-ros-ign","requires":[],"size":13924,"version":"0.244.9","binstar":{"package_id":"6396514b13f4c7e7c5c551df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dc333c26a89765d4847fdbb388ef7051a44e36746a7a469e93009757bdb9d457"},"ros-humble-ur-calibration-2.2.6-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-ur-client-library","ros-humble-ur-robot-driver","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h7c61026_2","timestamp":1670795437568,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"028a3761d2c5fe3a4647aab09a9175f6","name":"ros-humble-ur-calibration","requires":[],"size":59612,"version":"2.2.6","binstar":{"package_id":"6396514b6a03c9fad2fbe559","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c86390a218cb8985b9cc7d6377461f7b0eb04d4c5cd13734c5df1d8ebe611fb"},"ros-humble-ur-calibration-2.2.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-ur-client-library","ros-humble-ur-robot-driver","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h7c61026_3","timestamp":1675721961533,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"291b5a9836cc05d28314d4a15af460bb","name":"ros-humble-ur-calibration","requires":[],"size":59872,"version":"2.2.6","binstar":{"package_id":"6396514b6a03c9fad2fbe559","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17b883091ed53225a60cc54fee48c3b58d23e7943c98a78a55b0ef88ccae7231"},"ros-humble-webots-ros2-2023.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-webots-ros2-control","ros-humble-webots-ros2-driver","ros-humble-webots-ros2-epuck","ros-humble-webots-ros2-importer","ros-humble-webots-ros2-mavic","ros-humble-webots-ros2-msgs","ros-humble-webots-ros2-tesla","ros-humble-webots-ros2-tiago","ros-humble-webots-ros2-turtlebot","ros-humble-webots-ros2-universal-robot","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670795510560,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f0b3c6428fb6385041aedd5876f20fe5","name":"ros-humble-webots-ros2","requires":[],"size":11495,"version":"2023.0.0","binstar":{"package_id":"6396514c6a03c9fad2fbe563","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e57fe49bde542391e0fea3d68d3cc0b65bd41789fd99c204714a1c28774e9a84"},"ros-humble-webots-ros2-2023.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-std-msgs","ros-humble-webots-ros2-control","ros-humble-webots-ros2-driver","ros-humble-webots-ros2-epuck","ros-humble-webots-ros2-importer","ros-humble-webots-ros2-mavic","ros-humble-webots-ros2-msgs","ros-humble-webots-ros2-tesla","ros-humble-webots-ros2-tiago","ros-humble-webots-ros2-turtlebot","ros-humble-webots-ros2-universal-robot","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675721544701,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"91b20d176165b0571f0233ec3fcd9978","name":"ros-humble-webots-ros2","requires":[],"size":10995,"version":"2023.0.1","binstar":{"package_id":"6396514c6a03c9fad2fbe563","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"daecec880bd3c6b91ee2a8f2db9b267be7f4c1401abb8958c21b2fbd6e231dfd"},"ros-humble-nav2-bringup-1.1.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-ros","ros-humble-nav2-common","ros-humble-navigation2","ros-humble-ros-workspace","ros-humble-slam-toolbox","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670795364861,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4f642acd13460f574afb4f2e768f3485","name":"ros-humble-nav2-bringup","requires":[],"size":46644,"version":"1.1.3","binstar":{"package_id":"639653576e0eca100b8bb871","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81e0786511bdb2e88e1e29e6bb0bdabd05de24772f373913a7084164452ef8ad"},"ros-humble-nav2-bringup-1.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch-ros","ros-humble-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":"py310h7c61026_3","timestamp":1675722933791,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"80a141364ab02e75e02ca4b1e5b13810","name":"ros-humble-nav2-bringup","requires":[],"size":46634,"version":"1.1.5","binstar":{"package_id":"639653576e0eca100b8bb871","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6ecd22175d6cbc244212ccde47fe5d4817c711a3a996c167881c3a083ff4c715"},"ros-humble-moveit-ros-visualization-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometric-shapes","ros-humble-interactive-markers","ros-humble-moveit-common","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-robot-interaction","ros-humble-moveit-ros-warehouse","ros-humble-object-recognition-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-tf2-eigen","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670795831809,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"04b3aabaa02308a97f80a7490e3c62c4","name":"ros-humble-moveit-ros-visualization","requires":[],"size":1145416,"version":"2.5.4","binstar":{"package_id":"639653594f66fd116f897f9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"43cb3a29c0bb675f769285a78140cab3839584010d8ee41930ad38a957c53143"},"ros-humble-moveit-ros-visualization-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-geometric-shapes","ros-humble-interactive-markers","ros-humble-moveit-common","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-robot-interaction","ros-humble-moveit-ros-warehouse","ros-humble-object-recognition-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-tf2-eigen","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675723385871,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"618b56f9966aad1d5753050289844e9e","name":"ros-humble-moveit-ros-visualization","requires":[],"size":1145943,"version":"2.5.4","binstar":{"package_id":"639653594f66fd116f897f9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"742593abe771b3b1860bb4d89c73a58a02644b722be33f260131c9f36027a9d5"},"ros-humble-moveit-resources-prbt-pg70-support-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","ros-humble-moveit-resources-prbt-moveit-config","ros-humble-moveit-resources-prbt-support","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670795903510,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e1116fee33306f2ca08a1d0595dfe9c7","name":"ros-humble-moveit-resources-prbt-pg70-support","requires":[],"size":226807,"version":"2.5.4","binstar":{"package_id":"6396535b6d07f25db9fb1013","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3a9361ba85a96b0f6b04f75f09e0d2b76f1f99284a07570c0e38b8865272391"},"ros-humble-moveit-resources-prbt-pg70-support-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-resources-prbt-ikfast-manipulator-plugin","ros-humble-moveit-resources-prbt-moveit-config","ros-humble-moveit-resources-prbt-support","ros-humble-ros-workspace","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675723422365,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"16f22c3a8657b08296e551346aab6f9b","name":"ros-humble-moveit-resources-prbt-pg70-support","requires":[],"size":229799,"version":"2.5.4","binstar":{"package_id":"6396535b6d07f25db9fb1013","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b99d28608c2a7feb5bd5d3e104c735a51539c8e50c90b1949aabbc55e0024b15"},"ros-humble-moveit-servo-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-geometry-msgs","ros-humble-gripper-controllers","ros-humble-joint-state-broadcaster","ros-humble-joint-trajectory-controller","ros-humble-joy","ros-humble-launch-param-builder","ros-humble-moveit-common","ros-humble-moveit-configs-utils","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-planning-interface","ros-humble-pluginlib","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670796112957,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0bb2b6a53813389662d8aa2a24568d66","name":"ros-humble-moveit-servo","requires":[],"size":1149972,"version":"2.5.4","binstar":{"package_id":"6396535d358aafdd3d4c2a74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d25816635fd19e90cde01ddea95eb951a91e5e91e94bfbf6bfa4c5db1396861"},"ros-humble-moveit-servo-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-control-msgs","ros-humble-control-toolbox","ros-humble-geometry-msgs","ros-humble-gripper-controllers","ros-humble-joint-state-broadcaster","ros-humble-joint-trajectory-controller","ros-humble-joy","ros-humble-launch-param-builder","ros-humble-moveit-common","ros-humble-moveit-configs-utils","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-planning-interface","ros-humble-pluginlib","ros-humble-robot-state-publisher","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-std-msgs","ros-humble-std-srvs","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675723634601,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3b409cdabb9cbd4182472bac1b576448","name":"ros-humble-moveit-servo","requires":[],"size":1144923,"version":"2.5.4","binstar":{"package_id":"6396535d358aafdd3d4c2a74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"28e74eb0a8363c0f1218ee4157325d2da9b6d82f439417ca004f11247f15185b"},"ros-humble-rosbag2-0.15.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2bag","ros-humble-rosbag2-compression","ros-humble-rosbag2-compression-zstd","ros-humble-rosbag2-cpp","ros-humble-rosbag2-py","ros-humble-rosbag2-storage","ros-humble-rosbag2-storage-default-plugins","ros-humble-rosbag2-transport","ros-humble-shared-queues-vendor","ros-humble-sqlite3-vendor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670795872782,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"06602e51f50427a836d427e7fcbe5a4f","name":"ros-humble-rosbag2","requires":[],"size":11576,"version":"0.15.3","binstar":{"package_id":"6396535f46f81babcaeaddb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d90182d2e085aeede90ea512b84e83386e4f0493de4f96a4c260f68ccb6cbe5e"},"ros-humble-rosbag2-0.15.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ros2bag","ros-humble-rosbag2-compression","ros-humble-rosbag2-compression-zstd","ros-humble-rosbag2-cpp","ros-humble-rosbag2-py","ros-humble-rosbag2-storage","ros-humble-rosbag2-storage-default-plugins","ros-humble-rosbag2-transport","ros-humble-shared-queues-vendor","ros-humble-sqlite3-vendor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675721747302,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1a1577b0829e674b6905fd96f8978d5f","name":"ros-humble-rosbag2","requires":[],"size":11600,"version":"0.15.4","binstar":{"package_id":"6396535f46f81babcaeaddb9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc66745abf32c30c33d3d6db2842fc15f1550dbb4f8d8b9c6305fc3d28c03ad3"},"ros-humble-turtlebot3-navigation2-2.1.5-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav2-bringup","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670796424035,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1e64687f0367802a5eea21ea81971426","name":"ros-humble-turtlebot3-navigation2","requires":[],"size":23763,"version":"2.1.5","binstar":{"package_id":"639654cca2b7121008ec4d04","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52087a6560238693ff5b10dc77ac29be26eacc84dd090dcacbc6b7af36ae4730"},"ros-humble-turtlebot3-navigation2-2.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-nav2-bringup","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675724364430,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"18a2697f7c51783dacee5e217bb37483","name":"ros-humble-turtlebot3-navigation2","requires":[],"size":23724,"version":"2.1.5","binstar":{"package_id":"639654cca2b7121008ec4d04","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"295f5a1fd9e3102856722cd7c0fb9a9fe0a678b9904c9d7f4b00fafbfdef401d"},"ros-humble-moveit-ros-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-ros-benchmarks","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-robot-interaction","ros-humble-moveit-ros-visualization","ros-humble-moveit-ros-warehouse","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670796489550,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6c08d93bfa7889f39494ec838a8e04f2","name":"ros-humble-moveit-ros","requires":[],"size":13599,"version":"2.5.4","binstar":{"package_id":"639654cdd9a997aae7a16e15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"44b74a38507ac0e4e222d2de0373f0b335a8f5c66a8115dd35009a647e00983d"},"ros-humble-moveit-ros-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-ros-benchmarks","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-robot-interaction","ros-humble-moveit-ros-visualization","ros-humble-moveit-ros-warehouse","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675724393130,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bf03d6602fcddf4ab0f19ceedaa9933a","name":"ros-humble-moveit-ros","requires":[],"size":13687,"version":"2.5.4","binstar":{"package_id":"639654cdd9a997aae7a16e15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2af07ab5b59a79bbbcd9b04888b4b2830813df0ad292be05c3b3a10b68240d07"},"ros-humble-rqt-bag-plugins-1.1.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pillow","pycairo","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-rqt-bag","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-plot","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670796574338,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"921a661439e80ad11d795ebf40c1059b","name":"ros-humble-rqt-bag-plugins","requires":[],"size":47042,"version":"1.1.4","binstar":{"package_id":"6396563a54e9ace85488c8ca","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2a25fb4b9a49958a6a6c966779db7c6e3dbca414685d57227d03770bb782d73"},"ros-humble-rqt-bag-plugins-1.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pillow","pycairo","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-rqt-bag","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-plot","ros-humble-sensor-msgs","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675722571584,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b65f1c10969d9d115864d272097f7a98","name":"ros-humble-rqt-bag-plugins","requires":[],"size":46102,"version":"1.1.4","binstar":{"package_id":"6396563a54e9ace85488c8ca","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62e218b4068fac58373b5384118e066b577ec0e7c2931325db96aa8a9baf9811"},"ros-humble-pilz-industrial-motion-planner-2.5.4-py310ha259436_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-orocos-kdl-vendor","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-eigen-kdl","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-ros","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310ha259436_2","timestamp":1670796772800,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"607b4b468d99b64f6e278730a9274f19","name":"ros-humble-pilz-industrial-motion-planner","requires":[],"size":506923,"version":"2.5.4","binstar":{"package_id":"6396563bd9a997aae7a1a51b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"95f2a7044b7695cc3c3fbb0927a980f4b258ab913d85376e56e8aaf3d4a9faca"},"ros-humble-pilz-industrial-motion-planner-2.5.4-py310ha259436_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-msgs","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-orocos-kdl-vendor","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-eigen-kdl","ros-humble-tf2-geometry-msgs","ros-humble-tf2-kdl","ros-humble-tf2-ros","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310ha259436_3","timestamp":1675724253932,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ade995ef82091c5daf332578b1bc1c20","name":"ros-humble-pilz-industrial-motion-planner","requires":[],"size":507626,"version":"2.5.4","binstar":{"package_id":"6396563bd9a997aae7a1a51b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d705723418208ddd1dbe4e0442a21bd8dfa3c6bd493f6f4eb259ced6cbc698f"},"ros-humble-ur-moveit-config-2.2.6-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch","ros-humble-launch-ros","ros-humble-moveit-kinematics","ros-humble-moveit-planners-ompl","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-visualization","ros-humble-moveit-servo","ros-humble-moveit-simple-controller-manager","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-ur-description","ros-humble-urdf","ros-humble-warehouse-ros-sqlite","ros-humble-xacro","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670796855251,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"552f79c5d888dff72d1a2e58e7141a74","name":"ros-humble-ur-moveit-config","requires":[],"size":32822,"version":"2.2.6","binstar":{"package_id":"6396563c358aafdd3d4cc4e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80f69c6e4a146ec58c01e67ef647fa822cd5a10f72f07372c31d44cf31269009"},"ros-humble-ur-moveit-config-2.2.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-launch","ros-humble-launch-ros","ros-humble-moveit-kinematics","ros-humble-moveit-planners-ompl","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-visualization","ros-humble-moveit-servo","ros-humble-moveit-simple-controller-manager","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rviz2","ros-humble-ur-description","ros-humble-urdf","ros-humble-warehouse-ros-sqlite","ros-humble-xacro","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675724299198,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e5c097c1abbaa307551b2516e29e8852","name":"ros-humble-ur-moveit-config","requires":[],"size":32887,"version":"2.2.6","binstar":{"package_id":"6396563c358aafdd3d4cc4e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f8f1b1ce444203d18e4a52223b9a1ce9389c3e9681fdd6d071d35118fd4b9005"},"ros-humble-ros-base-0.10.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry2","ros-humble-kdl-parser","ros-humble-robot-state-publisher","ros-humble-ros-core","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-urdf","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670796815111,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e65c32a637c4e19391b30f881e65203a","name":"ros-humble-ros-base","requires":[],"size":12625,"version":"0.10.0","binstar":{"package_id":"6396563ed9a997aae7a1a53c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"46062e10dba4fed19b6eea7fec6db3e4259fd09bf6a062fdd97887d6382d6704"},"ros-humble-ros-base-0.10.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry2","ros-humble-kdl-parser","ros-humble-robot-state-publisher","ros-humble-ros-core","ros-humble-ros-workspace","ros-humble-rosbag2","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675722623245,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dd4e818775a604b35f0ed7350fd26e5b","name":"ros-humble-ros-base","requires":[],"size":12640,"version":"0.10.0","binstar":{"package_id":"6396563ed9a997aae7a1a53c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"803cf04909bde5a07586e8c7e16f702679ad374c6d8a06ba91e1c0e2ee2efa0e"},"ros-humble-moveit-setup-framework-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-visualization","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-rendering","ros-humble-srdfdom","ros-humble-urdf","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670796524858,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"366b61030d34c34db531ab053e250d27","name":"ros-humble-moveit-setup-framework","requires":[],"size":271727,"version":"2.5.4","binstar":{"package_id":"6396563fbbbc2b1e96c0e5fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a02b434c746ad4dea6552ae468aa5c736ffc4ca46873099c1d6c537da8212e55"},"ros-humble-moveit-setup-framework-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-visualization","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-rendering","ros-humble-srdfdom","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675724060242,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"adb5a57138855057541f1ac0e30729d9","name":"ros-humble-moveit-setup-framework","requires":[],"size":271429,"version":"2.5.4","binstar":{"package_id":"6396563fbbbc2b1e96c0e5fa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d39658c05715aa9057624e69c23c5fea15466d1d4b5f2916479b2fbf9cb63b8f"},"ros-humble-ur-2.2.6-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ur-calibration","ros-humble-ur-controllers","ros-humble-ur-dashboard-msgs","ros-humble-ur-moveit-config","ros-humble-ur-robot-driver","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670797385252,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ecec61de1c3448a8348c372e7e63bc35","name":"ros-humble-ur","requires":[],"size":13858,"version":"2.2.6","binstar":{"package_id":"63965889a2b7121008ee6d4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2e543d8f40803a64578c847df2ceed3d34786efb7231b010cae54d22aaf4b6c7"},"ros-humble-ur-2.2.6-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-ur-calibration","ros-humble-ur-controllers","ros-humble-ur-dashboard-msgs","ros-humble-ur-moveit-config","ros-humble-ur-robot-driver","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675724682537,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3b29bb5c596a7c6d4dadc05c41b09647","name":"ros-humble-ur","requires":[],"size":13953,"version":"2.2.6","binstar":{"package_id":"63965889a2b7121008ee6d4b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22d21480d87fde9edfb603e95ecbaa3abb87af49a7263999a38b9a03580758e4"},"ros-humble-simulation-0.10.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-base","ros-humble-ros-ign-bridge","ros-humble-ros-ign-gazebo","ros-humble-ros-ign-image","ros-humble-ros-ign-interfaces","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670797265450,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1061cc9d0c5f261102bf11831b25b381","name":"ros-humble-simulation","requires":[],"size":13846,"version":"0.10.0","binstar":{"package_id":"6396588b114c465c985809c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4224443c3f18c249744ee6a20fc61695f852e6823c445919ecbc933f226b9e72"},"ros-humble-simulation-0.10.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-base","ros-humble-ros-ign-bridge","ros-humble-ros-ign-gazebo","ros-humble-ros-ign-image","ros-humble-ros-ign-interfaces","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675722967564,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"59b063fe526f5f90ac30d3eb548f215e","name":"ros-humble-simulation","requires":[],"size":13900,"version":"0.10.0","binstar":{"package_id":"6396588b114c465c985809c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c6c0857a6acbf15d93df7535ce7231d8351cc6cf2aa64b517c4731e7c5d54907"},"ros-humble-perception-0.10.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-common","ros-humble-image-pipeline","ros-humble-image-transport-plugins","ros-humble-laser-filters","ros-humble-laser-geometry","ros-humble-perception-pcl","ros-humble-ros-base","ros-humble-ros-workspace","ros-humble-vision-opencv","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670797327078,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e9af5788ecb330e29f767e8d9ff3f34f","name":"ros-humble-perception","requires":[],"size":14015,"version":"0.10.0","binstar":{"package_id":"6396588c46f81babcaed0274","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d9f03ec07161393afe759c0a649b1961da5b438f2ae994e99243abf9b918ff6"},"ros-humble-perception-0.10.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-image-common","ros-humble-image-pipeline","ros-humble-image-transport-plugins","ros-humble-laser-filters","ros-humble-laser-geometry","ros-humble-perception-pcl","ros-humble-ros-base","ros-humble-ros-workspace","ros-humble-vision-opencv","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675723026498,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"98115889b8ca5dedc864196e4b1aabbf","name":"ros-humble-perception","requires":[],"size":14028,"version":"0.10.0","binstar":{"package_id":"6396588c46f81babcaed0274","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f33d7a61c28832838c94fecfa43adc6d6a746ca5d36b05733d3bace69505b603"},"ros-humble-moveit-planners-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-planners-ompl","ros-humble-pilz-industrial-motion-planner","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670797148402,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"af33be47e73245580e8e72e671f2103d","name":"ros-humble-moveit-planners","requires":[],"size":12429,"version":"2.5.4","binstar":{"package_id":"6396588e46f81babcaed029a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2412d0ccc3eadf026b048c19bb2f557d431db5a75f6b8b5d34b19d43a500f2a"},"ros-humble-moveit-planners-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-planners-ompl","ros-humble-pilz-industrial-motion-planner","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675725352056,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c9d977f2ac7842c9bc034be8941bd68d","name":"ros-humble-moveit-planners","requires":[],"size":12503,"version":"2.5.4","binstar":{"package_id":"6396588e46f81babcaed029a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bb8803fd36cc3ce30a406c579e4cbde858645c89e2b3d09825cc601f62bfe31e"},"ros-humble-turtlebot3-2.1.5-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670797445660,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"53857cd811c9470a69c131df15d31103","name":"ros-humble-turtlebot3","requires":[],"size":14259,"version":"2.1.5","binstar":{"package_id":"6396588fa2b7121008ee6edf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"93fb032264eb0d6d5de9b0c983cffc0e12ec22a888dc03d687a56d034f08bb7c"},"ros-humble-turtlebot3-2.1.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-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":"py310h7c61026_3","timestamp":1675724763386,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"543325154b6ed70829407c081dba1f3e","name":"ros-humble-turtlebot3","requires":[],"size":14220,"version":"2.1.5","binstar":{"package_id":"6396588fa2b7121008ee6edf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee5230ae97fd12b2dd1cc5032415e2238976833cf500ac5f449e356bccaa897e"},"ros-humble-rqt-common-plugins-1.2.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rqt-action","ros-humble-rqt-bag","ros-humble-rqt-bag-plugins","ros-humble-rqt-console","ros-humble-rqt-graph","ros-humble-rqt-image-view","ros-humble-rqt-msg","ros-humble-rqt-plot","ros-humble-rqt-publisher","ros-humble-rqt-py-common","ros-humble-rqt-py-console","ros-humble-rqt-reconfigure","ros-humble-rqt-service-caller","ros-humble-rqt-shell","ros-humble-rqt-srv","ros-humble-rqt-topic","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670798049926,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8673f51b3960b73e8d23cae16d473b10","name":"ros-humble-rqt-common-plugins","requires":[],"size":13634,"version":"1.2.0","binstar":{"package_id":"63965ae4ead2dcc8c264304a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"098210e5c9a0224ef1095355574f40ee7f85ddbc938ab8a52c3be6676acf595f"},"ros-humble-rqt-common-plugins-1.2.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rqt-action","ros-humble-rqt-bag","ros-humble-rqt-bag-plugins","ros-humble-rqt-console","ros-humble-rqt-graph","ros-humble-rqt-image-view","ros-humble-rqt-msg","ros-humble-rqt-plot","ros-humble-rqt-publisher","ros-humble-rqt-py-common","ros-humble-rqt-py-console","ros-humble-rqt-reconfigure","ros-humble-rqt-service-caller","ros-humble-rqt-shell","ros-humble-rqt-srv","ros-humble-rqt-topic","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675723683472,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8e03d4cdccd2991d7a3c9ddbcc5d5907","name":"ros-humble-rqt-common-plugins","requires":[],"size":13659,"version":"1.2.0","binstar":{"package_id":"63965ae4ead2dcc8c264304a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5b551cee9ea5ca0ec3b8f5503e682b23967e8ca7fa8b4304d27b4b1a0f049fe5"},"ros-humble-moveit-setup-controllers-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670797529016,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4e1a9f7b38f4cb9d2dd375f397884c2d","name":"ros-humble-moveit-setup-controllers","requires":[],"size":243767,"version":"2.5.4","binstar":{"package_id":"63965ae6a2b7121008efcbd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"791d93321a6e351af0dd62111ef36d5e3aada2f544c0a8f5dd30188778f30e1e"},"ros-humble-moveit-setup-controllers-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675724955182,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e2cf8b6196dc6bb2845eb647a18429cb","name":"ros-humble-moveit-setup-controllers","requires":[],"size":243945,"version":"2.5.4","binstar":{"package_id":"63965ae6a2b7121008efcbd1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04b5bff331b3f84a5cbbffe5a209cda8b0898a36753f9beb77b6f1ecccc063dc"},"ros-humble-moveit-setup-app-plugins-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-ros-visualization","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670797655668,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"265804591eb89f98715bf55830ba7141","name":"ros-humble-moveit-setup-app-plugins","requires":[],"size":118390,"version":"2.5.4","binstar":{"package_id":"63965ae7d9a997aae7a31988","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"28497fcb155259ca83cfead4daef68e93c5cbf6b695b555f76d82317e2335148"},"ros-humble-moveit-setup-app-plugins-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-ros-visualization","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675725061526,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e29c67d461884ecf6d310de78ae2843e","name":"ros-humble-moveit-setup-app-plugins","requires":[],"size":118486,"version":"2.5.4","binstar":{"package_id":"63965ae7d9a997aae7a31988","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c6286bbeef884ebdbe66467da8eaa3bb38f558f3e51670539e9a9bbd1cf7fadb"},"ros-humble-moveit-setup-core-plugins-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-ros-visualization","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-srdfdom","ros-humble-urdf","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670797311191,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8a133521ec7f20434fa6fcd354b27faf","name":"ros-humble-moveit-setup-core-plugins","requires":[],"size":87924,"version":"2.5.4","binstar":{"package_id":"63965ae9ed6d66bf8f51262a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"85ec479dd30e6b817a382b1ab43166221e66f65110ec1267e99130da04b335fa"},"ros-humble-moveit-setup-core-plugins-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-moveit-ros-visualization","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-srdfdom","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675724776271,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9bbef8ffaad3ddc0acbfb1a7c3cd635b","name":"ros-humble-moveit-setup-core-plugins","requires":[],"size":88988,"version":"2.5.4","binstar":{"package_id":"63965ae9ed6d66bf8f51262a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e833f09c946aa70d8dab41937b6a22573be01340ceabf4f19ddd37fc185060ee"},"ros-humble-moveit-setup-srdf-plugins-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670797973324,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"20f45dbad2e3c3230c5290dbe48c3d4c","name":"ros-humble-moveit-setup-srdf-plugins","requires":[],"size":461585,"version":"2.5.4","binstar":{"package_id":"63965aeb6d07f25db9fba7a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10db45a2e649dcf88b42a11996815527a952feacde32b7e65da6b846da65c6d9"},"ros-humble-moveit-setup-srdf-plugins-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-setup-framework","ros-humble-pluginlib","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675725311372,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"583c590d0dc5db42a1b5718c89385b78","name":"ros-humble-moveit-setup-srdf-plugins","requires":[],"size":452445,"version":"2.5.4","binstar":{"package_id":"63965aeb6d07f25db9fba7a4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6d1b89a5e8895273a0a7f0031d2c1eecb3c42d6d0f79b87af31874669df659eb"},"ros-humble-desktop-0.10.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-tutorials-cpp","ros-humble-action-tutorials-interfaces","ros-humble-action-tutorials-py","ros-humble-angles","ros-humble-composition","ros-humble-demo-nodes-cpp","ros-humble-demo-nodes-cpp-native","ros-humble-demo-nodes-py","ros-humble-depthimage-to-laserscan","ros-humble-dummy-map-server","ros-humble-dummy-robot-bringup","ros-humble-dummy-sensors","ros-humble-examples-rclcpp-minimal-action-client","ros-humble-examples-rclcpp-minimal-action-server","ros-humble-examples-rclcpp-minimal-client","ros-humble-examples-rclcpp-minimal-composition","ros-humble-examples-rclcpp-minimal-publisher","ros-humble-examples-rclcpp-minimal-service","ros-humble-examples-rclcpp-minimal-subscriber","ros-humble-examples-rclcpp-minimal-timer","ros-humble-examples-rclcpp-multithreaded-executor","ros-humble-examples-rclpy-executors","ros-humble-examples-rclpy-minimal-action-client","ros-humble-examples-rclpy-minimal-action-server","ros-humble-examples-rclpy-minimal-client","ros-humble-examples-rclpy-minimal-publisher","ros-humble-examples-rclpy-minimal-service","ros-humble-examples-rclpy-minimal-subscriber","ros-humble-image-tools","ros-humble-intra-process-demo","ros-humble-joy","ros-humble-lifecycle","ros-humble-logging-demo","ros-humble-pcl-conversions","ros-humble-pendulum-control","ros-humble-pendulum-msgs","ros-humble-quality-of-service-demo-cpp","ros-humble-quality-of-service-demo-py","ros-humble-ros-base","ros-humble-ros-workspace","ros-humble-rqt-common-plugins","ros-humble-rviz-default-plugins","ros-humble-rviz2","ros-humble-teleop-twist-joy","ros-humble-teleop-twist-keyboard","ros-humble-tlsf","ros-humble-tlsf-cpp","ros-humble-topic-monitor","ros-humble-turtlesim","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670798576876,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"147b3387a9738317d58d8dbd0a6935c5","name":"ros-humble-desktop","requires":[],"size":15538,"version":"0.10.0","binstar":{"package_id":"63965d4646f81babcaeedbeb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c69562de0dcc10b2306349b067173285cff4db2bfcffafa36af599c84ab6b7d"},"ros-humble-desktop-0.10.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-action-tutorials-cpp","ros-humble-action-tutorials-interfaces","ros-humble-action-tutorials-py","ros-humble-angles","ros-humble-composition","ros-humble-demo-nodes-cpp","ros-humble-demo-nodes-cpp-native","ros-humble-demo-nodes-py","ros-humble-depthimage-to-laserscan","ros-humble-dummy-map-server","ros-humble-dummy-robot-bringup","ros-humble-dummy-sensors","ros-humble-examples-rclcpp-minimal-action-client","ros-humble-examples-rclcpp-minimal-action-server","ros-humble-examples-rclcpp-minimal-client","ros-humble-examples-rclcpp-minimal-composition","ros-humble-examples-rclcpp-minimal-publisher","ros-humble-examples-rclcpp-minimal-service","ros-humble-examples-rclcpp-minimal-subscriber","ros-humble-examples-rclcpp-minimal-timer","ros-humble-examples-rclcpp-multithreaded-executor","ros-humble-examples-rclpy-executors","ros-humble-examples-rclpy-minimal-action-client","ros-humble-examples-rclpy-minimal-action-server","ros-humble-examples-rclpy-minimal-client","ros-humble-examples-rclpy-minimal-publisher","ros-humble-examples-rclpy-minimal-service","ros-humble-examples-rclpy-minimal-subscriber","ros-humble-image-tools","ros-humble-intra-process-demo","ros-humble-joy","ros-humble-lifecycle","ros-humble-logging-demo","ros-humble-pcl-conversions","ros-humble-pendulum-control","ros-humble-pendulum-msgs","ros-humble-quality-of-service-demo-cpp","ros-humble-quality-of-service-demo-py","ros-humble-ros-base","ros-humble-ros-workspace","ros-humble-rqt-common-plugins","ros-humble-rviz-default-plugins","ros-humble-rviz2","ros-humble-teleop-twist-joy","ros-humble-teleop-twist-keyboard","ros-humble-tlsf","ros-humble-tlsf-cpp","ros-humble-topic-monitor","ros-humble-turtlesim","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675724011345,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6233f4e0fb2025100e0057c1c49b6127","name":"ros-humble-desktop","requires":[],"size":15561,"version":"0.10.0","binstar":{"package_id":"63965d4646f81babcaeedbeb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"89831245ea94b457e8f8acba1b6389311e118eb5336a989003338b3255123382"},"ros-humble-desktop-full-0.10.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-desktop","ros-humble-perception","ros-humble-ros-ign-gazebo-demos","ros-humble-ros-workspace","ros-humble-simulation","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670798659548,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5e184535b1230052f814dd0669e7f27f","name":"ros-humble-desktop-full","requires":[],"size":15296,"version":"0.10.0","binstar":{"package_id":"63965d46bbbc2b1e96c2cba2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4dce4655be10587adeb4ba0b6f931e57fc11449e6b9faa983bda416abe51c3d"},"ros-humble-desktop-full-0.10.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-desktop","ros-humble-perception","ros-humble-ros-ign-gazebo-demos","ros-humble-ros-workspace","ros-humble-simulation","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675724856303,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3f02612311d1acc5f5f925a6df88ee0f","name":"ros-humble-desktop-full","requires":[],"size":15417,"version":"0.10.0","binstar":{"package_id":"63965d46bbbc2b1e96c2cba2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"277ef1d8f6665acdb084d0f14533449121e72a2f53d4286bd194ca887344e22c"},"ros-humble-moveit-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-moveit-planners","ros-humble-moveit-plugins","ros-humble-moveit-ros","ros-humble-moveit-setup-assistant","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670798609068,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3c3c91a5cce2a81b499befcb9742d672","name":"ros-humble-moveit","requires":[],"size":13966,"version":"2.5.4","binstar":{"package_id":"63965d474fd2d87ac8f8be4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5870db41502d7bf574c1b682240fc405274212707db0f1d0d33e6360a0891a78"},"ros-humble-moveit-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-moveit-planners","ros-humble-moveit-plugins","ros-humble-moveit-ros","ros-humble-moveit-setup-assistant","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675725821780,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7f043320893d7b56245c84e8656bac63","name":"ros-humble-moveit","requires":[],"size":14034,"version":"2.5.4","binstar":{"package_id":"63965d474fd2d87ac8f8be4f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f19bba955d0edfdda228c51c518d85b217d5f3bc65347fadde9605f71ebbf90b"},"ros-humble-moveit-setup-assistant-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-moveit-setup-app-plugins","ros-humble-moveit-setup-controllers","ros-humble-moveit-setup-core-plugins","ros-humble-moveit-setup-framework","ros-humble-moveit-setup-srdf-plugins","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670798456888,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3d28d5abb14299191bb6c6ce4b0be71b","name":"ros-humble-moveit-setup-assistant","requires":[],"size":403320,"version":"2.5.4","binstar":{"package_id":"63965d4846f81babcaeedc4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"25ec189f9a90f1638ee146177f68abc0ffdd6ff1441dde594ad79ae22a44d49e"},"ros-humble-moveit-setup-assistant-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-cpp","ros-humble-moveit-setup-app-plugins","ros-humble-moveit-setup-controllers","ros-humble-moveit-setup-core-plugins","ros-humble-moveit-setup-framework","ros-humble-moveit-setup-srdf-plugins","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675725738698,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7b2fda69c033c23d11056af7d741d65d","name":"ros-humble-moveit-setup-assistant","requires":[],"size":408442,"version":"2.5.4","binstar":{"package_id":"63965d4846f81babcaeedc4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8cd2324620f8a71032d1cc8b02ffd5d4fa7ca8c79d1bd83d6c11ebf1ef8c873"},"ros-humble-rqt-robot-steering-1.0.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-geometry-msgs","ros-humble-python-qt-binding","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":"py310h7c61026_2","timestamp":1670805102634,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3e87a8766c74969c7709064aabbada50","name":"ros-humble-rqt-robot-steering","requires":[],"size":22742,"version":"1.0.0","binstar":{"package_id":"639676beead2dcc8c26cb980","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0bc279d1bd4d26f82e540c26ccf555c3f5338046522e5279faa0fe8b1bb3b45"},"ros-humble-rqt-robot-steering-1.0.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-python","ros-humble-geometry-msgs","ros-humble-python-qt-binding","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":"py310h7c61026_3","timestamp":1675692549871,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"503b4b425aec55cecf23162c284f012c","name":"ros-humble-rqt-robot-steering","requires":[],"size":22099,"version":"1.0.0","binstar":{"package_id":"639676beead2dcc8c26cb980","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ba1f450a9dc61a357383a2c10657784d64237a245974cdfb90b9338eeae67628"},"ros-humble-moveit-ros-perception-2.5.4-py310h6f98279_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["_openmp_mutex >=4.5","freeglut >=3.2.2,<4.0a0","glew >=2.1.0,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libgomp","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","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-moveit-ros-planning","ros-humble-object-recognition-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h6f98279_2","timestamp":1670805057739,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"02fbe98f9689394dc52f90824cc219e9","name":"ros-humble-moveit-ros-perception","requires":[],"size":504745,"version":"2.5.4","binstar":{"package_id":"639676bf114c465c985b21c8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80b936cd59fcddac62d0266c1512047a92efb643009a7a9f135671471bd9ff37"},"ros-humble-moveit-ros-perception-2.5.4-py310h6f98279_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["_openmp_mutex >=4.5","freeglut >=3.2.2,<4.0a0","glew >=2.1.0,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libgomp","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-cv-bridge","ros-humble-image-transport","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-moveit-ros-planning","ros-humble-object-recognition-msgs","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-tf2-ros","ros-humble-urdf","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h6f98279_3","timestamp":1675720792678,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cce528a2d8451a73d0dd614b5ed95e16","name":"ros-humble-moveit-ros-perception","requires":[],"size":503836,"version":"2.5.4","binstar":{"package_id":"639676bf114c465c985b21c8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d8057d067362559a0582bd6a44d5d898af7945f028ca18987a7263847f745db"},"ros-humble-rqt-1.1.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-cpp","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670805176001,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a315c248a5a0fa16129378a16f60ae98","name":"ros-humble-rqt","requires":[],"size":9220,"version":"1.1.4","binstar":{"package_id":"639676c1bbbc2b1e96c88390","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aa55000575ad42b50fec89ea6860bb40b240c6142fd9f93551fb9106bb3ea330"},"ros-humble-rqt-1.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-cpp","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692576919,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9a8a5ad97874a689bbd73e6718e43333","name":"ros-humble-rqt","requires":[],"size":8791,"version":"1.1.4","binstar":{"package_id":"639676c1bbbc2b1e96c88390","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4697f18599bd86cdb2a1011935202c6cca403f81ed7fe286f1ffabd41db531d0"},"ros-humble-rqt-moveit-1.0.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros-humble-rqt-topic","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670805141850,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cbd7d1113edc5c80675ccce2202351d8","name":"ros-humble-rqt-moveit","requires":[],"size":28523,"version":"1.0.1","binstar":{"package_id":"639676c32b3749bdb86d0f02","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d1a6ce5244ac6944e44a6f56f2a873c6a0d150131c69cad0ffef526f8151e79"},"ros-humble-rqt-moveit-1.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-python-qt-binding","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-py-common","ros-humble-rqt-topic","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693274484,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"43b8f0d0d7f6d67142fad912de0f59e6","name":"ros-humble-rqt-moveit","requires":[],"size":27792,"version":"1.0.1","binstar":{"package_id":"639676c32b3749bdb86d0f02","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77616441304f3b442c9cb85b3f67a68e94a23e8cdcf52ea6bd33c5e642f12a34"},"ros-humble-bond-core-3.0.2-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-bond","ros-humble-bondcpp","ros-humble-ros-workspace","ros-humble-smclib","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670805209027,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"923096abba5433146c62811661beb91e","name":"ros-humble-bond-core","requires":[],"size":11069,"version":"3.0.2","binstar":{"package_id":"639676c4bbbc2b1e96c88446","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f678524204d972a7c010d63ef0a4ec6daf4065ccb1ea959b7f1c22a0afba5f1"},"ros-humble-bond-core-3.0.2-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-bond","ros-humble-bondcpp","ros-humble-ros-workspace","ros-humble-smclib","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675692603849,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d2e18d446fe6fcc08f6c61b434fa4388","name":"ros-humble-bond-core","requires":[],"size":11048,"version":"3.0.2","binstar":{"package_id":"639676c4bbbc2b1e96c88446","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"022c2686553c6109cbc04688b74b65ebeff27b51aacf9f094e72a4cc4936ca70"},"ros-humble-moveit-runtime-2.5.4-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-moveit-planners","ros-humble-moveit-plugins","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-perception","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-warehouse","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670806227671,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"42a34861c580c5177fe3707311e1ec43","name":"ros-humble-moveit-runtime","requires":[],"size":13425,"version":"2.5.4","binstar":{"package_id":"63967ad6a2b7121008fa2738","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fb0b3a2b736d73c3e0edb109da225c276759cfce86ad5af46e9f4c8020240cf7"},"ros-humble-moveit-runtime-2.5.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-moveit-core","ros-humble-moveit-planners","ros-humble-moveit-plugins","ros-humble-moveit-ros-move-group","ros-humble-moveit-ros-perception","ros-humble-moveit-ros-planning","ros-humble-moveit-ros-planning-interface","ros-humble-moveit-ros-warehouse","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675725791608,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5290af7a78bca61f1d38fdf28484cb3f","name":"ros-humble-moveit-runtime","requires":[],"size":13532,"version":"2.5.4","binstar":{"package_id":"63967ad6a2b7121008fa2738","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b09193a501eb1af8ca2b3ad9e2c819daac1b537015ee1b63d3f967e1d9580421"},"ros-humble-ros-image-to-qimage-0.2.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-cv-bridge","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670807323130,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c37897a529330def8bb06f3fcc0c2e14","name":"ros-humble-ros-image-to-qimage","requires":[],"size":20129,"version":"0.2.1","binstar":{"package_id":"63967fccead2dcc8c2702bf3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d890f05dc3df8818362596f731246ccfddfc77a9fc795d390d65af19e6889e8f"},"ros-humble-ros-image-to-qimage-0.2.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-cv-bridge","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675690384900,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0fb854f66fe97d499a5365c6dee64d09","name":"ros-humble-ros-image-to-qimage","requires":[],"size":20175,"version":"0.2.1","binstar":{"package_id":"63967fccead2dcc8c2702bf3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04161419902b747ed40f8730eafd7a5bcb3470e49c748c693badad8734e82563"},"ros-humble-rviz-visual-tools-4.1.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-python","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-interactive-markers","ros-humble-launch","ros-humble-launch-ros","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-rviz2","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-trajectory-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670807494438,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"945d1f04e7ea0069c2ec895d9cb3a0c4","name":"ros-humble-rviz-visual-tools","requires":[],"size":475074,"version":"4.1.3","binstar":{"package_id":"63967fcebbbc2b1e96cbd909","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d9bb5dd2c1ae72594f2c9fc10e55150e4dde065a1e9b2fa8d5c872b3f556b541"},"ros-humble-rviz-visual-tools-4.1.4-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-ament-index-python","ros-humble-eigen-stl-containers","ros-humble-eigen3-cmake-module","ros-humble-geometry-msgs","ros-humble-interactive-markers","ros-humble-launch","ros-humble-launch-ros","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-rviz-common","ros-humble-rviz-default-plugins","ros-humble-rviz-ogre-vendor","ros-humble-rviz-rendering","ros-humble-rviz2","ros-humble-sensor-msgs","ros-humble-shape-msgs","ros-humble-std-msgs","ros-humble-tf2","ros-humble-tf2-eigen","ros-humble-tf2-geometry-msgs","ros-humble-trajectory-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675719692490,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a469973e53e11514146c447c87428a13","name":"ros-humble-rviz-visual-tools","requires":[],"size":465219,"version":"4.1.4","binstar":{"package_id":"63967fcebbbc2b1e96cbd909","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a7e1b404545a5d177bf91a7688b0074d717e68106acce46f2e0c3ad8604b9be"},"ros-humble-rqt-robot-monitor-1.0.5-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-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","ros-humble-rqt-py-common","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","rospkg"],"build":"py310h7c61026_2","timestamp":1670807250130,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"68662e94b0c0483000ac38cdd1cc0226","name":"ros-humble-rqt-robot-monitor","requires":[],"size":54477,"version":"1.0.5","binstar":{"package_id":"63967fd02dd706205585f687","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1924d242d59560562e2ff09648534c0adec77054686cb38ee496eadccbcd49f3"},"ros-humble-rqt-robot-monitor-1.0.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-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","ros-humble-rqt-py-common","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","rospkg"],"build":"py310h7c61026_3","timestamp":1675692966285,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"93b46563b502a5ead6e317a91a29a559","name":"ros-humble-rqt-robot-monitor","requires":[],"size":53287,"version":"1.0.5","binstar":{"package_id":"63967fd02dd706205585f687","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2a83aae6d789a2c803abe9619d21c5522f93abb3fe0e6469c7a44f7369c456b4"},"ros-humble-rqt-image-overlay-layer-0.1.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670807205424,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6864d31e2e88e738e935ce926fab11f8","name":"ros-humble-rqt-image-overlay-layer","requires":[],"size":15554,"version":"0.1.3","binstar":{"package_id":"63967fd26a03c9fad209b7e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cef037c9b5bed8ffb2469e026a183ec3dc2c4019db1da548cb5ade481deab8f2"},"ros-humble-rqt-image-overlay-layer-0.1.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-message-filters","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-rcpputils","ros-humble-ros-workspace","ros-humble-rosidl-runtime-cpp","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675692774491,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0f0453ffd18f4a81db46903337876178","name":"ros-humble-rqt-image-overlay-layer","requires":[],"size":15679,"version":"0.1.3","binstar":{"package_id":"63967fd26a03c9fad209b7e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"56474223679c474adec3462bbcd77e9cdaf20618c0662ed0c6b29af2a3ee25cf"},"ros-humble-gazebo-ros-pkgs-3.7.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-gazebo-dev","ros-humble-gazebo-msgs","ros-humble-gazebo-plugins","ros-humble-gazebo-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670807131629,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"56d261d23c7738d8eab241fe77596ef7","name":"ros-humble-gazebo-ros-pkgs","requires":[],"size":13690,"version":"3.7.0","binstar":{"package_id":"63967fd44f66fd116f9dea7d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fda29ef6833d9eb765ca6ec66d9994903453fa2a8d178a69cdb65a5e87f38d91"},"ros-humble-gazebo-ros-pkgs-3.7.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-gazebo-dev","ros-humble-gazebo-msgs","ros-humble-gazebo-plugins","ros-humble-gazebo-ros","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675695589994,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a87f4e7458a14c52bc045b7cc65d29a8","name":"ros-humble-gazebo-ros-pkgs","requires":[],"size":13688,"version":"3.7.0","binstar":{"package_id":"63967fd44f66fd116f9dea7d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22d2c749cb7cff439fbde758e38bfa809586bf74dc26d815f95faccd3c47b4f7"},"ros-humble-turtlebot3-gazebo-2.2.5-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-gazebo-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.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670811940189,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2eb6c550f6aad2577ba8f92957af13ac","name":"ros-humble-turtlebot3-gazebo","requires":[],"size":253298,"version":"2.2.5","binstar":{"package_id":"6396923546bec18b890d6837","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ae206f479b8cc8af7502e5c06d8f7529737ddc97b51b2928ef623ed033ab3ae6"},"ros-humble-turtlebot3-gazebo-2.2.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-gazebo-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":"py310h7c61026_3","timestamp":1675719801014,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3fbadb29db4ab0d2f6ec02721a96de89","name":"ros-humble-turtlebot3-gazebo","requires":[],"size":251276,"version":"2.2.5","binstar":{"package_id":"6396923546bec18b890d6837","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"749eaf732c6f5573fa84cd0073d03f254dc2664f18d8bbf0f60d9b861df27beb"},"ros-humble-moveit-visual-tools-4.1.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-graph-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rviz-visual-tools","ros-humble-std-msgs","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670812208540,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0d89145f9d6d7bdd0268d4fcfea147b4","name":"ros-humble-moveit-visual-tools","requires":[],"size":398650,"version":"4.1.0","binstar":{"package_id":"63969237d9a997aae7b43e79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ed17726cca67ea327a41ebb70dd9e4d20e1a6494fa2dc01fba6a3e3beb9de3f"},"ros-humble-moveit-visual-tools-4.1.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geometry-msgs","ros-humble-graph-msgs","ros-humble-moveit-common","ros-humble-moveit-core","ros-humble-moveit-ros-planning","ros-humble-rclcpp","ros-humble-ros-workspace","ros-humble-rviz-visual-tools","ros-humble-std-msgs","ros-humble-tf2-eigen","ros-humble-tf2-ros","ros-humble-trajectory-msgs","ros-humble-visualization-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675720957220,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7cb8161ac50ebb631ed80ef62a780cdd","name":"ros-humble-moveit-visual-tools","requires":[],"size":409386,"version":"4.1.0","binstar":{"package_id":"63969237d9a997aae7b43e79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"edb42000ada6cdd928774b1071bb75f89548e18bef60f0d7870830011d67e643"},"ros-humble-rqt-robot-dashboard-0.6.1-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-robot-monitor","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670811976451,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c5c4464b8b5db7c36188d22316114ea5","name":"ros-humble-rqt-robot-dashboard","requires":[],"size":135524,"version":"0.6.1","binstar":{"package_id":"63969239a2b712100805b783","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f31ade3dc50da09784765a31ed5897a1adcd7f49f643f77ee1fb70e7921fb56"},"ros-humble-rqt-robot-dashboard-0.6.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-python-qt-binding","ros-humble-qt-gui","ros-humble-rclpy","ros-humble-ros-workspace","ros-humble-rqt-console","ros-humble-rqt-gui","ros-humble-rqt-gui-py","ros-humble-rqt-robot-monitor","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675693245058,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2bec27a6d1896ebe8b2985f20f3006ba","name":"ros-humble-rqt-robot-dashboard","requires":[],"size":134464,"version":"0.6.1","binstar":{"package_id":"63969239a2b712100805b783","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fcc9d2b45ea900cca223be54be6036e3e4f03012bcd73d596b131bc71dde6de3"},"ros-humble-rqt-image-overlay-0.1.3-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-image-transport","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-image-to-qimage","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-cpp","ros-humble-rqt-image-overlay-layer","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_2","timestamp":1670812078359,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"da85edfa31985575917f181a1d5d4618","name":"ros-humble-rqt-image-overlay","requires":[],"size":207232,"version":"0.1.3","binstar":{"package_id":"6396923a6a03c9fad211a71f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"16b29b6b5ff4ed6c914a83096bf65282eb4dfadeed665bb4d4cd69a2aacfe15c"},"ros-humble-rqt-image-overlay-0.1.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","qt-main >=5.15.6,<5.16.0a0","ros-humble-image-transport","ros-humble-pluginlib","ros-humble-rclcpp","ros-humble-ros-image-to-qimage","ros-humble-ros-workspace","ros-humble-rqt-gui","ros-humble-rqt-gui-cpp","ros-humble-rqt-image-overlay-layer","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","xorg-libx11","xorg-libxext"],"build":"py310h7c61026_3","timestamp":1675694214313,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4528fc4082f8b44187b0cf25d9cb8a4b","name":"ros-humble-rqt-image-overlay","requires":[],"size":207355,"version":"0.1.3","binstar":{"package_id":"6396923a6a03c9fad211a71f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4f97bba679443f9249caaae7ac23545376ec99e26a2ccbf09c8707dedfc509ad"},"ros-humble-turtlebot3-simulations-2.2.5-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-turtlebot3-fake-node","ros-humble-turtlebot3-gazebo","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670812553503,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e9174cc779f6489f3e28645da0825069","name":"ros-humble-turtlebot3-simulations","requires":[],"size":13720,"version":"2.2.5","binstar":{"package_id":"6396938cead2dcc8c277577e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fed5a8dfbf9559d22825ddbfc5d1e12b9783a861f9f18fd07f3c87c93f0e250f"},"ros-humble-turtlebot3-simulations-2.2.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-turtlebot3-fake-node","ros-humble-turtlebot3-gazebo","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675720852219,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"90876e750d8a69fa8841ab5a9ac2d60d","name":"ros-humble-turtlebot3-simulations","requires":[],"size":13727,"version":"2.2.5","binstar":{"package_id":"6396938cead2dcc8c277577e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b15e159c8e3342942a49b0601859a29811c89558d9cf4fd22737cb5ea5db1882"},"ros-humble-velodyne-driver-2.3.0-py310h996a126_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libpcap >=1.10.1,<1.11.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-diagnostic-updater","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-velodyne-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h996a126_2","timestamp":1670966893896,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3b6cc16c801f67049f973028c1dd14f1","name":"ros-humble-velodyne-driver","requires":[],"size":144732,"version":"2.3.0","binstar":{"package_id":"6398ee70d0e8c095e280389f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd55fff770c53c11a204f7ed58346fbe7b10fb2c0578f53720882ded8d697a7e"},"ros-humble-velodyne-driver-2.3.0-py310h996a126_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libpcap >=1.10.3,<1.11.0a0","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-diagnostic-msgs","ros-humble-diagnostic-updater","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-tf2-ros","ros-humble-velodyne-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h996a126_3","timestamp":1675693472161,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2593bbe261d2296acc1e3ee28461a566","name":"ros-humble-velodyne-driver","requires":[],"size":146495,"version":"2.3.0","binstar":{"package_id":"6398ee70d0e8c095e280389f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5859ee1ab732cac086872bc2e4adb54ea4dbf36656c52c50230d8d08bddc446e"},"ros-humble-velodyne-msgs-2.3.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670966614647,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"267efbf20d57967d05fca1aa450fa7b4","name":"ros-humble-velodyne-msgs","requires":[],"size":73121,"version":"2.3.0","binstar":{"package_id":"6398ee7268b198bb95911256","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"199a68354b2f3f40edbd3161c380acd2bfb447e3bba08038ecafa1f73768d770"},"ros-humble-velodyne-msgs-2.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-builtin-interfaces","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675688598164,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3680758d98a1189283b55a3d6104ff71","name":"ros-humble-velodyne-msgs","requires":[],"size":73172,"version":"2.3.0","binstar":{"package_id":"6398ee7268b198bb95911256","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a80301ee109d352d44d032b22e42b761ebb1a4566b22876f0a9414d86d99d38"},"ros-humble-velodyne-pointcloud-2.3.0-py310h49fac9a_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-diagnostic-updater","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-velodyne-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h49fac9a_2","timestamp":1670966845209,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7dd5426f1cd1c2f96fd7081d6c2943d6","name":"ros-humble-velodyne-pointcloud","requires":[],"size":645781,"version":"2.3.0","binstar":{"package_id":"6398ee732ff78d332e4bad75","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce3fe4b1bdea552d0a2f2999ce8e6b2eff0462e09fde485d089108f762846a6c"},"ros-humble-velodyne-pointcloud-2.3.0-py310h49fac9a_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-diagnostic-updater","ros-humble-geometry-msgs","ros-humble-message-filters","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-tf2","ros-humble-tf2-ros","ros-humble-velodyne-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py310h49fac9a_3","timestamp":1675693421696,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4e9cec885617b407db5a439edef652c2","name":"ros-humble-velodyne-pointcloud","requires":[],"size":648234,"version":"2.3.0","binstar":{"package_id":"6398ee732ff78d332e4bad75","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c27d535874390afd7e70ba1896fb352e5b1704e4deccd02ed460fe8ec18032f7"},"ros-humble-velodyne-laserscan-2.3.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670966676270,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"edf5a2b173260c4103d66fcdecc70a41","name":"ros-humble-velodyne-laserscan","requires":[],"size":167838,"version":"2.3.0","binstar":{"package_id":"6398ee752ff78d332e4bae1d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b327e298bcba62a53a1e6e26806805010c223d29cdc41ede60927216610af52"},"ros-humble-velodyne-laserscan-2.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675691791563,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ca44beabbb6a34e2f51f416eaaa6670f","name":"ros-humble-velodyne-laserscan","requires":[],"size":167888,"version":"2.3.0","binstar":{"package_id":"6398ee752ff78d332e4bae1d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"05d03381161e5ca3e5cbb9fd9d52cd9996eff88ccf4dfc83ced6fb165a24fbf9"},"ros-humble-velodyne-2.3.0-py310h7c61026_2.tar.bz2":{"build_number":2,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-velodyne-driver","ros-humble-velodyne-laserscan","ros-humble-velodyne-msgs","ros-humble-velodyne-pointcloud","ros2-distro-mutex 0.2.* humble","ros2-distro-mutex 0.2.* humble"],"build":"py310h7c61026_2","timestamp":1670967162664,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6883979a4c4ce5d08634dad998e73641","name":"ros-humble-velodyne","requires":[],"size":18532,"version":"2.3.0","binstar":{"package_id":"6398ef7dcd65eb0e142209a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3965e6cc862f52142eaf455e5ff178859ab75c6b2889a2fb6d18ab1890e0777a"},"ros-humble-velodyne-2.3.0-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-velodyne-driver","ros-humble-velodyne-laserscan","ros-humble-velodyne-msgs","ros-humble-velodyne-pointcloud","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1675694020891,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"39dc26ba6a4f952035f6590e95cfb3c8","name":"ros-humble-velodyne","requires":[],"size":18638,"version":"2.3.0","binstar":{"package_id":"6398ef7dcd65eb0e142209a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6f7479def79a5c7107ea4a07b8beb5eb2d2acda6bdcee5e84aaef30c1fc41e0c"},"ros-noetic-eigenpy-2.8.1-hb0f4dca_20.tar.bz2":{"build_number":20,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["eigenpy 2.8.1*"],"build":"hb0f4dca_20","timestamp":1674167279924,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"82145d5c480782066d76dcbdd3fc6b28","name":"ros-noetic-eigenpy","requires":[],"size":3140,"version":"2.8.1","binstar":{"package_id":"63c9c3f1989160afcf8af466","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"43e4188e383123b035cff86dd4c23edbe939a3168219ecb5ef1d8e2ca6fa572d"},"ros-noetic-eigenpy-3.1.0-h6f875b6_21.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":false,"subdir":"linux-64","arch":"x86_64","build":"h6f875b6_21","build_number":21,"depends":["eigenpy 3.1.0*"],"platform":"linux","timestamp":1706523552502,"md5":"9da76e1045b47df563995cd0570c54ab","name":"ros-noetic-eigenpy","requires":[],"size":3485,"version":"3.1.0","binstar":{"package_id":"63c9c3f1989160afcf8af466","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"16229a970fb89363fcf789198ffb5bf511918bb1294cfb962a877bc409452de6"},"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":"x86_64","platform":"linux","depends":[],"build":"noetic","timestamp":1674167258383,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"85b7d0ff36775fa1b4bd2d8641332cc6","name":"ros-distro-mutex","requires":[],"size":3323,"version":"0.4.0","binstar":{"package_id":"63c9c3f2be293b9e16e76b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b04df57259d1fc011ff8587723440ef8c5cffb212700f2b64598c463415690d4"},"ros-distro-mutex-0.5.0-noetic.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":false,"subdir":"linux-64","arch":"x86_64","build":"noetic","build_number":4,"constrains":["gazebo 11.*","ogre 1.10.12*","libpqxx 7.8.*"],"depends":[],"license":"BSD-3-Clause","platform":"linux","timestamp":1706494787148,"md5":"ee2671624da515412d03dfe8ba43193a","name":"ros-distro-mutex","requires":[],"size":3653,"version":"0.5.0","binstar":{"package_id":"63c9c3f2be293b9e16e76b6a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2aba2357d6b144a76842c46cacfcd1fa89f4fe699fd67027fec37812f6fc6c77"},"ros-noetic-ruckig-0.9.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674167485365,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"17f471a8a3c00290ecb784e1ce3127ba","name":"ros-noetic-ruckig","requires":[],"size":99324,"version":"0.9.2","binstar":{"package_id":"63c9c72b912363225b7dc82b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82b05d921eda704c02e8496ba4f6f65632e774661dc9cbe08acf28fdd76aa5bf"},"ros-noetic-ruckig-0.9.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":false,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706523475991,"md5":"7bce16f02ecf7c52969f62db9251293a","name":"ros-noetic-ruckig","requires":[],"size":110959,"version":"0.9.2","binstar":{"package_id":"63c9c72b912363225b7dc82b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d614cedcb2fb93f84b49ffcd0de66c08ab12c395b3dd40fd073143552ad3adcd"},"ros-noetic-ompl-1.6.0-py39h28238e9_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","flann >=1.9.1,<1.9.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h28238e9_15","timestamp":1674167998565,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5edab5244d9e8b830cc29f419f57b3e6","name":"ros-noetic-ompl","requires":[],"size":2809030,"version":"1.6.0","binstar":{"package_id":"63c9c72d2e1172ba3666a0ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"493bb29018fa1774349beeed9a3e29a92dd430107bd14d6e285832dd6a58db18"},"ros-noetic-ompl-1.6.0-py311h284c4b5_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311h284c4b5_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost","eigen","flann >=1.9.2,<1.9.3.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524667958,"md5":"efb20c8ba4a56dcae1f4c3f0c21c983c","name":"ros-noetic-ompl","requires":[],"size":2856924,"version":"1.6.0","binstar":{"package_id":"63c9c72d2e1172ba3666a0ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4755d56a5b5a8b21c1b942a93af95f4ea98380d79fc4fa812def677023b10ff0"},"ros-noetic-apriltag-3.2.0-py39hc401949_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","xorg-libx11","xorg-libxext"],"build":"py39hc401949_15","timestamp":1674168103637,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"aaa0a5482f2aaaef391421aa56092861","name":"ros-noetic-apriltag","requires":[],"size":1369291,"version":"3.2.0","binstar":{"package_id":"63c9c72ed0e8c095e217a493","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a634d87d140fb90a26f713eaec2a83eedde6243f577a1c5723e3759a780b385"},"ros-noetic-apriltag-3.2.0-py311h5fd4792_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311h5fd4792_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.9.0,<4.9.1.0a0","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","py-opencv >=4.9.0,<5.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","xorg-libx11 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524361098,"md5":"212f533918135ee23b4dd42a1f847c58","name":"ros-noetic-apriltag","requires":[],"size":1366875,"version":"3.2.0","binstar":{"package_id":"63c9c72ed0e8c095e217a493","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df6bf3236464c7321f0479e02c87d3350759af8c9b7c1a0c4be95307a04a7e6f"},"ros-noetic-catkin-0.8.10-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","cmake","empy","gmock","gtest","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","nose","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","setuptools"],"build":"py39hac30774_15","timestamp":1674167426110,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2874c8169e56e3417fb579a8f2f1a0ed","name":"ros-noetic-catkin","requires":[],"size":174835,"version":"0.8.10","binstar":{"package_id":"63c9c72fcd65eb0e145b8aee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f32ec0fc1d16b2aabb98074772f394ac077b466424dcf97328da7b151d1d1262"},"ros-noetic-catkin-0.8.10-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","catkin_pkg","cmake","empy","gmock","gtest >=1.14.0,<1.14.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","nose","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","setuptools"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706523454473,"md5":"7ae893985c334f63b97da7a32846ff8b","name":"ros-noetic-catkin","requires":[],"size":180846,"version":"0.8.10","binstar":{"package_id":"63c9c72fcd65eb0e145b8aee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f4516ef4a697c9e24e12daf3e16f6d6ce06733d273ce9acf8abf0a8f646a4e1"},"ros-noetic-roslint-0.12.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168319879,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"87ed9c7f6acf8ca8150ffa50798b039f","name":"ros-noetic-roslint","requires":[],"size":252096,"version":"0.12.0","binstar":{"package_id":"63c9c818912363225b7dfac6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"699223b203f5667110eedddcaec47ac0b2e7576434cc6b5befa4925468ce494f"},"ros-noetic-roslint-0.12.0-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"subdir":"linux-64","timestamp":1698187633721,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"9afd04d91d7cbb0e4db2d109423e6874","name":"ros-noetic-roslint","requires":[],"size":240430,"version":"0.12.0","binstar":{"package_id":"63c9c818912363225b7dfac6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"efeaf87ac0deaa1d36e7ed9459e918ba6219fdbdb60a05da659839d580a40aa2"},"ros-noetic-roslint-0.12.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524837665,"md5":"95ff5fb21d7f99fdd7c95ea537a9d2d9","name":"ros-noetic-roslint","requires":[],"size":283177,"version":"0.12.0","binstar":{"package_id":"63c9c818912363225b7dfac6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"863a4e02298eb92942c40f013162c0fa3d6e3986c2216945088b12894b87c59d"},"ros-noetic-rosclean-1.15.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","rospkg"],"build":"py39hac30774_15","timestamp":1674168271810,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3af8ed918458157eb381aadd86a1e569","name":"ros-noetic-rosclean","requires":[],"size":22574,"version":"1.15.8","binstar":{"package_id":"63c9c819dbdf733521ec76b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81e13fdbfe4d6cefbbb781d06aa2fef63ffab807b69ef1e15fdacc26fd87ae91"},"ros-noetic-rosclean-1.15.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","rospkg"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524802417,"md5":"186fe3d2280161bba70786cc2e47f27a","name":"ros-noetic-rosclean","requires":[],"size":24082,"version":"1.15.8","binstar":{"package_id":"63c9c819dbdf733521ec76b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6216716c0a0d334956b39422915ed784ff47596f837b683bd373ad1e82ee9c45"},"ros-noetic-media-export-0.3.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168342984,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1c5b78b166d776b59f9943e0ec0c5e63","name":"ros-noetic-media-export","requires":[],"size":9911,"version":"0.3.0","binstar":{"package_id":"63c9c81a8ff1ad27427b5f62","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7dcbf84a672caf7b3c51e70aa370c074e5b250a887455a80f889cfc38b58124f"},"ros-noetic-media-export-0.3.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524854401,"md5":"010c4ecbfb54bf4ed05d16068b100b23","name":"ros-noetic-media-export","requires":[],"size":10614,"version":"0.3.0","binstar":{"package_id":"63c9c81a8ff1ad27427b5f62","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a4c14fe6d4b13b88962e5738bd6d1472911a6d82e28c504a70e9a7e0a60275e"},"ros-noetic-rosgraph-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","netifaces","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","rospkg"],"build":"py39hac30774_15","timestamp":1674168245983,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"42aa3a79b97458b865d0ac34bacc558b","name":"ros-noetic-rosgraph","requires":[],"size":85000,"version":"1.15.15","binstar":{"package_id":"63c9c81bc37c80a75b313ba4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a20a91f6cca6adb31b3d64bff031ca17531e0bfb4f3ff8b31bb28030d398cc8"},"ros-noetic-rosgraph-1.16.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","netifaces","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","pyyaml","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","rospkg"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524781932,"md5":"27d2c81398818608e87e7d93d3699fa0","name":"ros-noetic-rosgraph","requires":[],"size":91694,"version":"1.16.0","binstar":{"package_id":"63c9c81bc37c80a75b313ba4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dbada69a118a95c1d3117d90ec539e9249612e975d4647f564f97ee9efb983e6"},"ros-noetic-urdf-parser-plugin-1.13.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","urdfdom_headers"],"build":"py39hac30774_15","timestamp":1674168295932,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"567acec4e70e63ad23eef65739d67fd7","name":"ros-noetic-urdf-parser-plugin","requires":[],"size":11268,"version":"1.13.2","binstar":{"package_id":"63c9c81c912363225b7dfb34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d272fb0918a1432823758cecaddbe86bb13ebf1d1b1f677c47c462cd760b380f"},"ros-noetic-urdf-parser-plugin-1.13.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","urdfdom_headers"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524819170,"md5":"13d7dd6946e52dfd9f7be5746fc2faf5","name":"ros-noetic-urdf-parser-plugin","requires":[],"size":11977,"version":"1.13.2","binstar":{"package_id":"63c9c81c912363225b7dfb34","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed0c48443b370c66d06a22b6e9cc092e120142342068cb3fff34ca12bec29e73"},"ros-noetic-ros-environment-1.3.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168308423,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3f9f9723e3c8856a69f237b8c26bf6d8","name":"ros-noetic-ros-environment","requires":[],"size":16607,"version":"1.3.2","binstar":{"package_id":"63c9c82820c05f5e390671e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7436374b97eada20b34e3d0a68e82bd0b697a22ed432e78e728981bb50d391ce"},"ros-noetic-ros-environment-1.3.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524823929,"md5":"24ee12a96975371b43d8ee1778cc5161","name":"ros-noetic-ros-environment","requires":[],"size":17120,"version":"1.3.2","binstar":{"package_id":"63c9c82820c05f5e390671e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71f689dbd212ad1121d25baf60255670a21acc5a327d4e81938756de659ee1d3"},"ros-noetic-rosmake-1.15.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","rospkg"],"build":"py39hac30774_15","timestamp":1674168358381,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d5399c926041f2841817a27e27164fca","name":"ros-noetic-rosmake","requires":[],"size":64233,"version":"1.15.8","binstar":{"package_id":"63c9c82a2ff78d332e691027","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc6864e8a10f4a6e4989cbdc9daa524168c2cd2cb0211e6d73371117e18648cd"},"ros-noetic-rosmake-1.15.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706524861124,"md5":"b436512b24cfcde565294e7176cd0e94","name":"ros-noetic-rosmake","requires":[],"size":69463,"version":"1.15.8","binstar":{"package_id":"63c9c82a2ff78d332e691027","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91e97ba46ee22dc36cf035c2f65e6cc1b776a5e86d388659c7f4c3ecdc982294"},"ros-noetic-genmsg-0.6.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["empy","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin"],"build":"py39hac30774_15","timestamp":1674168285532,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"79470e3bb5e6919192a595c36cdef08a","name":"ros-noetic-genmsg","requires":[],"size":62329,"version":"0.6.0","binstar":{"package_id":"63c9c82b59c09271a43e8d14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"225fe6321f8f8ac387b78f304f95701b18aed410b369d71d99aa89a70f76a157"},"ros-noetic-genmsg-0.6.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","empy","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524805298,"md5":"f4d7d5eddeadce6c81f664b6c8e9f6f9","name":"ros-noetic-genmsg","requires":[],"size":65361,"version":"0.6.0","binstar":{"package_id":"63c9c82b59c09271a43e8d14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cb8afb1c7f48c1f4e3154a4cfa28fab8bc813d338d114d57d2d8e9c38ec6dc09"},"ros-noetic-cpp-common-0.7.2-py39hc1d770b_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hc1d770b_15","timestamp":1674168261639,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3cc11a8052f1cfd596c03bd199809c7c","name":"ros-noetic-cpp-common","requires":[],"size":31113,"version":"0.7.2","binstar":{"package_id":"63c9c82d5a31eb90f69af2fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3cf964f9abac84c3f0fd6b3a66bc5a1e1bec9d1453a7f8f44d23fa214cee924"},"ros-noetic-cpp-common-0.7.3-py311hb303436_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb303436_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524785754,"md5":"520cdb5f2c8fba001607acfd6c0d4501","name":"ros-noetic-cpp-common","requires":[],"size":32434,"version":"0.7.3","binstar":{"package_id":"63c9c82d5a31eb90f69af2fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"19223d6f735e2aa0ba81a2f88fd68879218264f054fa94dc7879bb1f84b712b3"},"ros-noetic-cmake-modules-0.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168331485,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f69b89760549bcdce03b0c1018f62ad0","name":"ros-noetic-cmake-modules","requires":[],"size":22584,"version":"0.5.0","binstar":{"package_id":"63c9c82f2ff78d332e6910df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"281ed46a2748e265670c092d8125d55ef7f099f905ebed6009161a4d0271c033"},"ros-noetic-cmake-modules-0.5.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524840503,"md5":"3702a31ba598014673c110a7515d273c","name":"ros-noetic-cmake-modules","requires":[],"size":23304,"version":"0.5.0","binstar":{"package_id":"63c9c82f2ff78d332e6910df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c72915a72347a5892ff052eb89c2bae3fba1e07e4c9f3c7918d7cd2cfeb26303"},"ros-noetic-octomap-1.9.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin"],"build":"py39hac30774_15","timestamp":1674168383827,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"37e2b3b7abc911b4fd6b3e4b85a12ec8","name":"ros-noetic-octomap","requires":[],"size":425686,"version":"1.9.8","binstar":{"package_id":"63c9c85aa64974fd099c60c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4df9aae5418885d5b40654459bc4fd2f96e42d730640be5f2d012e7f2729de29"},"ros-noetic-octomap-1.9.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524832191,"md5":"61548844285622c42d739d2c67f1d441","name":"ros-noetic-octomap","requires":[],"size":427952,"version":"1.9.8","binstar":{"package_id":"63c9c85aa64974fd099c60c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"14567deb1fa869f8c80e99b04f99926dfb650ccbc1f9856cb22d771aebb42e7d"},"ros-noetic-rosbag-migration-rule-1.0.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168245023,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4d2a569c5a523e34dc98f028e4e6416b","name":"ros-noetic-rosbag-migration-rule","requires":[],"size":9956,"version":"1.0.1","binstar":{"package_id":"63c9c85cc37c80a75b3150e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6708a385b1391033bd66e213c4bfa15c87b7e090e94a9811475ecdfa6e69805"},"ros-noetic-rosbag-migration-rule-1.0.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524777280,"md5":"a6f3964bd06fcdad0240416051f77a66","name":"ros-noetic-rosbag-migration-rule","requires":[],"size":10663,"version":"1.0.1","binstar":{"package_id":"63c9c85cc37c80a75b3150e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4464cc96c8505da30996e36f436cb20da45eafd02f6d280c3d8e061b13e6129"},"ros-noetic-random-numbers-0.3.2-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hd1c2957_15","timestamp":1674168309702,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a41233903f44e53e1c042fa4f22e65ed","name":"ros-noetic-random-numbers","requires":[],"size":37755,"version":"0.3.2","binstar":{"package_id":"63c9c85ddbdf733521ec9d2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"318947189ae0dd2206072be89d336ec90dafd4777fe729c6f1ca07755519fdf0"},"ros-noetic-random-numbers-0.3.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524860552,"md5":"8d041b8d03bdf74959ee1ba05b3c82d6","name":"ros-noetic-random-numbers","requires":[],"size":37376,"version":"0.3.2","binstar":{"package_id":"63c9c85ddbdf733521ec9d2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c48e0d625217b0a2f088d674e41df881618c89ea0f78a00f9ea0ea1f2a8bc50"},"ros-noetic-moveit-resources-panda-description-0.8.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168270123,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e5d0a8b5a11185ef5bfb70f106eb0e73","name":"ros-noetic-moveit-resources-panda-description","requires":[],"size":3804781,"version":"0.8.2","binstar":{"package_id":"63c9c85f0273ee116afd3b87","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"68a15014a7aa945ac2914bf9dfc5e3ce9b1fc668c4fc6fb598dd6fa4fed1e95c"},"ros-noetic-pybind11-catkin-2.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168408567,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1afd41d5a9703c4a170baaa5b5ddb02e","name":"ros-noetic-pybind11-catkin","requires":[],"size":122646,"version":"2.5.0","binstar":{"package_id":"63c9c8612ff78d332e691d94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"343f4b7778efdee773d339bb7081d772f15c44963b875ceefbd3232138119aa6"},"ros-noetic-pybind11-catkin-2.10.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524880143,"md5":"45a1131fd2a69662a33594398c1cbbbe","name":"ros-noetic-pybind11-catkin","requires":[],"size":156341,"version":"2.10.3","binstar":{"package_id":"63c9c8612ff78d332e691d94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d67ffa9888c81972c2cfd873acd57bfa072ff2165136019ed7c670c96b86cb32"},"ros-noetic-convex-decomposition-0.1.12-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","unzip"],"build":"py39hac30774_15","timestamp":1674168478984,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"325c87750030e94c478585eaf5e074ae","name":"ros-noetic-convex-decomposition","requires":[],"size":91687,"version":"0.1.12","binstar":{"package_id":"63c9c8a1912363225b7e3946","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cbf941ab43b3f4bd326f8922f58e373f0f77453607571bf71f8e7b117b7bad37"},"ros-noetic-convex-decomposition-0.1.12-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","unzip"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524781582,"md5":"aed04655ac73f0e8030dcf1c10aeb330","name":"ros-noetic-convex-decomposition","requires":[],"size":96842,"version":"0.1.12","binstar":{"package_id":"63c9c8a1912363225b7e3946","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d1bcb0c666cfbaa4145fce409b4568d39706a69bc5d28fc035b45e23222ba142"},"ros-noetic-moveit-resources-fanuc-description-0.8.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168304383,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7727e7c8e6e2ce4e4d5c7e2726fa5ecb","name":"ros-noetic-moveit-resources-fanuc-description","requires":[],"size":186309,"version":"0.8.2","binstar":{"package_id":"63c9c8a1c37c80a75b315f94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b7e8339e70376839f144fefe15209347ba07449bcfe47b1655e6cdbae6cd36e"},"ros-noetic-moveit-resources-fanuc-description-0.8.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524780414,"md5":"169ef6155156c0d5e7c63bd4f902a6e7","name":"ros-noetic-moveit-resources-fanuc-description","requires":[],"size":187279,"version":"0.8.3","binstar":{"package_id":"63c9c8a1c37c80a75b315f94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"efba895af4cc22fccbdd86f545faff74acbd4589678f0cef733b221b660ab8de"},"ros-noetic-gazebo-dev-2.9.2-py39h6e73cb5_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gazebo >=11.12.0,<12.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","tbb >=2021.7.0"],"build":"py39h6e73cb5_15","timestamp":1674168448576,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1ebec4138faa8762b6069a801b585a20","name":"ros-noetic-gazebo-dev","requires":[],"size":13498,"version":"2.9.2","binstar":{"package_id":"63c9c8a2dbdf733521ecb1d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61d2ee15f88eac00f8821cd139dd32f8e8e1c1ec7d372553afb962005b0f2d6a"},"ros-noetic-gazebo-dev-2.9.2-py311hf698a1f_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hf698a1f_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","gazebo >=11.14.0,<12.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706524866807,"md5":"a2a51881339e04b23f1c0559bd0fe50d","name":"ros-noetic-gazebo-dev","requires":[],"size":14666,"version":"2.9.2","binstar":{"package_id":"63c9c8a2dbdf733521ecb1d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"319c477ed7347725cdd1695179cd5ec585a99aed611a0926a925a6c9bb399304"},"ros-noetic-smclib-1.8.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168280486,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2b1caa1d3ba5c698637d2984880e49b0","name":"ros-noetic-smclib","requires":[],"size":20792,"version":"1.8.6","binstar":{"package_id":"63c9c8a32b70bce830752c24","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ba2f7df1c201f804e7e09686e04dab5ef391c216553dc60eeabdddab33cee5c3"},"ros-noetic-smclib-1.8.6-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524800352,"md5":"11c77900d0b711235354ab89df0c79b9","name":"ros-noetic-smclib","requires":[],"size":21627,"version":"1.8.6","binstar":{"package_id":"63c9c8a32b70bce830752c24","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5f67f9db3f8944610ec8bc7e1e5c4e1ccaf312f2541e40fd6e05195a01b8522e"},"ros-noetic-moveit-resources-pr2-description-0.8.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168245701,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"85ae1c638e4875eb0aaab1ab5a3b038f","name":"ros-noetic-moveit-resources-pr2-description","requires":[],"size":25895547,"version":"0.8.2","binstar":{"package_id":"63c9c8a7dbdf733521ecb664","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30788f8f93e8bf561ec3089b470da40a9529120b743d04a02ff1e1084d241cc1"},"ros-noetic-moveit-resources-pr2-description-0.8.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524898995,"md5":"160f676f8de172b798f590545dcfc01f","name":"ros-noetic-moveit-resources-pr2-description","requires":[],"size":25876805,"version":"0.8.3","binstar":{"package_id":"63c9c8a7dbdf733521ecb664","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"213a971b3f38d91c2f4d9093bd85104b6facaed5fdd9116ffbbac3c21acaf68e"},"ros-noetic-smach-2.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168281544,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2b314f81cb0648dc0bba9cfaa03d0f38","name":"ros-noetic-smach","requires":[],"size":66833,"version":"2.5.0","binstar":{"package_id":"63c9c8a92ff78d332e693341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"93bcd5ea3847002867fca3f929cd957c568dad9df4c1f01332a5b8c62e299516"},"ros-noetic-smach-2.5.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706525298865,"md5":"1db2b45fa035756cf129d1b18ff64651","name":"ros-noetic-smach","requires":[],"size":71660,"version":"2.5.2","binstar":{"package_id":"63c9c8a92ff78d332e693341","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02530b373578aab9b77120f1e52451348ae51893f600d947a343b2858e9df083"},"ros-noetic-mavlink-2022.12.30-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin"],"build":"py39hac30774_15","timestamp":1674168411497,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ad5a445f61ad691ce9ca9242d9416d50","name":"ros-noetic-mavlink","requires":[],"size":1084634,"version":"2022.12.30","binstar":{"package_id":"63c9c8ab0273ee116afd443a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"24583bb172df1885d00edb964d5d563cef89a131b41cd8df7622d4f4747b7c55"},"ros-noetic-mavlink-2023.9.9-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706496329541,"md5":"4731466d3045225ab476539b814378e7","name":"ros-noetic-mavlink","requires":[],"size":1096798,"version":"2023.9.9","binstar":{"package_id":"63c9c8ab0273ee116afd443a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d846c1d9bf5fad03b4ba5735f8357f9811d527f1a21d0be880c0ebda63fe52a8"},"ros-noetic-libfranka-0.9.2-py39h52a9b04_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","poco >=1.12.4,<1.12.5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin"],"build":"py39h52a9b04_15","timestamp":1674168486026,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"081700cd24456fcabf36071de4fcc4f3","name":"ros-noetic-libfranka","requires":[],"size":243743,"version":"0.9.2","binstar":{"package_id":"63c9c8afcd65eb0e145c06a2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5abb4299519f23d05b8e6a93502b692fdb0f6ebf7c8292730fb67ca08336124b"},"ros-noetic-gl-dependency-1.1.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyqt","pyqt-builder","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168337878,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"483559bcd3247c9d5f6be1a0cf118225","name":"ros-noetic-gl-dependency","requires":[],"size":10744,"version":"1.1.2","binstar":{"package_id":"63c9c8b1dbdf733521ecb7b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"879b2158ec487ed701661cbd0b15c3a771322b18b8716cca981edd437a038137"},"ros-noetic-gl-dependency-1.1.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","pyqt","pyqt-builder","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524781811,"md5":"c5a62a61169e8c3ca97abbe808b2b22a","name":"ros-noetic-gl-dependency","requires":[],"size":11553,"version":"1.1.2","binstar":{"package_id":"63c9c8b1dbdf733521ecb7b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"612890353596996e3670a54885b6110a256f43910e6e45ae92ccc7604d61664b"},"ros-noetic-openslam-gmapping-0.2.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168350803,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"53690454c7a3661a1f8c57f2949b53b4","name":"ros-noetic-openslam-gmapping","requires":[],"size":213219,"version":"0.2.1","binstar":{"package_id":"63c9caba2ff78d332e6a7522","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4575b18ae7610595cf2b368428d9a8edafd250f831fd5e5888d48c4b0375bd14"},"ros-noetic-openslam-gmapping-0.2.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524836831,"md5":"3b0f4f55325543f998ac87b6e26c8454","name":"ros-noetic-openslam-gmapping","requires":[],"size":217687,"version":"0.2.1","binstar":{"package_id":"63c9caba2ff78d332e6a7522","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3cdec0b882f3cc12c75b69786483987926bb3fdb7b69c46dba5a5c4540890fc0"},"ros-noetic-rosboost-cfg-1.15.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168288980,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"89da1b206632ea4815a6b88d99abc57d","name":"ros-noetic-rosboost-cfg","requires":[],"size":27683,"version":"1.15.8","binstar":{"package_id":"63c9cacf8ff1ad27427d3ceb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34ac52b0f8289dd203ad18c6f09b9aa2e430ef90be6270aa6df6c773901d5bcc"},"ros-noetic-rosboost-cfg-1.15.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524807568,"md5":"10d75bf45e5a594061ac9b79bc083f75","name":"ros-noetic-rosboost-cfg","requires":[],"size":29768,"version":"1.15.8","binstar":{"package_id":"63c9cacf8ff1ad27427d3ceb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1057591c4b36ff3e55f5ae3f7c2877f5a2892a8ca315ea449f07e775abf0cc22"},"ros-noetic-qwt-dependency-1.1.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168312478,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"71360f7506e3f80389ac324925064893","name":"ros-noetic-qwt-dependency","requires":[],"size":9990,"version":"1.1.1","binstar":{"package_id":"63c9cad1cd65eb0e145d8dc1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a48f0d336482762195036659015fdfa25b6c77c82353516ea7252fa64e804a43"},"ros-noetic-qwt-dependency-1.1.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524787163,"md5":"b97f313d73a4e6f4520f4b2d6fc42d40","name":"ros-noetic-qwt-dependency","requires":[],"size":10694,"version":"1.1.1","binstar":{"package_id":"63c9cad1cd65eb0e145d8dc1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ebb85b42dcd78ff158ec12edeaf4f491b9fb312c038cce7f1e33b4cae9d91e4e"},"ros-noetic-code-coverage-0.4.4-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["coverage","lcov","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674168263732,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0fbdb56514a097a9e06826e3bc7e5283","name":"ros-noetic-code-coverage","requires":[],"size":13147,"version":"0.4.4","binstar":{"package_id":"63c9cad2989160afcf8edd3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"326711e3c13c520222a3bb19373ff64996b3e94f9c2eb1943d5c6517feb6441c"},"ros-noetic-code-coverage-0.4.4-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","coverage","lcov","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706525254186,"md5":"2f193c3a56543dfd539f90108a2ef913","name":"ros-noetic-code-coverage","requires":[],"size":13823,"version":"0.4.4","binstar":{"package_id":"63c9cad2989160afcf8edd3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e51e4ab1d99ece294e3161490bc45c6b843caa5869d68d70c1864866543a0cc"},"ros-noetic-libg2o-2020.5.3-py39hd0ba68e_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","suitesparse >=5.10.1,<6.0a0","xorg-libx11","xorg-libxext"],"build":"py39hd0ba68e_15","timestamp":1674168936289,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fd97213489029c73d7ebac64308e14f4","name":"ros-noetic-libg2o","requires":[],"size":1823191,"version":"2020.5.3","binstar":{"package_id":"63c9cb42c37c80a75b329fe2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"20aecc75114662e4c6061b11148993916345f008c64d8fcd98ca747377642445"},"ros-noetic-libg2o-2020.5.3-py311hadca8ed_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hadca8ed_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin","suitesparse >=5.10.1,<6.0a0","xorg-libx11 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706496738185,"md5":"a4f92137dd9112e32561e5cc28a01a3b","name":"ros-noetic-libg2o","requires":[],"size":1861585,"version":"2020.5.3","binstar":{"package_id":"63c9cb42c37c80a75b329fe2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d4639d8dff9760c8d8e8c52496b8b029ecbce5d93a1dc0b50f77cb1ad79bb7ee"},"ros-noetic-jackal-simulator-0.4.0-py39ha182ace_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-jackal-gazebo"],"build":"py39ha182ace_3","timestamp":1674169149196,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6282f30b547fb77938b747c82e56f841","name":"ros-noetic-jackal-simulator","requires":[],"size":11344,"version":"0.4.0","binstar":{"package_id":"63c9cb4668b198bb95958d03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ac4cbc7e18afbacf899c7de9de813f325e5bfb744a85c9c59b94413512ce1c1"},"ros-noetic-genpy-0.6.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39hac30774_15","timestamp":1674169359910,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a37f13c4663c2c47830428577447e8d7","name":"ros-noetic-genpy","requires":[],"size":94591,"version":"0.6.15","binstar":{"package_id":"63c9cc60cd65eb0e145e0dbb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"15889857b03e651524354c5b0dac0d54126a1d379aa24515b87198d39d8d610a"},"ros-noetic-genpy-0.6.15-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706496965443,"md5":"f6b470ec49e79ba805a67e3a71aec968","name":"ros-noetic-genpy","requires":[],"size":100245,"version":"0.6.15","binstar":{"package_id":"63c9cc60cd65eb0e145e0dbb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"caf96071e3effef01eb744e0f8c82e94b618ef799aeae12dc0ebba607afefe70"},"ros-noetic-geneus-3.0.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39hac30774_15","timestamp":1674169438462,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"909666a4a309829a0879759118d58f97","name":"ros-noetic-geneus","requires":[],"size":52538,"version":"3.0.0","binstar":{"package_id":"63c9cc61c37c80a75b32ec7c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"efcf98e8f98c1de3293699e320d6f99503a450071ed47d078271221a353facd1"},"ros-noetic-geneus-3.0.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497023819,"md5":"db64602fab3ca9f216daf00f69bee001","name":"ros-noetic-geneus","requires":[],"size":56964,"version":"3.0.0","binstar":{"package_id":"63c9cc61c37c80a75b32ec7c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"245e1128e2c535d99cfd77d6e515cdd6d48b22f675c638771368ba91ce0a4e06"},"ros-noetic-rostime-0.7.2-py39h873cbd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common"],"build":"py39h873cbd0_15","timestamp":1674169330997,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5043a88d4a0edc5f1f662a731d9d7a74","name":"ros-noetic-rostime","requires":[],"size":54248,"version":"0.7.2","binstar":{"package_id":"63c9cc62c37c80a75b32ec9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ae3ff8874d3e9e5cf8047b6a2ddcc2496801b1f1c8517d7c98d1ee211e91cb0"},"ros-noetic-rostime-0.7.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706496943992,"md5":"b30ef923e1b7a3960bc4c64d67f66c08","name":"ros-noetic-rostime","requires":[],"size":59642,"version":"0.7.3","binstar":{"package_id":"63c9cc62c37c80a75b32ec9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc57ab28c8df816b26a4bc47dcdca1162c8b5033c591c341926d45b83f766a5f"},"ros-noetic-gennodejs-2.0.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39hac30774_15","timestamp":1674169385983,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d779c906ecce0e3cffeb186b9299e372","name":"ros-noetic-gennodejs","requires":[],"size":47786,"version":"2.0.2","binstar":{"package_id":"63c9cc634796da5b423bc593","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"35d63f3398f0c3a6da5dea11bfbb75c4283034d8b99b03ff8f14ef9fc820078a"},"ros-noetic-gennodejs-2.0.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706496984800,"md5":"a786fed4703f62207ded72ab90d19edb","name":"ros-noetic-gennodejs","requires":[],"size":52517,"version":"2.0.2","binstar":{"package_id":"63c9cc634796da5b423bc593","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ea38844a64fc3438267168bd0a32f671a5ad0410eb477f4654c6fbd341102fd"},"ros-noetic-genlisp-0.4.18-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39hac30774_15","timestamp":1674169412267,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"aabb7f85a79c59ea04894e7253a7e57d","name":"ros-noetic-genlisp","requires":[],"size":48161,"version":"0.4.18","binstar":{"package_id":"63c9cc64dbdf733521f01100","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"18c659f462b0d0f7c1cee7eb97bfba0758b62665f295b9e72d92b4e565baecf0"},"ros-noetic-genlisp-0.4.18-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497004242,"md5":"d9ece8b2747a841f914d7b01c3928657","name":"ros-noetic-genlisp","requires":[],"size":51047,"version":"0.4.18","binstar":{"package_id":"63c9cc64dbdf733521f01100","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df4c809782e0fe316cc98e48ae72a8530b796f514d75c1616f65485036cb79da"},"ros-noetic-rospack-2.6.2-py39h7534eef_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pkg-config","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ros-environment","rosdep","tinyxml2 >=9.0.0,<10.0a0"],"build":"py39h7534eef_15","timestamp":1674169373128,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b269f23a561a369b26168564de087f2f","name":"ros-noetic-rospack","requires":[],"size":138433,"version":"2.6.2","binstar":{"package_id":"63c9cc7c2ff78d332e6b2d1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c91f4958ee92612633363dcbb5e1901c271b73ac21946323f2c7066d9d94833e"},"ros-noetic-rospack-2.6.2-py311hfc76a15_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hfc76a15_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost-cpp","catkin_pkg","gtest >=1.14.0,<1.14.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","pkg-config","python","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":"linux","timestamp":1706496966746,"md5":"f2e7f4cc07f23cd80e418d50c5cc458b","name":"ros-noetic-rospack","requires":[],"size":139162,"version":"2.6.2","binstar":{"package_id":"63c9cc7c2ff78d332e6b2d1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"566c65186bd3fce716cf2f5982d56d1ede6c246829c8bf7e3c1f873a79aa0da0"},"ros-noetic-rosparam-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph"],"build":"py39hac30774_15","timestamp":1674169437280,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0315cb835e1799985730e3d47df1c584","name":"ros-noetic-rosparam","requires":[],"size":33015,"version":"1.15.15","binstar":{"package_id":"63c9cc7eedf45d7c2e288734","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fea72ef21fbca654170bea301775b3bf283b9731d6b7c77c6ebbe3c5e94ca51e"},"ros-noetic-rosparam-1.16.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497012756,"md5":"195a8044f39214f212ed2e0211560392","name":"ros-noetic-rosparam","requires":[],"size":34869,"version":"1.16.0","binstar":{"package_id":"63c9cc7eedf45d7c2e288734","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81f427cb94ff3ef155edcaa812ceb69697e201033d27a8649643c20299f196e7"},"ros-noetic-rosmaster-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["defusedxml","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph"],"build":"py39hac30774_15","timestamp":1674169466262,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"69975cbc82727ffb6fb9840c3c3de5ae","name":"ros-noetic-rosmaster","requires":[],"size":74892,"version":"1.15.15","binstar":{"package_id":"63c9cc802ff78d332e6b2d9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"75cc96000c712c43e494eb6d23587c970651f0541145389e61fb39aa449e757c"},"ros-noetic-rosmaster-1.16.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","defusedxml","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosgraph"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497033008,"md5":"aa364240fa63e9eb4536995d830a06e7","name":"ros-noetic-rosmaster","requires":[],"size":79138,"version":"1.16.0","binstar":{"package_id":"63c9cc802ff78d332e6b2d9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"28599d498dfd08441804cb48d31dcec64297d5a61be493ca58b404282f27ae38"},"ros-noetic-roslang-1.15.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-genmsg"],"build":"py39hac30774_15","timestamp":1674169402750,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9c9cfd4ca75f002eaebae31dc481dc68","name":"ros-noetic-roslang","requires":[],"size":10809,"version":"1.15.8","binstar":{"package_id":"63c9cc82cd65eb0e145e18c9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ba5b296340b4d415140f3ad57806b5f5aab1dbd8de948ba876ef67c7415c412"},"ros-noetic-roslang-1.15.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706496987279,"md5":"b5fb8dc01f52a9b53cba6a07b5153499","name":"ros-noetic-roslang","requires":[],"size":11525,"version":"1.15.8","binstar":{"package_id":"63c9cc82cd65eb0e145e18c9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3cb7ad7d5454db62879ee580c64b3fd223c675a760dbf455da03cc3b6a5b16c"},"ros-noetic-gencpp-0.7.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg"],"build":"py39hac30774_15","timestamp":1674169315391,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"28c640e075f922e66215b51f65644353","name":"ros-noetic-gencpp","requires":[],"size":24808,"version":"0.7.0","binstar":{"package_id":"63c9cc8459c09271a4403ffe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c5d26c7f6f12bab850d89fcfeafc802a5facc86c0322d1ac82782a814b2b26d"},"ros-noetic-gencpp-0.7.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706496933498,"md5":"cef730b4e309ce1f40ad04d8ea5e1c32","name":"ros-noetic-gencpp","requires":[],"size":25824,"version":"0.7.0","binstar":{"package_id":"63c9cc8459c09271a4403ffe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af827592c05b87d56e08eeeeadcfa3cb2a28c6136b45c9221748f56ca1f4f16e"},"ros-noetic-rosdoc-lite-0.2.10-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["catkin_pkg","doxygen","graphviz","kitchen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg","rospkg","sphinx"],"build":"py39hac30774_15","timestamp":1674169645680,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a5747117cd4b3c7e76b452201ded492c","name":"ros-noetic-rosdoc-lite","requires":[],"size":86363,"version":"0.2.10","binstar":{"package_id":"63c9cd30dbdf733521f07073","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0c618bbdafe13dbb3c152c1fe64a0ed690aa23feccb118eb1257cd789a351a7"},"ros-noetic-rosdoc-lite-0.2.11-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","catkin_pkg","doxygen","graphviz","kitchen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","pyyaml","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-genmsg","rospkg","sphinx"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706496976947,"md5":"06082fabdfd29136bacad115305f9d14","name":"ros-noetic-rosdoc-lite","requires":[],"size":92190,"version":"0.2.11","binstar":{"package_id":"63c9cd30dbdf733521f07073","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ef374de6f2acedfb24db5df65d7b8f395da1492f2286670a97db7657d0264d35"},"ros-noetic-eigen-stl-containers-0.1.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674169348477,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3e87ec103d2943d1962253b3a109e495","name":"ros-noetic-eigen-stl-containers","requires":[],"size":12084,"version":"0.1.8","binstar":{"package_id":"63c9cd32dbdf733521f073ec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8669df78df876d2d7ee7a9d46c7d546d64a4b1a77a019269bfb34bac0fdc4956"},"ros-noetic-eigen-stl-containers-0.1.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497118143,"md5":"2f60385f1a73c03b68b8e4785069a162","name":"ros-noetic-eigen-stl-containers","requires":[],"size":12762,"version":"0.1.8","binstar":{"package_id":"63c9cd32dbdf733521f073ec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3bf768e775031d15a5611a049985a93a275ecad9242ea52e0676c2292b0ba0db"},"ros-noetic-xmlrpcpp-1.15.15-py39h873cbd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rostime"],"build":"py39h873cbd0_15","timestamp":1674169903061,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"592d609f779a8edcfbf5d0fa608b3307","name":"ros-noetic-xmlrpcpp","requires":[],"size":82236,"version":"1.15.15","binstar":{"package_id":"63c9ce4d2ff78d332e6bf22c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12cfa19759e326790c63ffde2c5e83039d5f32ff3448443b36cb68e1114d8f07"},"ros-noetic-xmlrpcpp-1.16.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497343606,"md5":"1f413754d1647e5b28be8893bc377b3a","name":"ros-noetic-xmlrpcpp","requires":[],"size":82824,"version":"1.16.0","binstar":{"package_id":"63c9ce4d2ff78d332e6bf22c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"44e609b24a8ae212c4992be0e3aa79ea487f6c41cf45216397646a8084d7d101"},"ros-noetic-roscpp-traits-0.7.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rostime"],"build":"py39hac30774_15","timestamp":1674169800920,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0a49bf60030133b70a37ffc537d9622d","name":"ros-noetic-roscpp-traits","requires":[],"size":15948,"version":"0.7.2","binstar":{"package_id":"63c9ce4fc37c80a75b33df23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"38c6f4dde2592a457d418e801fc6b66dd6241b82387e459f6ff1f2ae301a9ab1"},"ros-noetic-roscpp-traits-0.7.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497263757,"md5":"79269168a113d2c12ed8e767cf31fc36","name":"ros-noetic-roscpp-traits","requires":[],"size":16708,"version":"0.7.3","binstar":{"package_id":"63c9ce4fc37c80a75b33df23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3bc17bcb350e5c12cc2fa2955958b361fbeb6a28a07e40b1a06639e61ca24d95"},"ros-noetic-message-generation-0.4.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gencpp","ros-noetic-geneus","ros-noetic-genlisp","ros-noetic-genmsg","ros-noetic-gennodejs","ros-noetic-genpy"],"build":"py39hac30774_15","timestamp":1674169827664,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6c0535428c9de2bded0bbc938c82cb21","name":"ros-noetic-message-generation","requires":[],"size":10268,"version":"0.4.1","binstar":{"package_id":"63c9ce5068b198bb9595c37f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5de40c2cc5ccf83398a07bb8ffe175a99048285037fa681cd3ba0c7a2a1f0a3"},"ros-noetic-message-generation-0.4.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497282571,"md5":"6d1cc52296073dd61faf3bb068cc1b79","name":"ros-noetic-message-generation","requires":[],"size":10955,"version":"0.4.1","binstar":{"package_id":"63c9ce5068b198bb9595c37f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b2768aabf88228fb43e033d96bbf56ce079ca439bedfd70873eac9107909eed0"},"ros-noetic-rosbash-1.15.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-rospack"],"build":"py39hac30774_15","timestamp":1674169930798,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"21215da4eba0f4c652c5f20ad63b3276","name":"ros-noetic-rosbash","requires":[],"size":26547,"version":"1.15.8","binstar":{"package_id":"63c9ce528ff1ad2742807128","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9e89cdd54e0fc3d68e6ae3578e83f24f31ff6f60ef3bc770b8447d3c0be0c530"},"ros-noetic-rosbash-1.15.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497365830,"md5":"3b6ea8b85e4736590cc6b7757b03fe68","name":"ros-noetic-rosbash","requires":[],"size":27303,"version":"1.15.8","binstar":{"package_id":"63c9ce528ff1ad2742807128","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"816c4ee2962719b04ccdac59ace5070b7120341be0168170f2fef30664248852"},"ros-noetic-roslib-1.15.8-py39h873cbd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-ros-environment","ros-noetic-rospack","rospkg"],"build":"py39h873cbd0_15","timestamp":1674169865744,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f2fea45e3a7a99ffb7c603aea692818e","name":"ros-noetic-roslib","requires":[],"size":158904,"version":"1.15.8","binstar":{"package_id":"63c9ce54dbdf733521f11462","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"79506cc459a6d37e88a7961527b5d41e4706f5fa878c8e8db0c03f945b5d4a26"},"ros-noetic-roslib-1.15.8-py39h873cbd0_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-ros-environment","ros-noetic-rospack","rospkg"],"subdir":"linux-64","timestamp":1694895347174,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39h873cbd0_16","md5":"87a4da668faa9f6b765d5ecef8177670","name":"ros-noetic-roslib","requires":[],"size":159653,"version":"1.15.8","binstar":{"package_id":"63c9ce54dbdf733521f11462","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84cd5a8de3257c00e30820eb20f335de9e62f15763d651c5a07a45cf8bd883d4"},"ros-noetic-roslib-1.15.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497312150,"md5":"8a8bdda71689cf1431b6a8d2c66da43d","name":"ros-noetic-roslib","requires":[],"size":167359,"version":"1.15.8","binstar":{"package_id":"63c9ce54dbdf733521f11462","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b9f751db03eaff381a8103d932d8295d7a09c4828469aef55b6870587fc8c22"},"ros-noetic-rosunit-1.15.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roslib","rospkg"],"build":"py39hac30774_15","timestamp":1674170147484,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"03f623c5d36f7e42a65f13acf585d279","name":"ros-noetic-rosunit","requires":[],"size":91954,"version":"1.15.8","binstar":{"package_id":"63c9cf42b23346582c9f8563","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"defb641e8279c4b4b0f1f7228b130553e81aa0f2fb0fed40d34a45af1b539b49"},"ros-noetic-rosunit-1.15.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497521413,"md5":"5bfbaca228be81fc1dfa7ffe8dd160a9","name":"ros-noetic-rosunit","requires":[],"size":97671,"version":"1.15.8","binstar":{"package_id":"63c9cf42b23346582c9f8563","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"481a21a54fa6cc1180ed8507ab882aa1a6f2a8f1807557185b8d5fe44859cca0"},"ros-noetic-roscpp-serialization-0.7.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-roscpp-traits","ros-noetic-rostime"],"build":"py39hac30774_15","timestamp":1674170111822,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"550937e1821eb5d8dcfe5c37488c7d95","name":"ros-noetic-roscpp-serialization","requires":[],"size":19462,"version":"0.7.2","binstar":{"package_id":"63c9cf43edf45d7c2e28e038","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3be49792677abefcd67cfcb881711f5ca4fcd87bbd968c90813d3f3fd7f40a9e"},"ros-noetic-roscpp-serialization-0.7.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497497105,"md5":"516de5ad2c127de15917dc32215ed5e4","name":"ros-noetic-roscpp-serialization","requires":[],"size":20468,"version":"0.7.3","binstar":{"package_id":"63c9cf43edf45d7c2e28e038","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ecb34a2193a43bec32696f0863ed72263502414a36de6e1669df25a99d68b2d"},"ros-noetic-roscreate-1.15.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roslib","rospkg"],"build":"py39hac30774_15","timestamp":1674170175880,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fbb92bcc19ab7be5b050bef1689f964a","name":"ros-noetic-roscreate","requires":[],"size":21876,"version":"1.15.8","binstar":{"package_id":"63c9cf45dbfac0565a3a6ac0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"031659bfff858925abaac904642291109005b587b1a887afb8dd8256dd83ebc5"},"ros-noetic-roscreate-1.15.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497592965,"md5":"b983cbae5d05113d3b3f719cc295028d","name":"ros-noetic-roscreate","requires":[],"size":23129,"version":"1.15.8","binstar":{"package_id":"63c9cf45dbfac0565a3a6ac0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2bf34b03aafa5fdb2dc3f70ca30ae68cae2edc4a8b075c39a5d6bfd4cc8a47b"},"ros-noetic-libmavconn-1.15.0-py39h5694f4a_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-mavlink"],"build":"py39h5694f4a_15","timestamp":1674170488183,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"48f86f420d78c002146ff767e465167a","name":"ros-noetic-libmavconn","requires":[],"size":194651,"version":"1.15.0","binstar":{"package_id":"63c9d07a59c09271a4412dd5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9279ef5bb3e016a6331d8c1b110dd41e7163044bc578ffb0dda5bb4d63999567"},"ros-noetic-libmavconn-1.17.0-py311hb303436_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb303436_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost","console_bridge >=1.0.2,<1.1.0a0","gtest >=1.14.0,<1.14.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-mavlink"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497778118,"md5":"efcefe3b11252916d45e95ea6979a39f","name":"ros-noetic-libmavconn","requires":[],"size":195357,"version":"1.17.0","binstar":{"package_id":"63c9d07a59c09271a4412dd5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1cf67a3b4374a8057864afb374e8ac8cac233eee5e40351614a782d8cf3d4fbb"},"ros-noetic-roscpp-core-0.7.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rostime"],"build":"py39hac30774_15","timestamp":1674170436599,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d1b7ce885033454f902d3abdb7ff2e1c","name":"ros-noetic-roscpp-core","requires":[],"size":7099,"version":"0.7.2","binstar":{"package_id":"63c9d07c5a31eb90f69fa2b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"72e3e54cd51d93a26d2d6b017ecb7278351ac52e732ae23be163bc1a1045d56c"},"ros-noetic-roscpp-core-0.7.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":false,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497716569,"md5":"b44a4c85e81d9e3827958e2cf69e8793","name":"ros-noetic-roscpp-core","requires":[],"size":7844,"version":"0.7.3","binstar":{"package_id":"63c9d07c5a31eb90f69fa2b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"15c61c458df35dd8d872dd45ac55809d8305d72d218e045a4f56034f67eedd7b"},"ros-noetic-roslz4-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lz4","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674170383365,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"913b47c561bb7c9f4a27dca51e35173c","name":"ros-noetic-roslz4","requires":[],"size":25612,"version":"1.15.15","binstar":{"package_id":"63c9d07c989160afcf922944","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2217b36ed54a6fb58d0799ed115e1d4a6eedbdf7b0fd3d56d46122d7e6039a37"},"ros-noetic-roslz4-1.16.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lz4","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497727708,"md5":"735634e5c700722d76e36bed8663d15f","name":"ros-noetic-roslz4","requires":[],"size":26282,"version":"1.16.0","binstar":{"package_id":"63c9d07c989160afcf922944","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f041709e8f8b287411c2e6077d5326a782a7cb7011477005189fbcd007df80ec"},"ros-noetic-message-runtime-0.4.13-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-genpy","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rostime"],"build":"py39hac30774_15","timestamp":1674170346482,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2a7b16f7b486c7c4422131885c0f9617","name":"ros-noetic-message-runtime","requires":[],"size":10339,"version":"0.4.13","binstar":{"package_id":"63c9d07d2e1172ba3668912d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b5e374fe101d3ee367cfb0555314d13b1f1a228adec82c2d8fc67e9fffcad83"},"ros-noetic-message-runtime-0.4.13-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497697200,"md5":"30bcecc7c16eadf554f9cd44661f212a","name":"ros-noetic-message-runtime","requires":[],"size":11085,"version":"0.4.13","binstar":{"package_id":"63c9d07d2e1172ba3668912d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"00fd29016fdcc4840e9e73d63152bbacadeb387e8218dd024fb15deb8748b3f6"},"ros-noetic-angles-1.9.13-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674170410077,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a3c12c8fc14517de866df8f4fb235afd","name":"ros-noetic-angles","requires":[],"size":20997,"version":"1.9.13","binstar":{"package_id":"63c9d07ecd65eb0e145fe2ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc33d5a0f0da17eb45beff27c0691733f198f9bb6e9d88cb72a9b95e130620bd"},"ros-noetic-angles-1.9.13-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497749285,"md5":"84cb7d589f1a208b3e573bc5fcd3908b","name":"ros-noetic-angles","requires":[],"size":21890,"version":"1.9.13","binstar":{"package_id":"63c9d07ecd65eb0e145fe2ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6220afb4e1577f48e6988b67b4353c617ec5c8a1240f93b9bdc030e815a5414e"},"ros-noetic-rosbuild-1.15.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-message-generation","ros-noetic-message-runtime"],"build":"py39hac30774_15","timestamp":1674170712944,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ab1ca86fee6387d9035cdc1ed6158b32","name":"ros-noetic-rosbuild","requires":[],"size":35419,"version":"1.15.8","binstar":{"package_id":"63c9d1a2cd65eb0e14602947","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30164b8ce5391bed58635919e29a5d58f7a72d6a78dda9a8a9d1e61dfa8776ae"},"ros-noetic-rosbuild-1.15.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497933087,"md5":"1a5ba8146a8b4213354c4d4fa91f11e1","name":"ros-noetic-rosbuild","requires":[],"size":35996,"version":"1.15.8","binstar":{"package_id":"63c9d1a2cd65eb0e14602947","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e5c13e6a56e5f21b2ce4f1195895a1d1962a4f62e4501d70b3148a56800a6a6"},"ros-noetic-rosserial-msgs-0.9.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime"],"build":"py39hac30774_15","timestamp":1674170783728,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"45debe4d63c4e274001f689a5b4ab708","name":"ros-noetic-rosserial-msgs","requires":[],"size":39447,"version":"0.9.2","binstar":{"package_id":"63c9d1a459c09271a4418227","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0572f1cb83d20002afb13a8fb8b69525f34a32f81ba2fdab6a5710ae07bb0386"},"ros-noetic-rosserial-msgs-0.9.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497978230,"md5":"708c615903637ebd1bd8870809e2eecf","name":"ros-noetic-rosserial-msgs","requires":[],"size":40357,"version":"0.9.2","binstar":{"package_id":"63c9d1a459c09271a4418227","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2b5f33b783f4e6a2b0fa0f395f1f006b43eeed9e6110062f63f7e55b59062981"},"ros-noetic-std-msgs-0.5.13-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime"],"build":"py39hac30774_15","timestamp":1674170677638,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c3e58f6cef9c4a60495d293e759a7172","name":"ros-noetic-std-msgs","requires":[],"size":98314,"version":"0.5.13","binstar":{"package_id":"63c9d1a5cd65eb0e146029f9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6e759e806ea9de621a65d9f912fc61e67e871be3e1da7fbf19bafa9399d7e42"},"ros-noetic-std-msgs-0.5.13-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497908296,"md5":"d6f9ebe666c1336b4c58343673105599","name":"ros-noetic-std-msgs","requires":[],"size":92680,"version":"0.5.13","binstar":{"package_id":"63c9d1a5cd65eb0e146029f9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3d09f30465b5cff58d24370bba607f6b9a777fdc5609fd06e2ff47bd0425c41"},"ros-noetic-std-srvs-1.11.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime"],"build":"py39hac30774_15","timestamp":1674170747121,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e68607cf94c1dd977c727693bf0d0ad3","name":"ros-noetic-std-srvs","requires":[],"size":33409,"version":"1.11.3","binstar":{"package_id":"63c9d1a70273ee116affe6e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5872f8c51da8f19e21f0c90f863b116a79f60d1f8073d748fcf39c1fada04d44"},"ros-noetic-std-srvs-1.11.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497955391,"md5":"203c574f88fb5da89759bf6f1f685b76","name":"ros-noetic-std-srvs","requires":[],"size":34009,"version":"1.11.3","binstar":{"package_id":"63c9d1a70273ee116affe6e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"aca83dd78b6f30c62a5e38801d590a052b06fdbad1a09e26f21f592de12c797f"},"ros-noetic-plotjuggler-msgs-0.2.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674170955372,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"be08e8bc7c8f0197ebcefd02aeac161d","name":"ros-noetic-plotjuggler-msgs","requires":[],"size":41610,"version":"0.2.1","binstar":{"package_id":"63c9d24eb23346582ca04240","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27cad78d434a84c69f5e8bcb85fb1aa0c2d05b9ed5b8f3f78670055af7172813"},"ros-noetic-rosbridge-msgs-0.11.16-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674170934937,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d9162aefcb6402ac5c820b6b4a169746","name":"ros-noetic-rosbridge-msgs","requires":[],"size":28297,"version":"0.11.16","binstar":{"package_id":"63c9d2a92e1172ba3668d97b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fd5da5d0095885c75ebdb31420350b00d399140d0f0b9e881a72a722f6f12a24"},"ros-noetic-rosbridge-msgs-0.11.17-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498208069,"md5":"e9ea276a0ff2b1b3cdca6eef233b6dbd","name":"ros-noetic-rosbridge-msgs","requires":[],"size":29245,"version":"0.11.17","binstar":{"package_id":"63c9d2a92e1172ba3668d97b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"447a1e02a696cf54fc1d1b7194ac3efa29b51399b9d3afe11541f4193cc66f7c"},"ros-noetic-jackal-msgs-0.8.5-py39ha182ace_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39ha182ace_3","timestamp":1674171047098,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"50ef707861a7e8dc37ec04862806ea79","name":"ros-noetic-jackal-msgs","requires":[],"size":38469,"version":"0.8.5","binstar":{"package_id":"63c9d2abdbdf733521f38072","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02d61e78dfe4d63f25decaa3656aa795f0988af0743eaa32fae7be1b338c12ed"},"ros-noetic-rosmon-msgs-2.4.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-generation","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674170992494,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cbf4bcaabc82d18f49a860df63086dd6","name":"ros-noetic-rosmon-msgs","requires":[],"size":40915,"version":"2.4.0","binstar":{"package_id":"63c9d2ac2ff78d332e6e2834","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"83379f87c10e5e6e7a59a4f9aad80030956a8a2d312b32d53ca329f841b4fe1e"},"ros-noetic-turtlebot3-msgs-1.0.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674170963542,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"37c50bc8a5e25dfeb6a9a24740bd83e5","name":"ros-noetic-turtlebot3-msgs","requires":[],"size":37674,"version":"1.0.1","binstar":{"package_id":"63c9d2ac8ff1ad27428305d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0da6149e509c342252ef4abeecf1982f1ad2567b020e6319e6798a08ab56f59c"},"ros-noetic-turtlebot3-msgs-1.0.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498162432,"md5":"ecbadac1f73d50ac3aba5cb86f29a7c5","name":"ros-noetic-turtlebot3-msgs","requires":[],"size":38422,"version":"1.0.1","binstar":{"package_id":"63c9d2ac8ff1ad27428305d4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"54732f2dba521f4ceb5e9d978390c0c4fdcc4839f6864b8c43a56373c17ba3ca"},"ros-noetic-nmea-msgs-1.1.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171021494,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"921c09d89d74d2cdcb5588b41d01900e","name":"ros-noetic-nmea-msgs","requires":[],"size":56278,"version":"1.1.0","binstar":{"package_id":"63c9d2ad2ff78d332e6e286a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ddfa1b1bc4f56047f566b5ba0f67d36b9b592af5e5e977aa7749f9f8ce8d2f4"},"ros-noetic-nmea-msgs-1.1.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498198049,"md5":"e901fbc74621fde70b5d3e1cd473dabf","name":"ros-noetic-nmea-msgs","requires":[],"size":57008,"version":"1.1.0","binstar":{"package_id":"63c9d2ad2ff78d332e6e286a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0778781deceadc2a49fdc1cca8126f450256cc4e807c35828f0442bfde2b9167"},"ros-noetic-diagnostic-msgs-1.13.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171079775,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"acdecef9d114c8539c43b44380386040","name":"ros-noetic-diagnostic-msgs","requires":[],"size":52141,"version":"1.13.1","binstar":{"package_id":"63c9d2cacd65eb0e14606152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"17acb2e30ed7f6cccc324e989d6eb58598d196573d85f6af3d5fcd3325ea797d"},"ros-noetic-diagnostic-msgs-1.13.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498224184,"md5":"f05f14aa5e0058c6c3e4fd9bbd56a5d2","name":"ros-noetic-diagnostic-msgs","requires":[],"size":53004,"version":"1.13.1","binstar":{"package_id":"63c9d2cacd65eb0e14606152","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6c105c04deff73b8af9200d2fa0063dcb8c0dcc3e0c498f7a846fb3ea2cd6221"},"ros-noetic-actionlib-msgs-1.13.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171050284,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"67de8fbc80a688d3a2887e9fa31ae1f3","name":"ros-noetic-actionlib-msgs","requires":[],"size":44326,"version":"1.13.1","binstar":{"package_id":"63c9d2cb2ff78d332e6e2bec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69573b650d29386126ece110806d165831b9b63041ada832e9d837767e0ade23"},"ros-noetic-actionlib-msgs-1.13.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498202052,"md5":"24e1c9f8c6878973c4ec6799e4fd1b91","name":"ros-noetic-actionlib-msgs","requires":[],"size":45319,"version":"1.13.1","binstar":{"package_id":"63c9d2cb2ff78d332e6e2bec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bcffa95b8139c22e5676ae3098616ded66deb378616fdcdc7d0845c00f8e9711"},"ros-noetic-geometry-msgs-1.13.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171020366,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"09c38aa351b8a3317b6989d2d448a8dd","name":"ros-noetic-geometry-msgs","requires":[],"size":111222,"version":"1.13.1","binstar":{"package_id":"63c9d2cc5a31eb90f6a04e0f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9fb0ba10fe9f0e549f580a8d8fab21e60344a20de9347c50027121285dfa3633"},"ros-noetic-geometry-msgs-1.13.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498179645,"md5":"72643313c9a140f686e6c282743e601b","name":"ros-noetic-geometry-msgs","requires":[],"size":118104,"version":"1.13.1","binstar":{"package_id":"63c9d2cc5a31eb90f6a04e0f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b1a4ced16ffabd11a8d3203c636ecd19e6062553ec2774f12a2b2e3f47928ed5"},"ros-noetic-rosconsole-1.14.3-py39hc7694d4_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["apr","boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","log4cxx >=0.11.0,<0.11.1.0a0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rosbuild","ros-noetic-rostime"],"build":"py39hc7694d4_15","timestamp":1674170981690,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1e7ab0178e01166ef3a8d541febcf9c9","name":"ros-noetic-rosconsole","requires":[],"size":205267,"version":"1.14.3","binstar":{"package_id":"63c9d2cd912363225b824bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b2bcad01ef7103966b7888d2b2cc8599b10f3401de43a2836de3c9a929e64234"},"ros-noetic-rosconsole-1.14.3-py39hc7694d4_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","apr","boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","log4cxx >=0.11.0,<0.11.1.0a0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rosbuild","ros-noetic-rostime"],"subdir":"linux-64","timestamp":1694895400392,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hc7694d4_16","md5":"a34e92d0a5b0d293e9a0f8663ff2042e","name":"ros-noetic-rosconsole","requires":[],"size":206132,"version":"1.14.3","binstar":{"package_id":"63c9d2cd912363225b824bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a041acb429ede49c36eb08a2b2c3c42340383d940a86ab62aa7c1dbb13f6c5c"},"ros-noetic-rosconsole-1.14.3-py311h0d448f3_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311h0d448f3_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","apr","boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","log4cxx >=1.1.0,<1.1.1.0a0","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-rosbuild","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498150208,"md5":"7690efcc45a7464c4298dbb03a78b800","name":"ros-noetic-rosconsole","requires":[],"size":208354,"version":"1.14.3","binstar":{"package_id":"63c9d2cd912363225b824bbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a5bdde48480f046fe90193e019a4e139b47d5cc8677e500a3f90f740c9b352e"},"ros-noetic-rosgraph-msgs-1.11.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674170931607,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1ca6a1e56b26c830d7d0564043c494cd","name":"ros-noetic-rosgraph-msgs","requires":[],"size":42707,"version":"1.11.3","binstar":{"package_id":"63c9d2cda64974fd099f57ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8e8737a5a9d037009f15dc3a55d7f8b73ee0400adbd7aa8a2a2e976fb666f208"},"ros-noetic-rosgraph-msgs-1.11.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498112673,"md5":"6f6bd887673eae178175bc7efa9d769f","name":"ros-noetic-rosgraph-msgs","requires":[],"size":44143,"version":"1.11.3","binstar":{"package_id":"63c9d2cda64974fd099f57ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7d3d7c9555cabda4c3b07b4d830699542b7f767f93618e36d0d9616967af3fd9"},"ros-noetic-mk-1.15.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosbuild","ros-noetic-rospack"],"build":"py39hac30774_15","timestamp":1674171033021,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a142ba1ce3a884e663bee8d1428ca68a","name":"ros-noetic-mk","requires":[],"size":16482,"version":"1.15.8","binstar":{"package_id":"63c9d2d520c05f5e3908413a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8b90beb52a4409c83a7b676ec328387f43389b8ee84a1247cf4f5c0dde5ef56"},"ros-noetic-mk-1.15.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498187533,"md5":"61b621a67bc6bd77ca94ce4f7f4459b8","name":"ros-noetic-mk","requires":[],"size":17178,"version":"1.15.8","binstar":{"package_id":"63c9d2d520c05f5e3908413a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dfd5768f803796d1ba2c905af874c19fa377c3430254e9db4b7ed19759c71715"},"ros-noetic-bond-1.8.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171001910,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9cef6a2bc68cb3e10af6f67aff40b124","name":"ros-noetic-bond","requires":[],"size":30318,"version":"1.8.6","binstar":{"package_id":"63c9d2d6be293b9e16e89979","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"378099b2a4ab57a8aea6afa20f8eaced85de40a008714c5e272d90f7d9666b3a"},"ros-noetic-bond-1.8.6-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498143926,"md5":"faa42b237218109cb357a79a9aebeeac","name":"ros-noetic-bond","requires":[],"size":31299,"version":"1.8.6","binstar":{"package_id":"63c9d2d6be293b9e16e89979","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c751b8106d89e739e86049f2c1d495335fd8f2f28f4e7537dcef3df79edafbbd"},"ros-noetic-smach-msgs-2.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171090605,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"eb2aa694771478758f49c0ba22a1466b","name":"ros-noetic-smach-msgs","requires":[],"size":37681,"version":"2.5.0","binstar":{"package_id":"63c9d2d8cd65eb0e14606927","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a29eb138a06539ecfd553d0749cb10999f5071e3a854aad369b6d494c3c63533"},"ros-noetic-smach-msgs-2.5.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498140392,"md5":"d068d57c19662e0cdc5d55ba594654f3","name":"ros-noetic-smach-msgs","requires":[],"size":38796,"version":"2.5.2","binstar":{"package_id":"63c9d2d8cd65eb0e14606927","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b97b56c09f517e42be5b04919e255062010ef8f3eeda0b007e4d03ed4859645e"},"ros-noetic-uuid-msgs-1.0.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171060232,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"74652adf9df4c153c1343dc32f3fe448","name":"ros-noetic-uuid-msgs","requires":[],"size":21224,"version":"1.0.6","binstar":{"package_id":"63c9d2da2ff78d332e6e2de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f4bcce4b6b19d39faafcea43012f7bb8149166368bc0a2c52e6c1c4ca965774d"},"ros-noetic-uuid-msgs-1.0.6-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498209393,"md5":"6d78af2926077a008a0eac1a234198cd","name":"ros-noetic-uuid-msgs","requires":[],"size":22147,"version":"1.0.6","binstar":{"package_id":"63c9d2da2ff78d332e6e2de2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6f22dd2b525d78e567567a631f5452b73c15043fa5d013a1074f79a4f979df77"},"ros-noetic-slam-toolbox-msgs-1.5.7-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-std-srvs"],"build":"py39hac30774_15","timestamp":1674171288325,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7c8e0bc1f730df3800a479946b319e4a","name":"ros-noetic-slam-toolbox-msgs","requires":[],"size":53603,"version":"1.5.7","binstar":{"package_id":"63c9d3d95a31eb90f6a0928e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"29925f62750b3c4d94e1fb5aac71be330f03b916fbcd5a24a3f618d78ece042d"},"ros-noetic-slam-toolbox-msgs-1.5.7-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-std-srvs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498406437,"md5":"a2c6b53f41dcf768d43268b817135d22","name":"ros-noetic-slam-toolbox-msgs","requires":[],"size":54205,"version":"1.5.7","binstar":{"package_id":"63c9d3d95a31eb90f6a0928e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d03e4b1d49fa524352476c183d81c8a8c1f3418677c033eca7084bed276b3cc"},"ros-noetic-radar-msgs-0.1.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-uuid-msgs"],"build":"py39hac30774_15","timestamp":1674171350693,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0ad459bed971a40f72879ab06572287b","name":"ros-noetic-radar-msgs","requires":[],"size":48510,"version":"0.1.0","binstar":{"package_id":"63c9d3dbdbdf733521f3ef8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"03de5464227b74de6671ffe7d45075384eefdbf299b46c48140617fe4b0908cc"},"ros-noetic-radar-msgs-0.1.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-uuid-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498384677,"md5":"64a578a470ce3d4a2caa74043485426a","name":"ros-noetic-radar-msgs","requires":[],"size":50228,"version":"0.1.0","binstar":{"package_id":"63c9d3dbdbdf733521f3ef8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f05bdc03acbc306113069744ba756f08e93fa90601aca664cdc98aad3064f635"},"ros-noetic-mbf-abstract-core-0.4.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171252984,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"578498a1af6df3896c333ff32b9bd5d9","name":"ros-noetic-mbf-abstract-core","requires":[],"size":13758,"version":"0.4.0","binstar":{"package_id":"63c9d3dd14201bfa452d8664","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5fb18825d227ffb16eaf36d97def671f4f32704dbfd40b43d660f766daae4fd5"},"ros-noetic-mbf-abstract-core-0.4.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498379673,"md5":"66ff415af9da2cca7156f9b0b59a958a","name":"ros-noetic-mbf-abstract-core","requires":[],"size":14491,"version":"0.4.0","binstar":{"package_id":"63c9d3dd14201bfa452d8664","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5613267963c97f97961a9a1037cca769a8a380c1e250e7e2bc6bcac4bcad7361"},"ros-noetic-ur-msgs-1.3.4-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171319730,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"47178eaa2de4b7bbfc2e2c321aafdd8a","name":"ros-noetic-ur-msgs","requires":[],"size":78484,"version":"1.3.4","binstar":{"package_id":"63c9d3dedbdf733521f3f004","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd676f1468086b5a439b8b91b55a914f2cc93ddf0304c10e49710395b50f8a95"},"ros-noetic-octomap-msgs-0.3.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171382802,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"56ce96d0d3730399a9c3d5c1f63583c2","name":"ros-noetic-octomap-msgs","requires":[],"size":50371,"version":"0.3.5","binstar":{"package_id":"63c9d3f92ff78d332e6f0f39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7002dfc34559f169766cf02e480aae2cf28c14986762698d6c7a7dfe1695ed88"},"ros-noetic-octomap-msgs-0.3.5-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498422659,"md5":"dde637555ed4b41a70181a87c2cf3190","name":"ros-noetic-octomap-msgs","requires":[],"size":52018,"version":"0.3.5","binstar":{"package_id":"63c9d3f92ff78d332e6f0f39","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57dd19375faec80692544511a5923c504874f79706059c9bf11321487f1df90e"},"ros-noetic-resource-retriever-1.12.7-py39he143d7c_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libcurl >=7.87.0,<8.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-roslib","rospkg"],"build":"py39he143d7c_15","timestamp":1674171293572,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cbd0cb79140afefe5b60db76f9734e54","name":"ros-noetic-resource-retriever","requires":[],"size":25029,"version":"1.12.7","binstar":{"package_id":"63c9d3fb2ff78d332e6f0f4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fb79e6b5952d3b3e8a2ead05eac187f107220c8bd6230fc6acfb7e080286c398"},"ros-noetic-resource-retriever-1.12.7-py311hfbeaf8d_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hfbeaf8d_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost","libcurl >=8.5.0,<9.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosconsole","ros-noetic-roslib","rospkg"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498356565,"md5":"335d4fac8902174e7680e146cdb7a953","name":"ros-noetic-resource-retriever","requires":[],"size":26192,"version":"1.12.7","binstar":{"package_id":"63c9d3fb2ff78d332e6f0f4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5fa5302aaf0f0b3fdf38d7afbf53d1c1a1decbd439d4883cbb226263aa5e83ab"},"ros-noetic-trajectory-msgs-1.13.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-rosbag-migration-rule","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171353311,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"62cc4c38f7670f6f84bf75ff3c49d425","name":"ros-noetic-trajectory-msgs","requires":[],"size":48729,"version":"1.13.1","binstar":{"package_id":"63c9d3fc59c09271a442298f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45578ce3f0ccd350bfcfa3de19b7719119494a1ccd33e8a80af16f236be739d1"},"ros-noetic-trajectory-msgs-1.13.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-rosbag-migration-rule","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498400614,"md5":"efd0f503ba042e0fd95b407f26297f37","name":"ros-noetic-trajectory-msgs","requires":[],"size":50417,"version":"1.13.1","binstar":{"package_id":"63c9d3fc59c09271a442298f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bbdc5d1de988e20987e2748db2c09dfa4f2a76ce7b6a9711a635e509c8a60194"},"ros-noetic-visualization-msgs-1.13.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171253257,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"afa86820510993067dafe15c91d1748c","name":"ros-noetic-visualization-msgs","requires":[],"size":129322,"version":"1.13.1","binstar":{"package_id":"63c9d3feedf45d7c2e29a1b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"faafee569dc981fc244af7625c2de58d9a91c405dbc41c6cc33b3ccdfa448c0a"},"ros-noetic-visualization-msgs-1.13.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498329227,"md5":"f40f31d79f2d0189021263e6ae365d54","name":"ros-noetic-visualization-msgs","requires":[],"size":125825,"version":"1.13.1","binstar":{"package_id":"63c9d3feedf45d7c2e29a1b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"219e645d201fa20c66da2826c987653226f670cc1eeb50a771fd8fd462ee09d0"},"ros-noetic-shape-msgs-1.13.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171322549,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c10d056dab0913861bc00c30fff4e2ba","name":"ros-noetic-shape-msgs","requires":[],"size":37533,"version":"1.13.1","binstar":{"package_id":"63c9d400b23346582ca12d15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8217c0f423afdb636ce4c861efee48f4e5a129f1964f37007ef373acd440f92a"},"ros-noetic-shape-msgs-1.13.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498378455,"md5":"8d8f05d50a0e58f602c2939131f38cc8","name":"ros-noetic-shape-msgs","requires":[],"size":38699,"version":"1.13.1","binstar":{"package_id":"63c9d400b23346582ca12d15","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f0a1c80d281c3d6b67338bf8357cc34f482fcfa9e164563b7c842127bc1c56b3"},"ros-noetic-kdl-conversions-1.13.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs"],"build":"py39hac30774_15","timestamp":1674171372896,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5c392ec31fb7fca57eab3b949bd149c2","name":"ros-noetic-kdl-conversions","requires":[],"size":15685,"version":"1.13.2","binstar":{"package_id":"63c9d40ed0e8c095e21f7183","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4cdfa8494720946ddd6ed2e16c385c984c065d0df17a69779d7d023d8b90b9dd"},"ros-noetic-kdl-conversions-1.13.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498387577,"md5":"3e332edd922efef08bc18dbb3343b929","name":"ros-noetic-kdl-conversions","requires":[],"size":16353,"version":"1.13.2","binstar":{"package_id":"63c9d40ed0e8c095e21f7183","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"498f650a83186224a42d6eae7e162919ac02c4c477e6ba9245abbf6448b2e0f8"},"ros-noetic-qt-gui-py-common-0.4.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","rospkg"],"build":"py39hac30774_15","timestamp":1674171344177,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9751380a37985366d8e7ca342d687659","name":"ros-noetic-qt-gui-py-common","requires":[],"size":28980,"version":"0.4.2","binstar":{"package_id":"63c9d40f59c09271a4422ab0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a8b9186c38ee958f85733c767bb4e900a0f9be48bd96036350c7f453c6235e7"},"ros-noetic-qt-gui-py-common-0.4.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-python-qt-binding","rospkg"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498434765,"md5":"dbda181eca621eb05db66402dc6a681e","name":"ros-noetic-qt-gui-py-common","requires":[],"size":30511,"version":"0.4.2","binstar":{"package_id":"63c9d40f59c09271a4422ab0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a1186eb12bec7bbd36339040e393afef1ed1a80d3f500128c82a774a21cb2203"},"ros-noetic-move-base-msgs-1.14.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime"],"build":"py39hac30774_15","timestamp":1674171403905,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5f78cbbdf6311717e23db5b90bbbad03","name":"ros-noetic-move-base-msgs","requires":[],"size":60824,"version":"1.14.1","binstar":{"package_id":"63c9d410912363225b82b9cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9cd0c91731b079e9b4b3aea31737167cf1d75d6c5259eedcd1c9300e3d1df1d2"},"ros-noetic-move-base-msgs-1.14.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498333712,"md5":"27ae55a5ddfc78ac6548aafc5f6f02ae","name":"ros-noetic-move-base-msgs","requires":[],"size":66656,"version":"1.14.1","binstar":{"package_id":"63c9d410912363225b82b9cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"133badf2c7ff90c4c3ac22abbe81268646c2adcc432f3781905f850cbe619f0b"},"ros-noetic-qt-gui-0.4.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyqt >=5.15.7,<5.16.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","rospkg","xorg-libx11","xorg-libxext"],"build":"py39hac30774_15","timestamp":1674171277557,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4800351c30a2c91ea4020ca136d38c06","name":"ros-noetic-qt-gui","requires":[],"size":175744,"version":"0.4.2","binstar":{"package_id":"63c9d410cd65eb0e1460e034","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f7567c744743d5a0b14b856eb060c797bc560c3a98074c6eb0b6d5da64f2d759"},"ros-noetic-qt-gui-0.4.2-py311hf4f0b2d_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hf4f0b2d_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","pyqt >=5.15.9,<5.16.0a0","python","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-python-qt-binding","rospkg","xorg-libx11 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498335829,"md5":"34d62ca29644a5a0763ed5101d17326b","name":"ros-noetic-qt-gui","requires":[],"size":184370,"version":"0.4.2","binstar":{"package_id":"63c9d410cd65eb0e1460e034","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"99f0fe2501af9f04f86a1d04d972eb77780fe7089c19a9b4a587e316ecc13922"},"ros-noetic-eigen-conversions-1.13.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171320210,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d05d25b6f5279429693c46f3acf95cef","name":"ros-noetic-eigen-conversions","requires":[],"size":19203,"version":"1.13.2","binstar":{"package_id":"63c9d411912363225b82b9fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f10014e0e791ecf10244d67a249b8929842174b348b2dfc6316276602ee55dd"},"ros-noetic-eigen-conversions-1.13.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498363588,"md5":"dc594384b87b28df40ee25e1c2cd37de","name":"ros-noetic-eigen-conversions","requires":[],"size":19927,"version":"1.13.2","binstar":{"package_id":"63c9d411912363225b82b9fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ff757f667fc6ddf4a82a58bd8698d94bd06a339f139dfe7b180d9f8257f30cfd"},"ros-noetic-qt-dotgraph-0.4.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pydot","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding"],"build":"py39hac30774_15","timestamp":1674171360547,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b091b377ace8cdf757119e94a41364b8","name":"ros-noetic-qt-dotgraph","requires":[],"size":47037,"version":"0.4.2","binstar":{"package_id":"63c9d42c59c09271a44235bf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12bf0b811b823e774b19bac56bf1f8ffd92412ffdec826916165c68a0414a7ac"},"ros-noetic-qt-dotgraph-0.4.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","pydot","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-python-qt-binding"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498432217,"md5":"593cd17e443ff4f2b4fdf3eece2dca45","name":"ros-noetic-qt-dotgraph","requires":[],"size":49419,"version":"0.4.2","binstar":{"package_id":"63c9d42c59c09271a44235bf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b6946e14138d39845cb93918a3b0ec7cd81f5b09ccd2d6073cc1a04e04f8be23"},"ros-noetic-ros-1.15.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-mk","ros-noetic-rosbash","ros-noetic-rosboost-cfg","ros-noetic-rosbuild","ros-noetic-rosclean","ros-noetic-roscreate","ros-noetic-roslang","ros-noetic-roslib","ros-noetic-rosmake","ros-noetic-rosunit"],"build":"py39hac30774_15","timestamp":1674171287650,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"89bfb7a5bd2107a30faea7d98f6cba89","name":"ros-noetic-ros","requires":[],"size":7645,"version":"1.15.8","binstar":{"package_id":"63c9d42f20c05f5e3908507b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5c2c5ee329539c281bcc9efed182c3c94b4834c8f4cda0eb10ff82b2c1881fa"},"ros-noetic-ros-1.15.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":false,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","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"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498403273,"md5":"c2e6a12ab0ef33f93f75af8cd87aebe2","name":"ros-noetic-ros","requires":[],"size":8390,"version":"1.15.8","binstar":{"package_id":"63c9d42f20c05f5e3908507b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ea316b9b1dfba44601ce90f2cae990fb19fdea5c3013c4e028f44a994625ed78"},"ros-noetic-franka-msgs-0.10.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171433231,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a984dbc2ffbc674c051acd2e22ba69d2","name":"ros-noetic-franka-msgs","requires":[],"size":129426,"version":"0.10.1","binstar":{"package_id":"63c9d4302e1172ba3668f511","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87639693ce65fc8bd93107b745aede5ca8e9bdd5e73968c81421da5f417655a6"},"ros-noetic-roslisp-1.9.24-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ros-environment","ros-noetic-rosgraph-msgs","ros-noetic-roslang","ros-noetic-rospack","ros-noetic-std-srvs","sbcl"],"build":"py39hac30774_15","timestamp":1674171252793,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f6b166be787454cd2f4166380eb3e016","name":"ros-noetic-roslisp","requires":[],"size":126438,"version":"1.9.24","binstar":{"package_id":"63c9d432b23346582ca14049","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f5e9aabd61b3ed7a904b03109b033952923abde50ba60b5a72a0c9c756efe27b"},"ros-noetic-roslisp-1.9.25-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","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"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498380202,"md5":"412b0537e610bd9494e415e5ad653e40","name":"ros-noetic-roslisp","requires":[],"size":125680,"version":"1.9.25","binstar":{"package_id":"63c9d432b23346582ca14049","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e01643e1de377d038b107ce7a49a3890131edda2232775550f57a2d38a92193e"},"ros-noetic-geographic-msgs-0.5.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-uuid-msgs"],"build":"py39hac30774_15","timestamp":1674171395851,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"082620755fd7d1742d2a03effac66183","name":"ros-noetic-geographic-msgs","requires":[],"size":123800,"version":"0.5.6","binstar":{"package_id":"63c9d434c37c80a75b370cc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55293aa11a35288a17ade1acad1758a8ba4463a370f7555013ed03c7be543940"},"ros-noetic-geographic-msgs-0.5.6-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-uuid-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498336545,"md5":"d199cf6d7d3e030bdb6ee9128f2672e5","name":"ros-noetic-geographic-msgs","requires":[],"size":135451,"version":"0.5.6","binstar":{"package_id":"63c9d434c37c80a75b370cc8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a35f79976d7d81dd596a21801046e09c7f998e1e064089b4e246b350713fb6d7"},"ros-noetic-tf2-msgs-0.7.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-generation"],"build":"py39hac30774_15","timestamp":1674171434919,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"68483ac25d32f2809e9c56899e46bc5f","name":"ros-noetic-tf2-msgs","requires":[],"size":76878,"version":"0.7.6","binstar":{"package_id":"63c9d47214201bfa452da7df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7eb10981d4881bb7762049aeb1499a265d65161f827c9738e2b226ed495833ba"},"ros-noetic-tf2-msgs-0.7.7-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-generation"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498450324,"md5":"2004806db245bd977e22788b7e53e868","name":"ros-noetic-tf2-msgs","requires":[],"size":81383,"version":"0.7.7","binstar":{"package_id":"63c9d47214201bfa452da7df","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"44df95a897e64a1b89fca809c7fe0674bf98a8d00f1cf95f57d78e559fe4de49"},"ros-noetic-pluginlib-1.13.0-py39h7534eef_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-class-loader","ros-noetic-rosconsole","ros-noetic-roslib","tinyxml2 >=9.0.0,<10.0a0"],"build":"py39h7534eef_15","timestamp":1674171399481,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1752716c9e094942d051b5b19f29104a","name":"ros-noetic-pluginlib","requires":[],"size":24540,"version":"1.13.0","binstar":{"package_id":"63c9d473a64974fd099fb190","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0ea75053c009b79ae9db86e99beb62b9d7425dc6a9df2e8ee983fd75c077bd9"},"ros-noetic-pluginlib-1.13.0-py39h7534eef_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-class-loader","ros-noetic-rosconsole","ros-noetic-roslib","tinyxml2 >=9.0.0,<10.0a0"],"subdir":"linux-64","timestamp":1694897318027,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39h7534eef_16","md5":"67627ddf74cafbc66da83e905c10605b","name":"ros-noetic-pluginlib","requires":[],"size":25274,"version":"1.13.0","binstar":{"package_id":"63c9d473a64974fd099fb190","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df3cab5f6f399a1b87df357a294fceb09e01ebeaaf007e64a6161cb19306f64f"},"ros-noetic-pluginlib-1.13.0-py311hfc76a15_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hfc76a15_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-class-loader","ros-noetic-rosconsole","ros-noetic-roslib","tinyxml2 >=10.0.0,<11.0a0"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498424491,"md5":"67547ade68b0ac415ae53e6385fb73bb","name":"ros-noetic-pluginlib","requires":[],"size":25228,"version":"1.13.0","binstar":{"package_id":"63c9d473a64974fd099fb190","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f045d3c2e0c0c7439ac9b0cefa28506ecd87c3c8e3d57891bdb0356716c09aa"},"ros-noetic-roscpp-1.15.15-py39h873cbd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-rosgraph-msgs","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-xmlrpcpp"],"build":"py39h873cbd0_15","timestamp":1674644001770,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b34cc6fe2a3255d1aa094b8607d75936","name":"ros-noetic-roscpp","requires":[],"size":662971,"version":"1.15.15","binstar":{"package_id":"63c9d475cd65eb0e14610f5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d4f302040cd285e882e81aba2d387ef507a40585b1b25b0d7f97956b44614af0"},"ros-noetic-roscpp-1.16.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","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"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498402378,"md5":"654ab44bf4a6004e41b4cf4b6848ccd4","name":"ros-noetic-roscpp","requires":[],"size":697053,"version":"1.16.0","binstar":{"package_id":"63c9d475cd65eb0e14610f5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2aabc5ca80a4d8d394c1f88932e1f802921ca382079eb59ae1eaaff924ec754a"},"ros-noetic-nav-msgs-1.13.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171503115,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"20c69f7c499c3b6bcbb6bdb819aadfb3","name":"ros-noetic-nav-msgs","requires":[],"size":116943,"version":"1.13.1","binstar":{"package_id":"63c9d4778ff1ad274283e3b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"211679cec4eb9d8861b8808425cfa2bf27f29e44100b395e4b43b40b5e856355"},"ros-noetic-nav-msgs-1.13.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498503544,"md5":"ec29b7e4ecf5c5e33d11f6c5744720f5","name":"ros-noetic-nav-msgs","requires":[],"size":134775,"version":"1.13.1","binstar":{"package_id":"63c9d4778ff1ad274283e3b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f0f9347931e424a514a6bc27d3955e093a5386e09dc69980f0591afe4259a26a"},"ros-noetic-rosconsole-bridge-0.5.4-py39ha661dd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-rosconsole"],"build":"py39ha661dd0_15","timestamp":1674171467978,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3a4784d39e06993b182c5555d8535820","name":"ros-noetic-rosconsole-bridge","requires":[],"size":19091,"version":"0.5.4","binstar":{"package_id":"63c9d4795a31eb90f6a10e88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"50287f81e685086aa7732c79f907076c6b7d0367dc18caac97d8dd9b3e34ddf9"},"ros-noetic-rosconsole-bridge-0.5.4-py311hb303436_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb303436_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-rosconsole"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498476242,"md5":"653ccbd9b549565a05d6ae260cb5c20f","name":"ros-noetic-rosconsole-bridge","requires":[],"size":20247,"version":"0.5.4","binstar":{"package_id":"63c9d4795a31eb90f6a10e88","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"061ba81dbf14ef633f3aae806c20a99dc1f5dee0fe8d8644de7913cf9ebd08fb"},"ros-noetic-tf2-0.7.6-py39ha661dd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rostime","ros-noetic-tf2-msgs"],"build":"py39ha661dd0_15","timestamp":1674171747395,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9a5f8a664c941cf12ed5f194aa06d161","name":"ros-noetic-tf2","requires":[],"size":124058,"version":"0.7.6","binstar":{"package_id":"63c9d5c02ff78d332e6f5991","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04320c162b6e9a9feef9e26a75fb9a7feabe61b1c43e5db3dff345f4ca85f06e"},"ros-noetic-geometric-shapes-0.7.3-py39h470332f_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","console_bridge >=1.0.2,<1.1.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qhull >=2020.2,<2020.3.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-stl-containers","ros-noetic-octomap","ros-noetic-random-numbers","ros-noetic-resource-retriever","ros-noetic-shape-msgs","ros-noetic-visualization-msgs"],"build":"py39h470332f_15","timestamp":1674171799734,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5b43de275546232920a9475c47774546","name":"ros-noetic-geometric-shapes","requires":[],"size":109763,"version":"0.7.3","binstar":{"package_id":"63c9d5c18ff1ad2742841c2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5cdb2cd45c1478eedd6cd2031e3133f413b6d3baec19ba302048f52b78e0b35"},"ros-noetic-geometric-shapes-0.7.5-py39h36a639c_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","console_bridge >=1.0.2,<1.1.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qhull >=2020.2,<2020.3.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-stl-containers","ros-noetic-fcl","ros-noetic-octomap","ros-noetic-random-numbers","ros-noetic-resource-retriever","ros-noetic-shape-msgs","ros-noetic-visualization-msgs"],"subdir":"linux-64","timestamp":1698187700616,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39h36a639c_16","md5":"14678006ecf1b266fafff5cd784b1dc4","name":"ros-noetic-geometric-shapes","requires":[],"size":119899,"version":"0.7.5","binstar":{"package_id":"63c9d5c18ff1ad2742841c2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"54f8f409da5c283284a552a5ca0d507e953adc1f985249f49ee5165792449099"},"ros-noetic-voxel-grid-1.17.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674171837628,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"62cfa73fed49b4477c0f774cc23ad434","name":"ros-noetic-voxel-grid","requires":[],"size":24440,"version":"1.17.3","binstar":{"package_id":"63c9d5c1edf45d7c2e29da9e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da718549996b09c927cc540258faf63261fd79ab9756eb580c4726cfe94a0182"},"ros-noetic-rosout-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rosgraph-msgs"],"build":"py39hac30774_15","timestamp":1674171679494,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4a018618019836f11b7c8649f370a27c","name":"ros-noetic-rosout","requires":[],"size":49345,"version":"1.15.15","binstar":{"package_id":"63c9d5c220c05f5e390870d7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7fa39ceb870d8b1740b621a83921378e9ab1c4ee71317139c8ec4c9acfc72a37"},"ros-noetic-rospy-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genpy","ros-noetic-roscpp","ros-noetic-rosgraph","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-std-msgs","rospkg"],"build":"py39hac30774_15","timestamp":1674171708109,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a0f8f4085d8695a9ca86d650fc13e1b5","name":"ros-noetic-rospy","requires":[],"size":255619,"version":"1.15.15","binstar":{"package_id":"63c9d5c3edf45d7c2e29daae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"51a57fd712adf5fd391dcc158e23090d9ec510a978134f99ae402d879981da1d"},"ros-noetic-rosfmt-7.0.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674171779644,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"130e0b5efa60be122f134a63336ec989","name":"ros-noetic-rosfmt","requires":[],"size":199796,"version":"7.0.0","binstar":{"package_id":"63c9d8100273ee116a012a19","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5a446639c47f869b47238feb5d8494c0cc8889ef6e4f26fc8e6f24928abe555"},"ros-noetic-catch-ros-0.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674171837401,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"edf4da5434c5a82a3aa1661c92ba361a","name":"ros-noetic-catch-ros","requires":[],"size":804151,"version":"0.5.0","binstar":{"package_id":"63c9d81268b198bb9597e7fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5b4d05ceda42389f0b0ae6c0f5ca8a58c34672669545b5eb8df5a10d70cf647b"},"ros-noetic-catch-ros-0.5.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498703021,"md5":"db5c4ec6980ba85e82ac92e62f8d0a74","name":"ros-noetic-catch-ros","requires":[],"size":788317,"version":"0.5.0","binstar":{"package_id":"63c9d81268b198bb9597e7fd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"90ae8153d8852d44204494678f7f844f3ce60d73d3c7db492777ad59bf7049d2"},"ros-noetic-plotjuggler-3.6.0-py39h53b1bd3_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["binutils","boost >=1.78.0,<1.78.1.0a0","cppzmq","elfutils >=0.188,<0.189.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lz4","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-roslib","xorg-libx11","xorg-libxext","zeromq >=4.3.4,<4.4.0a0","zstd >=1.5.2,<1.6.0a0"],"build":"py39h53b1bd3_15","timestamp":1674172372230,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c8ca2aef3b7f94fda541a2fc4a1cce6a","name":"ros-noetic-plotjuggler","requires":[],"size":114603647,"version":"3.6.0","binstar":{"package_id":"63c9d8210273ee116a012b1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc8f870b47d620bb01bcf21d3b123aecd54212bf847901f6bbd8254b082da77b"},"ros-noetic-plotjuggler-3.8.9-py311h96dbc1f_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311h96dbc1f_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","binutils","boost","cppzmq","elfutils >=0.189,<0.190.0a0","libgcc-ng >=12","libgcc-ng >=12","libprotobuf >=4.24.4,<4.24.5.0a0","libstdcxx-ng >=12","lz4","numpy >=1.23.5,<2.0a0","protobuf","python","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-roscpp","ros-noetic-roslib","xorg-libx11 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0","zeromq >=4.3.5,<4.4.0a0","zstd >=1.5.5,<1.6.0a0"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706499089941,"md5":"402788864dd1706a27bd1c21bac86803","name":"ros-noetic-plotjuggler","requires":[],"size":11172036,"version":"3.8.9","binstar":{"package_id":"63c9d8210273ee116a012b1b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7fc35922ba654ad08b836f316187616a81474fb4ca98308341661f3d0ccf656b"},"ros-noetic-sparse-bundle-adjustment-0.4.4-py39h49f1c20_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libblas >=3.9.0,<4.0a0","libcblas >=3.9.0,<4.0a0","libgcc-ng >=12","libgcc-ng >=12","liblapack >=3.9.0,<4.0a0","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","suitesparse >=5.10.1,<6.0a0"],"build":"py39h49f1c20_15","timestamp":1674171738488,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5bb7f22b4d6a771f65fbf892daf79299","name":"ros-noetic-sparse-bundle-adjustment","requires":[],"size":194652,"version":"0.4.4","binstar":{"package_id":"63c9d8248ff1ad274284ce7b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e1b425c2332bc7d10dd1efc503fab4e39f1b8a17fcd4ac7a217681d27d8eaf5"},"ros-noetic-sparse-bundle-adjustment-0.4.4-py311hc3f6ffa_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hc3f6ffa_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","eigen","libblas >=3.9.0,<4.0a0","libcblas >=3.9.0,<4.0a0","libgcc-ng >=12","libgcc-ng >=12","liblapack >=3.9.0,<4.0a0","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roscpp","suitesparse >=5.10.1,<6.0a0"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498632710,"md5":"ca192e5077624314c6c3e00208713a5e","name":"ros-noetic-sparse-bundle-adjustment","requires":[],"size":198793,"version":"0.4.4","binstar":{"package_id":"63c9d8248ff1ad274284ce7b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c34d58110af1a47e0b7346f15ae35fbd4a40ab9d92b9ab23ae45651fea742e78"},"ros-noetic-mbf-msgs-0.4.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674171670483,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"410f72c97f8b423f037537466d66bf2e","name":"ros-noetic-mbf-msgs","requires":[],"size":210094,"version":"0.4.0","binstar":{"package_id":"63c9d826dbdf733521f617cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c5b0ad063b81b491726d4aaf6cbff3dbc84bfd2d65d670619d87e4dac06ec88"},"ros-noetic-mbf-msgs-0.4.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498702305,"md5":"d449c69d08c8595dd97928f93bf4c0ef","name":"ros-noetic-mbf-msgs","requires":[],"size":229028,"version":"0.4.0","binstar":{"package_id":"63c9d826dbdf733521f617cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a34b3321b0b69410a83ff3f05d17fb6e48160096afb941b8d465b94b7bae044"},"ros-noetic-roscpp-tutorials-0.10.2-py39h873cbd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-rostime","ros-noetic-std-msgs"],"build":"py39h873cbd0_15","timestamp":1674177009657,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c9fea4dd145c6aea21044efa25e827e3","name":"ros-noetic-roscpp-tutorials","requires":[],"size":266322,"version":"0.10.2","binstar":{"package_id":"63c9e0c65a31eb90f6a59ee0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dc3a1291bd488bca54ad4159ecdb9193a3ae38b510d4d1dcf2690660b9a6c944"},"ros-noetic-roscpp-tutorials-0.10.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","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"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498685922,"md5":"87696200300376256a6fd40de3fa2086","name":"ros-noetic-roscpp-tutorials","requires":[],"size":260049,"version":"0.10.2","binstar":{"package_id":"63c9e0c65a31eb90f6a59ee0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f48032afce144675f1d261d9f7c252832e44cbb350f9fe45a1fd92bcfd2cfd8a"},"ros-noetic-bondpy-1.8.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libuuid","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-smclib"],"build":"py39hac30774_15","timestamp":1674176931377,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2937335f820dd9b05b1f148c809a5b58","name":"ros-noetic-bondpy","requires":[],"size":29461,"version":"1.8.6","binstar":{"package_id":"63c9e0c768b198bb95994813","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bac2ff524e01441129479b07c558ec0165cee2d8653c74cc1153e5a682b55e6e"},"ros-noetic-control-msgs-1.5.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","ros-noetic-trajectory-msgs"],"build":"py39hac30774_15","timestamp":1674177061622,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0bf33e237ef77c2686d9d77a2a50cbe5","name":"ros-noetic-control-msgs","requires":[],"size":217770,"version":"1.5.2","binstar":{"package_id":"63c9e0c8cd65eb0e1465198b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d77429f7189d07e052cc9254485658c80084c1fc1451c3853fa34ee260d67b9"},"ros-noetic-control-msgs-1.5.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","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"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498918585,"md5":"b30a8b91f84830e97beb9944d67619a0","name":"ros-noetic-control-msgs","requires":[],"size":243181,"version":"1.5.2","binstar":{"package_id":"63c9e0c8cd65eb0e1465198b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9afffb2ed53ce5182cf090df9d8886fc3bdc3c727dcb1f70c64d9469b0a7df41"},"ros-noetic-urdfdom-py-0.4.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy"],"build":"py39hac30774_15","timestamp":1674176946474,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bc037943b0ce82b1e7d5b45c398d5fca","name":"ros-noetic-urdfdom-py","requires":[],"size":58898,"version":"0.4.6","binstar":{"package_id":"63c9e0f55a31eb90f6a5ab76","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d8582ccba6a5d8be44b0e9e5f200c496bfd0641e83c58a858980e61dfe14c9d"},"ros-noetic-roslaunch-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","paramiko","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosclean","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-rosmaster","ros-noetic-rosout","ros-noetic-rosparam","ros-noetic-rosunit","rospkg"],"build":"py39hac30774_15","timestamp":1674176866865,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f17f26db7d018e7c0d6e7a97f819fc69","name":"ros-noetic-roslaunch","requires":[],"size":253447,"version":"1.15.15","binstar":{"package_id":"63c9e0f72b70bce830774a1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c11152c2b4391c9ccc7b70d92ce34239514e1d620b69f79e1aaea4016f6072db"},"ros-noetic-roslaunch-1.16.0-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","paramiko","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosclean","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-rosmaster","ros-noetic-rosout","ros-noetic-rosparam","ros-noetic-rosunit","rospkg"],"subdir":"linux-64","timestamp":1694897286527,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"7c1fb02a475c19429366dbe7a12d3756","name":"ros-noetic-roslaunch","requires":[],"size":259595,"version":"1.16.0","binstar":{"package_id":"63c9e0f72b70bce830774a1e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5b1c56312f3148ef0d947faf07885df3946630b0603bc30aa1e194f1801dbe41"},"ros-noetic-tf2-eigen-0.7.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-tf2"],"build":"py39hac30774_15","timestamp":1674176981178,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"31d698bfc6fce4d3e6a24c5e57f9cb75","name":"ros-noetic-tf2-eigen","requires":[],"size":13838,"version":"0.7.6","binstar":{"package_id":"63c9ea252ff78d332e775793","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"06cffe8e575ed0b6ca12b9b1e6c02cff6b429b66c1e285a792f8d94a36de6275"},"ros-noetic-tf2-py-0.7.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-tf2"],"build":"py39hac30774_15","timestamp":1674176916566,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"67ac1e491728ac7ea1f8dff8b4fa72fa","name":"ros-noetic-tf2-py","requires":[],"size":260437,"version":"0.7.6","binstar":{"package_id":"63c9ea2859c09271a4483f0a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"87d2742e39d4a4ac40f26ae84d2a5f91133c79d78caa641cddcc86562075d3cf"},"ros-noetic-rqt-gui-0.5.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","rospkg"],"build":"py39hac30774_15","timestamp":1674177057992,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ce40d5f52d0ef53fc5debcb65c1892bc","name":"ros-noetic-rqt-gui","requires":[],"size":114426,"version":"0.5.3","binstar":{"package_id":"63c9ea292ff78d332e775808","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"98262690da756b48ca216f0855b90efe396389346ce109d05d0a780fc56f3239"},"ros-noetic-bondcpp-1.8.6-py39hdfadedc_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libuuid >=2.32.1,<3.0a0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bond","ros-noetic-roscpp","ros-noetic-smclib"],"build":"py39hdfadedc_15","timestamp":1674176859396,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"61b697b597baf7955eabf2bf97c83473","name":"ros-noetic-bondcpp","requires":[],"size":75021,"version":"1.8.6","binstar":{"package_id":"63c9ea2dcd65eb0e1468189a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f647e798e699116010fac02e5aa51cdd72d21086c7cd49501f2c1f456fe8564"},"ros-noetic-bondcpp-1.8.6-py311hc091ac8_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hc091ac8_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libuuid >=2.38.1,<3.0a0","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-bond","ros-noetic-roscpp","ros-noetic-smclib"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498617270,"md5":"6e837f71a1b10e68abb4df76db5b6120","name":"ros-noetic-bondcpp","requires":[],"size":75391,"version":"1.8.6","binstar":{"package_id":"63c9ea2dcd65eb0e1468189a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5258f641b48c0e5050d9b7f3e71485f256fe5ab744bc40b226a74048f9d58f86"},"ros-noetic-hardware-interface-0.19.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674176893120,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"45865e7f09daefce10560fd4fbebeeb1","name":"ros-noetic-hardware-interface","requires":[],"size":24618,"version":"0.19.6","binstar":{"package_id":"63c9ea2ddbdf733521fe7e7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b3a7a0dfe59d86a229c76fad33754a94645d1954b20b88082c77324f014a6eb9"},"ros-noetic-hardware-interface-0.20.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498638608,"md5":"f85106cf855d2fb70dc9caacaef2e79b","name":"ros-noetic-hardware-interface","requires":[],"size":25949,"version":"0.20.0","binstar":{"package_id":"63c9ea2ddbdf733521fe7e7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e8076194e77a07e43fedf236ad067d410c75a9b33f52631ff7030a5a89ac149c"},"ros-noetic-dynamixel-sdk-3.7.51-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rospy"],"build":"py39hac30774_15","timestamp":1674177946507,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2b19cb903d4aa8bb21861bebd8a0e679","name":"ros-noetic-dynamixel-sdk","requires":[],"size":109313,"version":"3.7.51","binstar":{"package_id":"63c9edc8912363225b8c59a2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"658f269b71f1045ea5a6d6d97daaa1c8674b5e18b6e5102e979b92ad6012f731"},"ros-noetic-tf2-bullet-0.7.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["bullet","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-tf2"],"build":"py39hac30774_15","timestamp":1674177989665,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d0cf0614611378a77d179ac25591b592","name":"ros-noetic-tf2-bullet","requires":[],"size":12402,"version":"0.7.6","binstar":{"package_id":"63c9edc90273ee116a06ee2d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"53a19f76960e8c86dbf1e9d95db351f6fd8b7a00ee78040f63df58c07b87f0dd"},"ros-noetic-rostest-1.15.15-py39h873cbd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph","ros-noetic-roslaunch","ros-noetic-rosmaster","ros-noetic-rospy","ros-noetic-rosunit"],"build":"py39h873cbd0_15","timestamp":1674177937219,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"308e5041102f7d88f2037aed4cbbf2c2","name":"ros-noetic-rostest","requires":[],"size":50927,"version":"1.15.15","binstar":{"package_id":"63c9ee545a31eb90f6aa0eee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a52dec427217d11180f5b5aff6c5490a8d3d6d999daa90ed1ec4b7a4d125328"},"ros-noetic-controller-interface-0.19.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hardware-interface","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674178130486,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"351587f2aa2834e1c71b6108486b9246","name":"ros-noetic-controller-interface","requires":[],"size":17251,"version":"0.19.6","binstar":{"package_id":"63c9ee55a64974fd09a528b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0eb5c10dd86363f2173e9b70d0cfbeb429f0e92a2f44597f5d7e64260e7ab7d1"},"ros-noetic-controller-interface-0.20.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-hardware-interface","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706573281410,"md5":"3ec1886d5d90c020a267fad9d56049ae","name":"ros-noetic-controller-interface","requires":[],"size":18020,"version":"0.20.0","binstar":{"package_id":"63c9ee55a64974fd09a528b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5450e8510dc0e402b26fd69223a88720142199429fcff9279122095dbebe8fb6"},"ros-noetic-rqt-gui-py-0.5.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui"],"build":"py39hac30774_15","timestamp":1674178046795,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"eb2641aeb4d6ea7c204e0e5729884e10","name":"ros-noetic-rqt-gui-py","requires":[],"size":19296,"version":"0.5.3","binstar":{"package_id":"63c9ee5620c05f5e390ad6e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a16f7294a200027516265c1ccee2cde1e4804d738d086ff79dcdffc9c5ed2cf8"},"ros-noetic-nodelet-1.10.2-py39h25a5627_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libuuid >=2.32.1,<3.0a0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bondcpp","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs"],"build":"py39h25a5627_15","timestamp":1674178100228,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"acf4f1df96cc1053527821373e544397","name":"ros-noetic-nodelet","requires":[],"size":213236,"version":"1.10.2","binstar":{"package_id":"63c9ee58dbdf733521006697","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7b1d51d3329c9ef093161706723e09a3a41ed4ba5b0354533fd4ca1e7ed250db"},"ros-noetic-nodelet-1.10.2-py39h4420ab6_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libuuid >=2.38.1,<3.0a0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bondcpp","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1694898889751,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39h4420ab6_16","md5":"f403783a0bc4727bb942fe90cf61243d","name":"ros-noetic-nodelet","requires":[],"size":214519,"version":"1.10.2","binstar":{"package_id":"63c9ee58dbdf733521006697","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1203127af68d0e0034bf9983bca6310617aa054a1d6962671ca05ca5b6ad61be"},"ros-noetic-combined-robot-hw-0.19.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hardware-interface","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674178045633,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2402b310a75acaa5878f7e842061fb5b","name":"ros-noetic-combined-robot-hw","requires":[],"size":97626,"version":"0.19.6","binstar":{"package_id":"63c9ee81dbdf733521008d23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82f190f2fff8137c2b24e8950dc0382f6cb88743e554e5fc9ca6130778df20dd"},"ros-noetic-combined-robot-hw-0.20.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-hardware-interface","ros-noetic-pluginlib","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706573406988,"md5":"06d88327ca80e526cf0ecce2d51f2b77","name":"ros-noetic-combined-robot-hw","requires":[],"size":95909,"version":"0.20.0","binstar":{"package_id":"63c9ee81dbdf733521008d23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2b0bbfa6cc41f4eb12cb23c71b9267f337dc319a1c05aabfdc7ad487f40add17"},"ros-noetic-transmission-interface-0.19.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hardware-interface","ros-noetic-pluginlib","ros-noetic-roscpp","tinyxml"],"build":"py39hac30774_15","timestamp":1674177974392,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2b60f8d215f9ff41dbbcaba6ff78b16e","name":"ros-noetic-transmission-interface","requires":[],"size":310021,"version":"0.19.6","binstar":{"package_id":"63c9ee82d0e8c095e22b08f1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b7afeaca5df19b3c0a9ed55597676652b01b2f1336e6d3bc04b3c777eb6fd28e"},"ros-noetic-transmission-interface-0.20.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-hardware-interface","ros-noetic-pluginlib","ros-noetic-roscpp","tinyxml"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706573372777,"md5":"58e909d85f168ac651bee47ead760681","name":"ros-noetic-transmission-interface","requires":[],"size":313272,"version":"0.20.0","binstar":{"package_id":"63c9ee82d0e8c095e22b08f1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eea5e87b57ab3aea3ff3cc685af5aa750dab7c136f5533157625c3af4f2a4fe3"},"ros-noetic-rosserial-python-0.9.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyserial","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-rospy","ros-noetic-rosserial-msgs"],"build":"py39hac30774_15","timestamp":1674178004956,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"13239a13aeae816770317865ad5686bf","name":"ros-noetic-rosserial-python","requires":[],"size":45159,"version":"0.9.2","binstar":{"package_id":"63c9ee832ff78d332e79491f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f33c1b6f4efb2a234da36779754b6c62e7d0178c1841fcbe27c4176cf000761d"},"ros-noetic-bond-core-1.8.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bond","ros-noetic-bondcpp","ros-noetic-bondpy","ros-noetic-smclib"],"build":"py39hac30774_15","timestamp":1674178071592,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c352c2dfb1d3b2e9c3e6ab689fa85d2f","name":"ros-noetic-bond-core","requires":[],"size":7608,"version":"1.8.6","binstar":{"package_id":"63c9ee848ff1ad27428eb132","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dca7add7903e7a225ed221ae4a1a9699abac66cff02a8775217927076492ed35"},"ros-noetic-turtlesim-0.10.2-py39h873cbd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-roslib","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-std-srvs","xorg-libx11","xorg-libxext"],"build":"py39h873cbd0_15","timestamp":1674178173762,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"deaf3492ca08c084a6705bb0a46ac368","name":"ros-noetic-turtlesim","requires":[],"size":295391,"version":"0.10.2","binstar":{"package_id":"63c9ee84989160afcf9b82d0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"167f0830fe95265b0d6a11d4d3fc10756236216e0057f6897d947f87a08c2f77"},"ros-noetic-turtlesim-0.10.2-py311h27406db_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311h27406db_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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-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 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498739216,"md5":"2928698af3b07064cfc8aaeec4bf88c9","name":"ros-noetic-turtlesim","requires":[],"size":292381,"version":"0.10.2","binstar":{"package_id":"63c9ee84989160afcf9b82d0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"995262c3acd22f361891bfabad21ac75e4cbe15a5dc763c3a1ffccb30fe154dc"},"ros-noetic-kdl-parser-py-1.14.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python-orocos-kdl","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdfdom-py"],"build":"py39hac30774_15","timestamp":1674178841040,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f9970e4409c0c0d5388faf7b55e756e4","name":"ros-noetic-kdl-parser-py","requires":[],"size":19305,"version":"1.14.2","binstar":{"package_id":"63c9f11bd0e8c095e22c66eb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a9d5d80d1b4c81688262dfc3947714660083ee9ed3a3bf51994226f55d6a5035"},"ros-noetic-pluginlib-tutorials-0.2.0-py39ha182ace_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.* noetic","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39ha182ace_15","timestamp":1674178913091,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3b7756b870ee3a224fbb61cf6eca1ff6","name":"ros-noetic-pluginlib-tutorials","requires":[],"size":100709,"version":"0.2.0","binstar":{"package_id":"63c9f1925a31eb90f6ab6c03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d1c4c965237b260f876c1abee64d78bcbfcb476976e900fc644958dc4ea22d97"},"ros-noetic-pluginlib-tutorials-0.2.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-pluginlib","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498673075,"md5":"07d08d1b0792220c3bc9e787d2a6400f","name":"ros-noetic-pluginlib-tutorials","requires":[],"size":91074,"version":"0.2.0","binstar":{"package_id":"63c9f1925a31eb90f6ab6c03","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b0aed6b57b7a34ce0c4c03c2a8f79abeb0c0aab598ff1dd18b9278c71b49b618"},"ros-noetic-rqt-top-0.4.10-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","psutil","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py"],"build":"py39hac30774_15","timestamp":1674178951362,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"939b62ec3fb49cc8be0ac57cb987395c","name":"ros-noetic-rqt-top","requires":[],"size":27960,"version":"0.4.10","binstar":{"package_id":"63c9f1a25a31eb90f6ab77f6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e97d218ad24738c53955d0671d028995abd5ffb53466f20f285f12a6a586f05b"},"ros-noetic-rospy-tutorials-0.10.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rospy","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674178844113,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"82d54bd9dac7215aaba0551012c54b88","name":"ros-noetic-rospy-tutorials","requires":[],"size":56200,"version":"0.10.2","binstar":{"package_id":"63c9f1a3c37c80a75b45311d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0995cb70361d5430e7285eefe50c42ff64e39fc84172f008dc00226c021eea58"},"ros-noetic-rqt-runtime-monitor-0.5.9-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39hac30774_15","timestamp":1674178896744,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ece76bf5ca241bc532536f9ce59b346c","name":"ros-noetic-rqt-runtime-monitor","requires":[],"size":29062,"version":"0.5.9","binstar":{"package_id":"63c9f1a5a64974fd09a5942b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"55e9830dd70bb12f36d202a4d808cc5490320d3f96325da32678f6bb9a6354a8"},"ros-noetic-rqt-web-0.4.10-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-webkit-dependency","rospkg"],"build":"py39hac30774_15","timestamp":1674178925596,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a02b85a792ef565b64c04ce6a40f68de","name":"ros-noetic-rqt-web","requires":[],"size":23989,"version":"0.4.10","binstar":{"package_id":"63c9f1a6dbdf733521024dae","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"12f240bdab6fb32fa2c296b98d26ce24660c437c50493800cc1372b39ea51340"},"ros-noetic-rqt-shell-0.4.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39hac30774_15","timestamp":1674178976724,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8b16176ab5c3a8c15c221a029f9490a6","name":"ros-noetic-rqt-shell","requires":[],"size":29264,"version":"0.4.11","binstar":{"package_id":"63c9f1a7b05590e2b1c00213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ad3ccfe96e0886284750b5fac9afaa45661db326eb25e9b43f38b1d31667b794"},"ros-noetic-hector-map-tools-0.5.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nav-msgs"],"build":"py39hac30774_15","timestamp":1674179044684,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"06b2c4f5f7ac028914ff950342e08779","name":"ros-noetic-hector-map-tools","requires":[],"size":13996,"version":"0.5.2","binstar":{"package_id":"63c9f21959c09271a44a4e57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cfbc4204283f8b13acf74eea34b47e37a6f9aa67d1ade450ca2cc5925f5805fc"},"ros-noetic-hector-map-tools-0.5.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-nav-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498610508,"md5":"794b2de982c438e900564e368c8dc8aa","name":"ros-noetic-hector-map-tools","requires":[],"size":14747,"version":"0.5.2","binstar":{"package_id":"63c9f21959c09271a44a4e57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1cfe25005da175cefe1b1e0004e97b2a9f5ab13ff9ebea3e2f5bc722452e7c0c"},"ros-noetic-visualization-marker-tutorials-0.11.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-visualization-msgs"],"build":"py39hac30774_15","timestamp":1674179093593,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cf54c19f01c5516e0ff4d507c14079dc","name":"ros-noetic-visualization-marker-tutorials","requires":[],"size":39051,"version":"0.11.0","binstar":{"package_id":"63c9f21959c09271a44a4e6d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9919789281e2945792b173401241aff1377694179abbb3d71877dde4856979d4"},"ros-noetic-visualization-marker-tutorials-0.11.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roscpp","ros-noetic-visualization-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498640639,"md5":"76c199c489c862e4bb702e98978ef1ea","name":"ros-noetic-visualization-marker-tutorials","requires":[],"size":36569,"version":"0.11.0","binstar":{"package_id":"63c9f21959c09271a44a4e6d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8e67bca2a084a9e70ff7df77bc321cfe5222f79cc6c9aee192bc5f601543f7fe"},"ros-noetic-rqt-py-console-0.4.10-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39hac30774_15","timestamp":1674178906846,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b1a45b1e8a5260b49da32612d8cdd515","name":"ros-noetic-rqt-py-console","requires":[],"size":23820,"version":"0.4.10","binstar":{"package_id":"63c9f21ac37c80a75b4552b6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b81aeafad5f250c74f927553bd61d476950612e037eee8d33e8236c5dbef5d7b"},"ros-noetic-hector-nav-msgs-0.5.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674179008472,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6f0ca20e04a2be49b2dff88e6765be52","name":"ros-noetic-hector-nav-msgs","requires":[],"size":60680,"version":"0.5.2","binstar":{"package_id":"63c9f21b2ff78d332e7a8c50","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ba354a1cd1ee09a4a55cb8d97a44a552041a9a2b2bc3c760af9e663827e5263c"},"ros-noetic-hector-nav-msgs-0.5.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498764182,"md5":"78614817a2fa9690aebfb33953b94532","name":"ros-noetic-hector-nav-msgs","requires":[],"size":63690,"version":"0.5.2","binstar":{"package_id":"63c9f21b2ff78d332e7a8c50","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"38fd98b22839f7e83e3fd66fa813469c82826b9052b5b6615a0ab3d23f233c42"},"ros-noetic-urdf-1.13.2-py39h1a81985_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-rosconsole-bridge","ros-noetic-roscpp","tinyxml","tinyxml2 >=9.0.0,<10.0a0","urdfdom >=3.1.0,<3.2.0a0","urdfdom_headers"],"build":"py39h1a81985_15","timestamp":1674179081829,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dac1c7fa65bf826923ab36439f402e30","name":"ros-noetic-urdf","requires":[],"size":93262,"version":"1.13.2","binstar":{"package_id":"63c9f233c37c80a75b456731","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"229e2c58ccd97dd1f97763e971ca53864fbadb415d0d160b4c80104f3e9a93c8"},"ros-noetic-xacro-1.14.14-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roslaunch"],"build":"py39hac30774_15","timestamp":1674179117172,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"34b9cfc2d628efb7b34794a04335cd10","name":"ros-noetic-xacro","requires":[],"size":67939,"version":"1.14.14","binstar":{"package_id":"63c9f236b23346582ca98c5f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2cfedd13800cdecb2b1444b845a9e355bef4df88c63743f9a417d8ce275d18f8"},"ros-noetic-topic-tools-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-xmlrpcpp"],"build":"py39hac30774_15","timestamp":1674178905623,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1b361db5e1a272aee1c7ea39e13d4d9b","name":"ros-noetic-topic-tools","requires":[],"size":253103,"version":"1.15.15","binstar":{"package_id":"63c9f23759c09271a44a50b0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0d0868532ca4c69355fa5e9cc231dceb1edf3ff04ff778e2b9392821303e60c"},"ros-noetic-message-filters-1.15.15-py39h873cbd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-roscpp"],"build":"py39h873cbd0_15","timestamp":1674179030677,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2d7d70e5891237223cbcebe76d8f4d7f","name":"ros-noetic-message-filters","requires":[],"size":48793,"version":"1.15.15","binstar":{"package_id":"63c9f239edf45d7c2e2f4f0f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2d0a61243ea967f633762b5072c0b439af71f20e214e47bbe3e945431eac2ce7"},"ros-noetic-realsense2-description-2.3.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674185544157,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a25e120a688d02359d94f36eb6d5449b","name":"ros-noetic-realsense2-description","requires":[],"size":21829252,"version":"2.3.2","binstar":{"package_id":"63ca0b83d0e8c095e2399571","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d85302860f527d31f80ca4850f33023bca9ebb74fa4b209f2280dfcd7598fbc"},"ros-noetic-realsense2-description-2.3.2-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro"],"subdir":"linux-64","timestamp":1693382091888,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"e26c5cf5c68dd7165a93550fa27f1eb4","name":"ros-noetic-realsense2-description","requires":[],"size":21683775,"version":"2.3.2","binstar":{"package_id":"63ca0b83d0e8c095e2399571","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d5c988ac727fc4b87577e806b91c0822b732fa1b5b668af28783ecb8e3d9064"},"ros-noetic-moveit-resources-prbt-support-0.8.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674185455466,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a8244df4de0f899ac6b0db8b1fd4376f","name":"ros-noetic-moveit-resources-prbt-support","requires":[],"size":1081130,"version":"0.8.2","binstar":{"package_id":"63ca0b84c37c80a75b525288","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2bb27cdfc929865f163990f9637507df3dc9b625ffa27e74f5dd1a688275dd12"},"ros-noetic-nodelet-tutorial-math-0.2.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674185597891,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d61dcb566b72421a7d204cc7575a6242","name":"ros-noetic-nodelet-tutorial-math","requires":[],"size":43948,"version":"0.2.0","binstar":{"package_id":"63ca0b85d0e8c095e23995ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dbc1fa995f1254c005cd8b542eaea91a448a8cdc08ec81c6f6be0d187eff12d7"},"ros-noetic-franka-description-0.10.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674185485071,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"95c136e3382315f10a5879b4155a43dd","name":"ros-noetic-franka-description","requires":[],"size":3812078,"version":"0.10.1","binstar":{"package_id":"63ca0b875a31eb90f6b3597c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"92a7d6a8d623bf5bee8e4c186d20c14356c1f4b8bb464495747569fabdf54a4d"},"ros-noetic-velodyne-description-1.0.13-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674185514900,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4354ef677a23cbff47834da85573c3f5","name":"ros-noetic-velodyne-description","requires":[],"size":302439,"version":"1.0.13","binstar":{"package_id":"63ca0b8868b198bb959f153d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"874bd586b28d8d296bc446df1b08d97072fc7089daa7f1c9fc2cb65b3f72a6b3"},"ros-noetic-swri-console-1.1.0-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosbag-storage","ros-noetic-roscpp","ros-noetic-rosgraph-msgs","xorg-libx11","xorg-libxext"],"build":"py39hd1c2957_15","timestamp":1674185607997,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"21a37200c7f82f2bcc6e9f12122818c5","name":"ros-noetic-swri-console","requires":[],"size":2342381,"version":"1.1.0","binstar":{"package_id":"63ca0b8e912363225b97da93","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3779e1267bb482a88821047e5305472853e6e418430f45c2673a2785fc4c596d"},"ros-noetic-turtlebot3-teleop-1.2.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rospy"],"build":"py39hac30774_15","timestamp":1674466896777,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c36f61ecd36a62cd2216cb93d438be83","name":"ros-noetic-turtlebot3-teleop","requires":[],"size":14132,"version":"1.2.5","binstar":{"package_id":"63ca0d065a31eb90f6b3d898","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d53c4bbb30a2206bbe3f46199eae295e01d36a637fc163f7654b42e7c4456434"},"ros-noetic-class-loader-0.5.0-py39hd72fd0a_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","poco >=1.12.4,<1.12.5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hd72fd0a_15","timestamp":1674275914242,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"69d9999ae833bcf6d984737b7adb89fc","name":"ros-noetic-class-loader","requires":[],"size":81631,"version":"0.5.0","binstar":{"package_id":"63ca16df2b70bce830792776","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed121cfa546f44b8f57610de3689e13eeccc0584fe5e0ea2ceeb22e36cbc1c6d"},"ros-noetic-class-loader-0.5.0-py311h0357816_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311h0357816_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost-cpp","console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","poco >=1.12.4,<1.12.5.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706496940590,"md5":"8ebe1bd2c173b416343f171c640da04d","name":"ros-noetic-class-loader","requires":[],"size":83834,"version":"0.5.0","binstar":{"package_id":"63ca16df2b70bce830792776","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac90ebf087a754298db6cc5bdea20dfa1a8994b8a42c90661c7cdb30e76647ed"},"ros-noetic-rosbag-1.15.15-py39h873cbd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pycryptodome","pycryptodomex","python","python-gnupg","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg","ros-noetic-genpy","ros-noetic-rosbag-storage","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-std-srvs","ros-noetic-topic-tools","ros-noetic-xmlrpcpp","rospkg"],"build":"py39h873cbd0_15","timestamp":1674189019356,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"791d1fda18de59807d2589f8d8975bc6","name":"ros-noetic-rosbag","requires":[],"size":684663,"version":"1.15.15","binstar":{"package_id":"63ca19722ff78d332e86ddb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e00784b1a2ecfee76a2d09b1f04f11fd6fafb8ad82a91bd9c1618bc31fc4cfe5"},"ros-noetic-rosbag-1.16.0-py39h873cbd0_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pycryptodome","pycryptodomex","python","python-gnupg","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genmsg","ros-noetic-genpy","ros-noetic-rosbag-storage","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-std-srvs","ros-noetic-topic-tools","ros-noetic-xmlrpcpp","rospkg"],"subdir":"linux-64","timestamp":1694897395051,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39h873cbd0_16","md5":"a4a43b932d50248a0aac106d908654e4","name":"ros-noetic-rosbag","requires":[],"size":675872,"version":"1.16.0","binstar":{"package_id":"63ca19722ff78d332e86ddb8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0caea484b2a7b8660a16242016fda4e036277119ae3947bebedf1ffe742baa2b"},"ros-noetic-diagnostic-aggregator-1.11.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bondcpp","ros-noetic-bondpy","ros-noetic-diagnostic-msgs","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-xmlrpcpp"],"build":"py39hac30774_15","timestamp":1674189167088,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c64625eae02ad2376982001f1f14e557","name":"ros-noetic-diagnostic-aggregator","requires":[],"size":435072,"version":"1.11.0","binstar":{"package_id":"63ca19738ff1ad2742a27c7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ac0340d80a84af879751a2deb9ded7663716cd6a6a5a6cd736c4bcbc96ca60ae"},"ros-noetic-diagnostic-aggregator-1.11.0-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bondcpp","ros-noetic-bondpy","ros-noetic-diagnostic-msgs","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-xmlrpcpp"],"subdir":"linux-64","timestamp":1694898957077,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"2d7c41cba8cf1272208adefc52068ea0","name":"ros-noetic-diagnostic-aggregator","requires":[],"size":435602,"version":"1.11.0","binstar":{"package_id":"63ca19738ff1ad2742a27c7a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"69c781b153472ef888eeac4f53bc14d194e5e4df627bd92990b8c9e11602c676"},"ros-noetic-diagnostic-updater-1.11.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674189105972,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b1db6f846ddba1a47655d7b2c91bb331","name":"ros-noetic-diagnostic-updater","requires":[],"size":73122,"version":"1.11.0","binstar":{"package_id":"63ca19745a31eb90f6b81ec6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1c066c728130423c3e068dbfa1eafd465a73bd74e273c071bfe27f440a0a1bf8"},"ros-noetic-kdl-parser-1.14.2-py39h6a0d14d_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-urdf","tinyxml","tinyxml2 >=9.0.0,<10.0a0","urdfdom_headers"],"build":"py39h6a0d14d_15","timestamp":1674189065500,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5b33da0d586dc325ff49ac5d363bc8da","name":"ros-noetic-kdl-parser","requires":[],"size":36342,"version":"1.14.2","binstar":{"package_id":"63ca197614201bfa453812c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"550601de04dcb76d40fc6fd3a5240f2959ddc736a06a48cd81a41678aa6064a5"},"ros-noetic-jackal-navigation-0.8.5-py39ha182ace_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-amcl","ros-noetic-gmapping","ros-noetic-map-server","ros-noetic-move-base","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39ha182ace_3","timestamp":1674191121718,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f3746c8e2298670932bd6d75f59ff4eb","name":"ros-noetic-jackal-navigation","requires":[],"size":37097,"version":"0.8.5","binstar":{"package_id":"63ca2115d0e8c095e2427b87","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61989d71278ba75427705f10304630d295bf8d8d19f85f6c5d215d1891c5557d"},"ros-noetic-rostopic-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genpy","ros-noetic-rosbag","ros-noetic-rospy"],"build":"py39hac30774_15","timestamp":1674275971851,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b49c855361bd18b84d8bd0307344bbe4","name":"ros-noetic-rostopic","requires":[],"size":88634,"version":"1.15.15","binstar":{"package_id":"63cb6b58a64974fd09f761ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"92717d9c399c194f8923003f3229547521fdb21d2e65fad113fc33bcdcf0aff1"},"ros-noetic-rosmsg-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-genmsg","ros-noetic-genpy","ros-noetic-rosbag","ros-noetic-roslib","rospkg"],"build":"py39hac30774_15","timestamp":1674276003096,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"124823ef3653c99bcc5f5471d69476d2","name":"ros-noetic-rosmsg","requires":[],"size":43686,"version":"1.15.15","binstar":{"package_id":"63cb6d178ff1ad27426d708c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c9f5d66441a6bbc09ca6e477ca72659a3c5ea74d0f58e978b119ff8cf785f0b3"},"ros-noetic-sensor-msgs-1.13.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674276044321,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"57d94d131bcaa564912a5cf0adf3cc18","name":"ros-noetic-sensor-msgs","requires":[],"size":222418,"version":"1.13.1","binstar":{"package_id":"63cb6d1ac37c80a75b2b480e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db3d4f47f2c2413c5adfc8ab34858342486060b7226af725faee75bb25bde866"},"ros-noetic-self-test-1.11.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-diagnostic-updater","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674275943004,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c550d27097381c5da29fc2ca45385265","name":"ros-noetic-self-test","requires":[],"size":219669,"version":"1.11.0","binstar":{"package_id":"63cb6d1adbdf733521e9130f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6beb6f59b74238636a9f86ead6be831023b4a20772cd31bd45984b160ac3cfac"},"ros-noetic-jackal-control-0.8.5-py39ha182ace_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-controller-manager","ros-noetic-diff-drive-controller","ros-noetic-interactive-marker-twist-server","ros-noetic-joint-state-controller","ros-noetic-joy","ros-noetic-robot-localization","ros-noetic-teleop-twist-joy","ros-noetic-topic-tools","ros-noetic-twist-mux"],"build":"py39ha182ace_3","timestamp":1674276119498,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ef4023c181b04a4310c10190be01a332","name":"ros-noetic-jackal-control","requires":[],"size":14343,"version":"0.8.5","binstar":{"package_id":"63cb6d1bedf45d7c2e7b924c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"74639d031194eb491ad1938476a81ea570013e81a38bb6bf2f8687c6f2929fbe"},"ros-noetic-filters-1.9.2-py39h873cbd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib"],"build":"py39h873cbd0_15","timestamp":1674275896097,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9f9b79f8e1f33bf7dd7b076f5a944f31","name":"ros-noetic-filters","requires":[],"size":106138,"version":"1.9.2","binstar":{"package_id":"63cb6d1c2ff78d332e290f80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a1f165778b6f74c238985f2d8eb4464e45ca3379e14b8741c3fa1b1915d249f8"},"ros-noetic-diagnostic-analysis-1.11.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-rosbag","ros-noetic-roslib"],"build":"py39hac30774_15","timestamp":1674275981072,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2617b7092bcee663942d00368b6c8d6f","name":"ros-noetic-diagnostic-analysis","requires":[],"size":25300,"version":"1.11.0","binstar":{"package_id":"63cb6d1cd0e8c095e2091b43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b0e5fdfcb24fd44aa285b01dce01d281a7bc42e9cee2aca99e262b7d2b30c96f"},"ros-noetic-ros-tutorials-0.10.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp-tutorials","ros-noetic-rospy-tutorials","ros-noetic-turtlesim"],"build":"py39hac30774_15","timestamp":1674276043235,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"537c1e8e5f64873cbe104aabb75981b7","name":"ros-noetic-ros-tutorials","requires":[],"size":8695,"version":"0.10.2","binstar":{"package_id":"63cb6d1d912363225b376ac3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"39fafdd6617b767194268c8f5b1a7c8e1d297a43f8fe01d0e4a95d72c48d4d73"},"ros-noetic-boost-sml-0.1.2-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-roslint"],"build":"py39hd1c2957_15","timestamp":1674467042353,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c7f08f1002bb22421d95d8c8b87a49b1","name":"ros-noetic-boost-sml","requires":[],"size":111282,"version":"0.1.2","binstar":{"package_id":"63cb6d40cd65eb0e1413a53a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"257dbedd742df50ebf1e745619c3ca7bf5353007ec37c7c74e1d21d9c309079e"},"ros-noetic-rosservice-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-genpy","ros-noetic-rosgraph","ros-noetic-roslib","ros-noetic-rosmsg","ros-noetic-rospy"],"build":"py39hac30774_15","timestamp":1674276328129,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"68f0990ce3b25a01c3cd977a61f714f3","name":"ros-noetic-rosservice","requires":[],"size":36327,"version":"1.15.15","binstar":{"package_id":"63cb6e6920c05f5e39391f10","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8cad646589924bf65d76ee2fbbdc2804c7c397705f23cee73bdad976a9eefe07"},"ros-noetic-joint-state-publisher-1.15.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-sensor-msgs"],"build":"py39hac30774_15","timestamp":1674276454984,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c3ad20c628b21da2fc95dee3d69c710f","name":"ros-noetic-joint-state-publisher","requires":[],"size":23956,"version":"1.15.1","binstar":{"package_id":"63cb6e6a2ff78d332e294985","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"492f3dabf8eda91d076a4bc540779e3435a3ab3607e13fff4115bee574ca16aa"},"ros-noetic-map-msgs-1.14.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674276361852,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d0bbc86517522312fa7e12d4570ed289","name":"ros-noetic-map-msgs","requires":[],"size":80913,"version":"1.14.1","binstar":{"package_id":"63cb6e6c5a31eb90f65539e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"73b1f0dafbcbbf3208501e6f9f899c4bd5aaf25d47a847cd52a4331fdab67ce4"},"ros-noetic-rosnode-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosgraph","ros-noetic-rostopic"],"build":"py39hac30774_15","timestamp":1674276297184,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c09700608a1beb6c2fe54853993a8d57","name":"ros-noetic-rosnode","requires":[],"size":40640,"version":"1.15.15","binstar":{"package_id":"63cb6e6dc37c80a75b2bce42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"31ab97408e1e82cf3f7053b0118df0093ed2e567cdec8cbfb7fad173447f2a50"},"ros-noetic-image-transport-1.12.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-filters","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-sensor-msgs"],"build":"py39hac30774_15","timestamp":1674276425938,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"da792207d1af8b128d78fcf01ddedf3f","name":"ros-noetic-image-transport","requires":[],"size":354952,"version":"1.12.0","binstar":{"package_id":"63cb6e6ec37c80a75b2bce48","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c46ad461252c9cd154a56de30befa8284f6d78beac3595e8f8e9db49dc7274ac"},"ros-noetic-teleop-twist-keyboard-1.0.0-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rospy"],"subdir":"linux-64","timestamp":1694253052301,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"5038cfafa58154dd874f0b791eaa3454","name":"ros-noetic-teleop-twist-keyboard","requires":[],"size":17819,"version":"1.0.0","binstar":{"package_id":"63cb70d6b23346582c26cd28","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"37ea321534d074f1ae519d900126ff779ed0418f287ed0c4b4864c939bd41874"},"ros-noetic-rqt-topic-0.4.13-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-std-msgs","rospkg"],"build":"py39hac30774_15","timestamp":1674330224464,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6c46b7512fdb5a5d989d4a312f8f9f65","name":"ros-noetic-rqt-topic","requires":[],"size":37527,"version":"0.4.13","binstar":{"package_id":"63cbbed3d0e8c095e22e70cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1dc8780908761ada49635a51c024641421c6d80dfa5946e6b0cf0034898ff025"},"ros-noetic-rqt-robot-steering-0.5.12-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-python-qt-binding","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39hac30774_15","timestamp":1674330249800,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"90319154d47a3fdf0b66a8e49e6122d4","name":"ros-noetic-rqt-robot-steering","requires":[],"size":25713,"version":"0.5.12","binstar":{"package_id":"63cbbed468b198bb95ec6cc2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e7e2fdf3ad5cab60e4ab62b30cb8938b381c3dcf0b46dd25f1a9928034e994d"},"ros-noetic-joint-state-publisher-gui-1.15.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-python-qt-binding","ros-noetic-rospy"],"build":"py39hac30774_15","timestamp":1674330328990,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1757df07a7e643e6f099b69fd76807ef","name":"ros-noetic-joint-state-publisher-gui","requires":[],"size":22684,"version":"1.15.1","binstar":{"package_id":"63cbbf54be293b9e161bb6ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"958fba8dab2d0777a6283e296131a1c9bb2788edbfc9d7fe17484b89d8dbee88"},"ros-noetic-dynamic-reconfigure-1.7.3-py39h873cbd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-std-msgs"],"build":"py39h873cbd0_15","timestamp":1674330371695,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"92241481aa34723de230111cb305421c","name":"ros-noetic-dynamic-reconfigure","requires":[],"size":168711,"version":"1.7.3","binstar":{"package_id":"63cbbf5568b198bb95ec776c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d5b94fab05a1da183414f36863e28b2bc4bf7eb4685b8001dedfe9b2d8109a25"},"ros-noetic-actionlib-1.14.0-py39h873cbd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rostest","ros-noetic-std-msgs"],"build":"py39h873cbd0_15","timestamp":1674330236199,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4690bd88c5e1e3c92853e73b74cf2912","name":"ros-noetic-actionlib","requires":[],"size":221113,"version":"1.14.0","binstar":{"package_id":"63cbbf56d0e8c095e22e96b1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7aaaac8d6609ba6af869c66a8c93a5b7d377ee66018818d10ef030395dc747ca"},"ros-noetic-actionlib-1.14.0-py39h873cbd0_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rostest","ros-noetic-std-msgs"],"build":"py39h873cbd0_16","timestamp":1678494308647,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4e66451d8d236519bcc8b1824889b0fa","name":"ros-noetic-actionlib","requires":[],"size":231386,"version":"1.14.0","binstar":{"package_id":"63cbbf56d0e8c095e22e96b1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"91904620cbf902d1d610c007169e0d154d9fc54e966b88f7c24ab92234c38eee"},"ros-noetic-rqt-logger-level-0.4.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rosnode","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39hac30774_15","timestamp":1674330402813,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ea590c0407ca08290ff59be3b9e989cc","name":"ros-noetic-rqt-logger-level","requires":[],"size":25489,"version":"0.4.11","binstar":{"package_id":"63cbbf57c37c80a75b479e76","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b28f67ff9e49e7940ae597a5c1102e76f712bb5f97850aec46e56c0256e4d314"},"ros-noetic-roswtf-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","paramiko","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosbuild","ros-noetic-rosgraph","ros-noetic-roslaunch","ros-noetic-roslib","ros-noetic-rosnode","ros-noetic-rosservice","rospkg"],"build":"py39hac30774_15","timestamp":1674330273536,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6fa8f1b10c4355b905abc5b8feb70dd8","name":"ros-noetic-roswtf","requires":[],"size":79366,"version":"1.15.15","binstar":{"package_id":"63cbbf58d0e8c095e22e96ed","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1bad372207fd25e16e2687be1f1f02101bf2f89426da520084dc1e81d73fdb4f"},"ros-noetic-roswtf-1.16.0-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","paramiko","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosbuild","ros-noetic-rosgraph","ros-noetic-roslaunch","ros-noetic-roslib","ros-noetic-rosnode","ros-noetic-rosservice","rospkg"],"subdir":"linux-64","timestamp":1694898837675,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"4632490563ea23cbd09370db3e944f14","name":"ros-noetic-roswtf","requires":[],"size":79935,"version":"1.16.0","binstar":{"package_id":"63cbbf58d0e8c095e22e96ed","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"93ff1d8e611d020fa7ba32d7b715e1b140ad93ca9242d38c9f7c981388cba2b0"},"ros-noetic-rosserial-server-0.9.2-py39h873cbd0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rosserial-msgs","ros-noetic-std-msgs","ros-noetic-topic-tools"],"build":"py39h873cbd0_15","timestamp":1674466864188,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5d85b644e6e38b961a5e9cd900a533f7","name":"ros-noetic-rosserial-server","requires":[],"size":348303,"version":"0.9.2","binstar":{"package_id":"63cbbf8c989160afcf1e1ddf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9125e9cb1f8d5ad0b554648fdd020cf175402f206953bcc412de3bceeabf6a50"},"ros-noetic-map-server-1.17.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["bullet","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-tf2","sdl >=1.2.60,<1.3.0a0","sdl_image >=1.2.12,<1.3.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39hac30774_15","timestamp":1674466924522,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2d6e2140a80feff84122d4e58b00b6c0","name":"ros-noetic-map-server","requires":[],"size":98372,"version":"1.17.3","binstar":{"package_id":"63cbc0f18ff1ad2742896865","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"95a665ecc93a8c7f6fb8d9c00481ca384c1ac624ea8c3523eb64154d05761375"},"ros-noetic-srdfdom-0.6.3-py39h4d5781e_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","console_bridge >=1.0.2,<1.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdf","ros-noetic-urdfdom-py","tinyxml2 >=9.0.0,<10.0a0"],"build":"py39h4d5781e_15","timestamp":1674466715989,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a5ffb4a11f85d8b630d62509ed96d6fd","name":"ros-noetic-srdfdom","requires":[],"size":92757,"version":"0.6.3","binstar":{"package_id":"63cbc0fddbdf73352109dc3d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8b18842254b3dce2257af13de776e384e3a9d11036dafe50bb6133fd90189f9"},"ros-noetic-qt-gui-cpp-0.4.2-py39ha182ace_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-qt-gui","tinyxml","xorg-libx11","xorg-libxext"],"build":"py39ha182ace_15","timestamp":1674422224282,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"443bd91b7392f268490c91c17c0d8161","name":"ros-noetic-qt-gui-cpp","requires":[],"size":275726,"version":"0.4.2","binstar":{"package_id":"63cc9ce6912363225b88b86b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81f4a7a816660462a4d2b85312a2936abea87e225b1fb2add7fb87bfad8c9e2e"},"ros-noetic-qt-gui-cpp-0.4.2-py311h27406db_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311h27406db_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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-pluginlib","ros-noetic-qt-gui","tinyxml","xorg-libx11 >=1.8.7,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498886585,"md5":"b789248eca8bbaf37a22f59990ed143b","name":"ros-noetic-qt-gui-cpp","requires":[],"size":281089,"version":"0.4.2","binstar":{"package_id":"63cc9ce6912363225b88b86b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d1a5b6968bbda4329c19c6d86dc27c84a878653da6964d94ad066217f3cff0fd"},"ros-noetic-smach-ros-2.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-rospy","ros-noetic-rostopic","ros-noetic-smach","ros-noetic-smach-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs"],"build":"py39hac30774_15","timestamp":1674355261364,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"388fba2dae65027b45269bb7e8d847fa","name":"ros-noetic-smach-ros","requires":[],"size":55340,"version":"2.5.0","binstar":{"package_id":"63cca29ab23346582c522620","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84808378fc35a228e0bc8480ac63352249ce0aaf70e1e1de711aa017f66c761e"},"ros-noetic-turtle-actionlib-0.2.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-angles","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-turtlesim"],"build":"py39hac30774_15","timestamp":1674355350862,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b2f4f208dc7190152a9b709d760881af","name":"ros-noetic-turtle-actionlib","requires":[],"size":241200,"version":"0.2.0","binstar":{"package_id":"63cca29c5a31eb90f6a03908","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2af7d5b219e0dd3d5da5cea7c670cd13190b03cb5b8d3587df2969dc4dac9699"},"ros-noetic-rqt-py-common-0.5.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-genpy","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rosbag","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-rostopic"],"build":"py39hac30774_15","timestamp":1674355360357,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e64f03bd5d2fb9ad46ace315d3cc89aa","name":"ros-noetic-rqt-py-common","requires":[],"size":85487,"version":"0.5.3","binstar":{"package_id":"63cca33b2ff78d332e770234","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e383a71633ecf6be9ee042be1fc5fab511947e58966700d85db95e490a6dbd27"},"ros-noetic-nodelet-topic-tools-1.10.2-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39hd1c2957_15","timestamp":1674355393296,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0c589385c79ba70d61cde5f27845846e","name":"ros-noetic-nodelet-topic-tools","requires":[],"size":23307,"version":"1.10.2","binstar":{"package_id":"63cca33c8ff1ad2742e7bdba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c673554131164734b2d907f26f61ec8b96129f62be5c201479688be0070e8867"},"ros-noetic-cv-bridge-1.16.2-py39h24ef43d_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-sensor-msgs","xorg-libx11","xorg-libxext"],"build":"py39h24ef43d_15","timestamp":1674355483684,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"667d0b9cb849341875401d5da0ba38dc","name":"ros-noetic-cv-bridge","requires":[],"size":183532,"version":"1.16.2","binstar":{"package_id":"63cca33ecd65eb0e146473d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9185c80ff3557973cab621cc4756e56ec72e12f58f82e95839ad7e027f98895f"},"ros-noetic-tf2-ros-0.7.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-roscpp","ros-noetic-rosgraph","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-msgs","ros-noetic-tf2-py","ros-noetic-xmlrpcpp"],"build":"py39hac30774_15","timestamp":1674355282225,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ec9bc5e29fa236407cd7372733c2f39f","name":"ros-noetic-tf2-ros","requires":[],"size":318793,"version":"0.7.6","binstar":{"package_id":"63cca33fc37c80a75ba5cc0b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3cf3d64931b528918187daf356b1b65ec3792a433089143d031aece4412f38cf"},"ros-noetic-stereo-msgs-1.13.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674355513122,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ed2114f627da026e09a4d3de533fd7f4","name":"ros-noetic-stereo-msgs","requires":[],"size":31554,"version":"1.13.1","binstar":{"package_id":"63cca3402ff78d332e77029c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"89a6d57660c1f085ff9f5e93aa08f2b251f6ba0c65e31831e6b9cfd7e3468196"},"ros-noetic-turtlebot3-description-1.2.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674466924273,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e5efe9bcf6f536efcc2998e08c6adcb3","name":"ros-noetic-turtlebot3-description","requires":[],"size":5675983,"version":"1.2.5","binstar":{"package_id":"63cca406a64974fd0910aac9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"820b7ae0d70ab1a19b8815a8496b532d97d6c7ae1ed3b692c223bed9fd8d9909"},"ros-noetic-rqt-gui-cpp-0.5.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-qt-gui","ros-noetic-qt-gui-cpp","ros-noetic-roscpp","xorg-libx11","xorg-libxext"],"build":"py39hac30774_15","timestamp":1674423638687,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"edbba81df80f9b5110d741f42c2de85a","name":"ros-noetic-rqt-gui-cpp","requires":[],"size":110657,"version":"0.5.3","binstar":{"package_id":"63cca8862ff78d332e78663e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"075e2169336e0c4ae6223eec01f0ea4c880c07064ef2bdad6f09c7d1f5a06270"},"ros-noetic-joint-limits-interface-0.19.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hardware-interface","ros-noetic-roscpp","ros-noetic-urdf"],"build":"py39hac30774_15","timestamp":1674460877730,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"72c400de4f546443e22560cd26dcd2c5","name":"ros-noetic-joint-limits-interface","requires":[],"size":18108,"version":"0.19.6","binstar":{"package_id":"63cca888c37c80a75ba7d25f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5add515741e909af45d65b8c4cb1dd8c18e42abb6d5cb2d9d2be72989e5f0f3f"},"ros-noetic-gps-common-0.3.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674466701717,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6471737423f8e8450c0cc465a00798da","name":"ros-noetic-gps-common","requires":[],"size":110368,"version":"0.3.3","binstar":{"package_id":"63ccac48d0e8c095e2a303b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"01a9858edd63470f07b9c585c0aa3c94fc94c21a7c7a1e40a643fb57b6e6f7de"},"ros-noetic-hls-lfcd-lds-driver-1.1.2-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39hd1c2957_15","timestamp":1674466657777,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"47a87544fcea49445ae868b4d5a35b8f","name":"ros-noetic-hls-lfcd-lds-driver","requires":[],"size":105102,"version":"1.1.2","binstar":{"package_id":"63ccac4a59c09271a4f280e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5fbebd13a1f46fb8554bdba4d48ae35779c80a63f35eac1e3d94331a7068afd"},"ros-noetic-lms1xx-0.3.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole-bridge","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-sensor-msgs"],"build":"py39hac30774_15","timestamp":1674466874167,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1a126782872804b12745b0037e71adcb","name":"ros-noetic-lms1xx","requires":[],"size":245227,"version":"0.3.0","binstar":{"package_id":"63ccac4dedf45d7c2e922c79","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"99fd120285b137d56869074c99936be8913032cfade1e5cc48a4cf5ddc443b64"},"ros-noetic-pcl-msgs-0.3.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674461074452,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e57700a557c11697e1623911627398c2","name":"ros-noetic-pcl-msgs","requires":[],"size":49269,"version":"0.3.0","binstar":{"package_id":"63ccaca4a64974fd09115016","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"53c076339b078de897555e786f2536908cf71129a96e6e4728e9c2f8f7991763"},"ros-noetic-joy-1.15.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39hac30774_15","timestamp":1674466906362,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dafb4a2be144c7fb179d807f5099efeb","name":"ros-noetic-joy","requires":[],"size":81767,"version":"1.15.1","binstar":{"package_id":"63ccaca70273ee116abaf554","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"210d0cb851426a32c412e42abdc8bd149c01a0ed13bda7f35d5c0a30b83419d8"},"ros-noetic-joy-1.15.1-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"subdir":"linux-64","timestamp":1695499572091,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"084fbaa04f5e135343eae6fa8fe6ab77","name":"ros-noetic-joy","requires":[],"size":82302,"version":"1.15.1","binstar":{"package_id":"63ccaca70273ee116abaf554","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"642139f661d582b2776dd3ed7a8139df9a41d4b7c5faf1b99b127fc99fb86a1c"},"ros-noetic-gazebo-msgs-2.9.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-trajectory-msgs"],"build":"py39hac30774_15","timestamp":1674460858133,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c20a009d4329e69c5a36c2ad39d92525","name":"ros-noetic-gazebo-msgs","requires":[],"size":228662,"version":"2.9.2","binstar":{"package_id":"63ccad3fcd65eb0e1466d326","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3757400c8e29f31803be1a3c1d0facb64d13d4a015e4a9594acd336cd9f677bc"},"ros-noetic-object-recognition-msgs-0.4.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674466658626,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ff3e7207e476e30f9ad5efa1d6b29d2c","name":"ros-noetic-object-recognition-msgs","requires":[],"size":140633,"version":"0.4.2","binstar":{"package_id":"63ccad40b23346582c53a981","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c804f2fefa6c409d911cbd36b087ea940a53d24395e04b57de5524a7aace4d1f"},"ros-noetic-image-geometry-1.16.2-py39hc401949_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-sensor-msgs","xorg-libx11","xorg-libxext"],"build":"py39hc401949_15","timestamp":1674460973470,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"402443b926d56a827a1e24298a029201","name":"ros-noetic-image-geometry","requires":[],"size":47694,"version":"1.16.2","binstar":{"package_id":"63ccad41d0e8c095e2a34205","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3afaa0987e21da3e3b0a799dd27d77653e439e4b3c9016833c5aeb2a9a200aaf"},"ros-noetic-camera-calibration-parsers-1.12.0-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-sensor-msgs","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39hd1c2957_15","timestamp":1674461037269,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6c9aa5491440bafecfce680884fb3b2b","name":"ros-noetic-camera-calibration-parsers","requires":[],"size":97392,"version":"1.12.0","binstar":{"package_id":"63ccad42989160afcf3d599b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"447b201bf2668b0b2e7400292779dfa1dd584ba84c87403cc0f06519b5625ff1"},"ros-noetic-teleop-twist-joy-0.1.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-joy","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39hac30774_15","timestamp":1674468858223,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0b744547120e92ce82f8c4a911f85f99","name":"ros-noetic-teleop-twist-joy","requires":[],"size":60111,"version":"0.1.3","binstar":{"package_id":"63ccb0d5dbdf733521734088","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71d2cf033c6a8d37c4cedf8f98777c82f5a4e47f0fc4e16affc6f34560765829"},"ros-noetic-vision-opencv-1.16.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-image-geometry"],"build":"py39hac30774_15","timestamp":1674461431572,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d4c01533e9a37db2b8e063060cad0d9b","name":"ros-noetic-vision-opencv","requires":[],"size":9098,"version":"1.16.2","binstar":{"package_id":"63ccb0d75a31eb90f6a3625d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0406d57797a98c890b4f9eca16ca02db6af4476de09c07542c7cad4445a1ca10"},"ros-noetic-camera-calibration-1.17.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-image-geometry","ros-noetic-message-filters","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-srvs"],"build":"py39hac30774_15","timestamp":1674461393200,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"45bab69a7591ca9ce25b8025e307f312","name":"ros-noetic-camera-calibration","requires":[],"size":102991,"version":"1.17.0","binstar":{"package_id":"63ccb0da2ff78d332e7a1dc0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"57e2ded9be82327da7de8bd39ca5c69b25c0af8484e9a3b7d1bd9ca058e60fa5"},"ros-noetic-camera-info-manager-1.12.0-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-calibration-parsers","ros-noetic-image-transport","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-sensor-msgs"],"build":"py39hd1c2957_15","timestamp":1674461430024,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e4aaf5c9591af14147972e9cf944d787","name":"ros-noetic-camera-info-manager","requires":[],"size":61364,"version":"1.12.0","binstar":{"package_id":"63ccb100912363225b8e225c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7c65065d1454204408d44e84e98ba1e7678c56882738a83298b3e8a4b3df0d86"},"ros-noetic-pcl-conversions-1.7.4-py39h7e6a3dc_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pcl-msgs","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","xorg-libx11","xorg-libxext"],"build":"py39h7e6a3dc_15","timestamp":1674461871144,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"616158724ee8f60000cb3cefa3504730","name":"ros-noetic-pcl-conversions","requires":[],"size":18704,"version":"1.7.4","binstar":{"package_id":"63ccb100cd65eb0e1467878f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f2ae7c703023bb3ec3f20373162b94d9a3768ffa9c35f6d75457bce7dca85d63"},"ros-noetic-rqt-bag-0.5.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rosbag","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-rosnode","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39hac30774_15","timestamp":1674383609878,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"53b717b2f6c8e63e637277372e4b1ecb","name":"ros-noetic-rqt-bag","requires":[],"size":140713,"version":"0.5.1","binstar":{"package_id":"63ccb1015a31eb90f6a366b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9a6b576623930b3fa80ed433a7364f0d1fb2fca50734682091f995b6ed71d519"},"ros-noetic-controller-manager-msgs-0.19.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674460842270,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"125723e31fece07bf871b27c1d67f9f4","name":"ros-noetic-controller-manager-msgs","requires":[],"size":86610,"version":"0.19.6","binstar":{"package_id":"63ccb10314201bfa458f919f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"794e3601b427099be7de1fb9dbaaa44ed6c973eca05151f5c6d5574b510e5001"},"ros-noetic-moveit-msgs-0.11.4-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-object-recognition-msgs","ros-noetic-octomap-msgs","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-std-msgs","ros-noetic-trajectory-msgs"],"build":"py39hac30774_15","timestamp":1674468745652,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e6a981776258026201a2165d918d68a8","name":"ros-noetic-moveit-msgs","requires":[],"size":2363754,"version":"0.11.4","binstar":{"package_id":"63ccb21759c09271a4f33cfd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e3e1af2bd109ed730c69765c893ffb46add7dbd330971020e2048990ab273de"},"ros-noetic-executive-smach-2.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-smach","ros-noetic-smach-msgs","ros-noetic-smach-ros"],"build":"py39hac30774_15","timestamp":1674383412439,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8f15a4316c92c3e0e6c3a31de0f5b89d","name":"ros-noetic-executive-smach","requires":[],"size":7813,"version":"2.5.0","binstar":{"package_id":"63cd1036912363225ba3b103","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"37afd3a948a5c6c8346a42b02d227b8cd6f0fd822b7886ebe370d38ab1f09059"},"ros-noetic-rqt-service-caller-0.4.10-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosservice","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","rospkg"],"build":"py39hac30774_15","timestamp":1674383534360,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"80392c624542d18a14640a1f7c8c7efe","name":"ros-noetic-rqt-service-caller","requires":[],"size":29514,"version":"0.4.10","binstar":{"package_id":"63cd10c9912363225ba3c28b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"416ac52c6be46942ebb483692b5398602cb808d7f8f147ca83e1f9b6c42917e8"},"ros-noetic-nodelet-core-1.10.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-nodelet-topic-tools"],"build":"py39hac30774_15","timestamp":1674383479150,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b29f40a640d9005d1186a1a326072969","name":"ros-noetic-nodelet-core","requires":[],"size":7818,"version":"1.10.2","binstar":{"package_id":"63cd10cad0e8c095e2ca14ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"20d0b87c794d485f8e40e4a1620b1bb474c052ee91debec1e8af13c3ae7a43c6"},"ros-noetic-rqt-moveit-0.5.10-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-rosnode","ros-noetic-rospy","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-rqt-topic","ros-noetic-sensor-msgs"],"build":"py39hac30774_15","timestamp":1674383510290,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d5629d09874ac64b0ab6e65f14235e7e","name":"ros-noetic-rqt-moveit","requires":[],"size":29865,"version":"0.5.10","binstar":{"package_id":"63cd10cbdbdf73352196d733","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c2ee5ebb50b6837d0d1388cab2f3ab8ad98e953e170730bd09f61dd1b2d85e82"},"ros-noetic-rqt-graph-0.4.14-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-dotgraph","ros-noetic-rosgraph","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-rosnode","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","rospkg"],"build":"py39hac30774_15","timestamp":1674383451878,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"10b392ade9de57b5a5fd61b5893ec9a0","name":"ros-noetic-rqt-graph","requires":[],"size":64161,"version":"0.4.14","binstar":{"package_id":"63cd10cc989160afcf4833b5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c6e8e57bcd7076a8272d47620665be28fb163d9554f234bcb9aa79bf00e5db9"},"ros-noetic-rqt-publisher-0.4.10-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui-py-common","ros-noetic-roslib","ros-noetic-rosmsg","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","rospkg"],"build":"py39hac30774_15","timestamp":1674383559548,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"461745d822d8a55791458c12e6770041","name":"ros-noetic-rqt-publisher","requires":[],"size":42516,"version":"0.4.10","binstar":{"package_id":"63cd10ccdbdf73352196d766","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"124abeda5363a29755524c5cf97da043d67ee5b692fb91335b680afd4781ea03"},"ros-noetic-tf-1.13.2-py39h80695a1_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["graphviz >=6.0.2,<7.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-roswtf","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf2-ros"],"build":"py39h80695a1_15","timestamp":1674383507732,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cfa5837cd42d9e2894d1715e8f686dc6","name":"ros-noetic-tf","requires":[],"size":330632,"version":"1.13.2","binstar":{"package_id":"63cd10fccd65eb0e147f83eb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d9880f8066cf72c7198e57bfde5ed3a2903b8634eef9baac7486b690938929f"},"ros-noetic-rqt-console-0.4.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-logger-level","ros-noetic-rqt-py-common","rospkg"],"build":"py39hac30774_15","timestamp":1674383585046,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"aa919e55214b70568a18f8d481fd2ffd","name":"ros-noetic-rqt-console","requires":[],"size":97328,"version":"0.4.11","binstar":{"package_id":"63cd10fd8ff1ad27420b3c5c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c005227cfc64b230dc22bfeb0ecb8468a1342e40e6be0b89cac9c493fa5e5262"},"ros-noetic-tf2-kdl-0.7.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674383538568,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b17e5305e2536847098c49804ef65c4e","name":"ros-noetic-tf2-kdl","requires":[],"size":20811,"version":"0.7.6","binstar":{"package_id":"63cd10fe5a31eb90f6b90d9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fb55ad24436f72e3af6f1a2061a18686ea50ffae61eda0b9117623a7d487033d"},"ros-noetic-tf2-geometry-msgs-0.7.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python-orocos-kdl >=1.5.1,<1.6.0a0","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674383413290,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7a4bccd67a05297c116ef045abed2b27","name":"ros-noetic-tf2-geometry-msgs","requires":[],"size":20897,"version":"0.7.6","binstar":{"package_id":"63cd10ffdbdf73352196fc9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8fd8b31b82a944e8aad27046a268d9ea099966952733b3c09bad786cd7341541"},"ros-noetic-rqt-controller-manager-0.19.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-manager-msgs","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py"],"build":"py39hac30774_15","timestamp":1674507574182,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9d99db673fe714847ef97ec1c232dcbc","name":"ros-noetic-rqt-controller-manager","requires":[],"size":52680,"version":"0.19.6","binstar":{"package_id":"63cd168d912363225ba55282","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c0386ddf0c91071b98dc42c62d499392f41cfadca219819f8e67e540cd424f6"},"ros-noetic-controller-manager-0.19.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-controller-manager-msgs","ros-noetic-hardware-interface","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rosparam","ros-noetic-rospy","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674461388302,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9d6b64913379ba271f4cbea3d3046a71","name":"ros-noetic-controller-manager","requires":[],"size":157498,"version":"0.19.6","binstar":{"package_id":"63cd16bedbdf7335219a4f53","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b544311d1b82e754fa3c5f090a9200aa3f4b18b40f2f1cb05bd4eeadce772fc0"},"ros-noetic-realtime-tools-1.16.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674461125731,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1a566fdcf7cac1fe9021d61bfa11a542","name":"ros-noetic-realtime-tools","requires":[],"size":28030,"version":"1.16.1","binstar":{"package_id":"63cd16c2912363225ba55506","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"53c14af7b56a09a84a215588e9fd967527dfd87573c512dc37d2785c64f36315"},"ros-noetic-theora-image-transport-1.14.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libogg >=1.3.4,<1.4.0a0","libstdcxx-ng >=12","libtheora >=1.1.1,<1.2.0a0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-rosbag","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674460918684,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4c52ceecb25db3e140e8b8bc809fcae7","name":"ros-noetic-theora-image-transport","requires":[],"size":184891,"version":"1.14.0","binstar":{"package_id":"63cd179e2e1172ba36a19dba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9832b708b2ef34dac8af7f7cdb29780bc4fe379524e7cbab03570f8730804c81"},"ros-noetic-compressed-depth-image-transport-1.14.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport"],"build":"py39hac30774_15","timestamp":1674460983462,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"db059c7768885a3b945ac50c7339984f","name":"ros-noetic-compressed-depth-image-transport","requires":[],"size":137560,"version":"1.14.0","binstar":{"package_id":"63cd17a159c09271a4ffaab2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f2e31ff697e422781fef7a489558dfec532ebc2a48c21b66b888e05c5b806a3"},"ros-noetic-rosbridge-library-0.11.16-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pillow","pymongo","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-rosgraph","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-rostopic","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674466948224,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8865e931e8c801346b177c3eb780e786","name":"ros-noetic-rosbridge-library","requires":[],"size":197413,"version":"0.11.16","binstar":{"package_id":"63cd17a3dbdf7335219aac44","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7322405c571a677f44169f5c4e1ce9ac09c23382eb8a9167798c92e691433f0a"},"ros-noetic-polled-camera-1.12.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-image-transport","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674461046804,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a8bd57a5ba58d0fd52134a0e806448d2","name":"ros-noetic-polled-camera","requires":[],"size":76993,"version":"1.12.0","binstar":{"package_id":"63cd17a95a31eb90f6bacd9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eb8588754447a6a06fefb0442457a2834c7bb9ef663403f0093e83d0039d7228"},"ros-noetic-image-publisher-1.17.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-info-manager","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39hac30774_15","timestamp":1674462886535,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7032fcc514c071d20bb2dbaa5a6c4089","name":"ros-noetic-image-publisher","requires":[],"size":119240,"version":"1.17.0","binstar":{"package_id":"63cd17abb23346582c6031ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a85968aa6141637b3729b22fe826a5dde945776a651223cf9160da5a1faa5971"},"ros-noetic-image-view-1.17.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-calibration-parsers","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-std-srvs","xorg-libx11","xorg-libxext"],"build":"py39hac30774_15","timestamp":1674461561525,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"11916362e5745578017be6c86026773e","name":"ros-noetic-image-view","requires":[],"size":416090,"version":"1.17.0","binstar":{"package_id":"63cd17ada21649515759f5f2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cdb547bf4d50dbb2162f1d9c41b9e5da9287143479983d6e7214364e35b15f2a"},"ros-noetic-twist-mux-msgs-2.1.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-message-runtime"],"build":"py39hac30774_15","timestamp":1674466789551,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8479d3e1859880ede3afa17acd8b0c0b","name":"ros-noetic-twist-mux-msgs","requires":[],"size":57141,"version":"2.1.0","binstar":{"package_id":"63cd17b0c37c80a75bce2ebe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e613c2957f0381a16e30a22bdbd4e24adf1a8c0fb58c3938ac58873dcb0c152"},"ros-noetic-ddynamic-reconfigure-0.3.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674466832992,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ad68ebcf5a5aa40f4016f86e8b39ce9f","name":"ros-noetic-ddynamic-reconfigure","requires":[],"size":96114,"version":"0.3.2","binstar":{"package_id":"63cd17b2c37c80a75bce2ee2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e4e2f5b7db28d7d856da858fbde037da3bc7e9454690e64150733e5c583e5b97"},"ros-noetic-franka-visualization-0.10.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-franka-description","ros-noetic-libfranka","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674469034990,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9da199e2a0739f1eca06735000ce1dcc","name":"ros-noetic-franka-visualization","requires":[],"size":42489,"version":"0.10.1","binstar":{"package_id":"63cd199ed0e8c095e2cfbe4c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"25db768b570adf933802bb1ecbfb9e882a74938ecf10966fef25135022b70574"},"ros-noetic-rqt-ez-publisher-0.6.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-tf","ros-noetic-tf2-msgs"],"build":"py39hac30774_15","timestamp":1674413809691,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"60137189b1f18e6ed49dc4b25805e471","name":"ros-noetic-rqt-ez-publisher","requires":[],"size":61991,"version":"0.6.1","binstar":{"package_id":"63cd86f58ff1ad27423bb28b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a2d712b0435767b326d490f6b85ae2ea5b7869e0c013626cd5bfa6a61cfff87d"},"ros-noetic-rqt-ez-publisher-0.6.1-py39hac30774_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-tf","ros-noetic-tf2-msgs"],"build":"py39hac30774_16","timestamp":1678494423124,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"555142337020e6ea1a04240c4d7a01dd","name":"ros-noetic-rqt-ez-publisher","requires":[],"size":62429,"version":"0.6.1","binstar":{"package_id":"63cd86f58ff1ad27423bb28b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8228a2bd2f116e44c742c32d14015ef083f966ec89572d5c4c122dafdb719096"},"ros-noetic-jackal-base-0.7.4-py39ha182ace_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-controller-manager","ros-noetic-diagnostic-aggregator","ros-noetic-diagnostic-updater","ros-noetic-diff-drive-controller","ros-noetic-geometry-msgs","ros-noetic-imu-filter-madgwick","ros-noetic-jackal-msgs","ros-noetic-nmea-msgs","ros-noetic-nmea-navsat-driver","ros-noetic-realtime-tools","ros-noetic-rosserial-python","ros-noetic-rosserial-server","ros-noetic-sensor-msgs","ros-noetic-teleop-twist-joy","ros-noetic-tf","ros-noetic-topic-tools"],"build":"py39ha182ace_3","timestamp":1674413721191,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b537b0b3fc90dcd1cb815d661c212118","name":"ros-noetic-jackal-base","requires":[],"size":255833,"version":"0.7.4","binstar":{"package_id":"63cd86f60273ee116ae05ce1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f39740f5d896c52c994e6329dfa28d74cfa7028d36c7e4f185ded3fd15ed1dd8"},"ros-noetic-ros-comm-1.15.15-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-filters","ros-noetic-ros","ros-noetic-rosbag","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rosgraph","ros-noetic-rosgraph-msgs","ros-noetic-roslaunch","ros-noetic-roslisp","ros-noetic-rosmaster","ros-noetic-rosmsg","ros-noetic-rosnode","ros-noetic-rosout","ros-noetic-rosparam","ros-noetic-rospy","ros-noetic-rosservice","ros-noetic-rostest","ros-noetic-rostopic","ros-noetic-roswtf","ros-noetic-std-srvs","ros-noetic-topic-tools","ros-noetic-xmlrpcpp"],"build":"py39hac30774_15","timestamp":1674413684827,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5d2f64ec04c6f4283a6ebebd8402e6ae","name":"ros-noetic-ros-comm","requires":[],"size":8682,"version":"1.15.15","binstar":{"package_id":"63cd872bc37c80a75b007dfe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1ca50a3f5067e0dbbee611c5331f632675e936b376827c429feee22324619edd"},"ros-noetic-rqt-tf-tree-0.6.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-dotgraph","ros-noetic-rospy","ros-noetic-rqt-graph","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-tf2-msgs","ros-noetic-tf2-ros","rospkg"],"build":"py39hac30774_15","timestamp":1674413864543,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d9a56f7b699003c91f19f9415df29815","name":"ros-noetic-rqt-tf-tree","requires":[],"size":29884,"version":"0.6.3","binstar":{"package_id":"63cd872ddbdf733521cf2103","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d91d5c59d3573cc4569c9c46fceea72e486fbf10760c3a7b0be149812bf57d4f"},"ros-noetic-rqt-msg-0.4.10-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-roslib","ros-noetic-rosmsg","ros-noetic-rospy","ros-noetic-rqt-console","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","rospkg"],"build":"py39hac30774_15","timestamp":1674413780258,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e591988075599572b35a9aa780ca3db6","name":"ros-noetic-rqt-msg","requires":[],"size":28039,"version":"0.4.10","binstar":{"package_id":"63cd872edbdf733521cf2113","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5dd0f7fccc961c880bbd0dd7e01acaf8da0747dc92d14f71e5b80661ba9bbfc7"},"ros-noetic-common-msgs-1.13.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-diagnostic-msgs","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-stereo-msgs","ros-noetic-trajectory-msgs","ros-noetic-visualization-msgs"],"build":"py39hac30774_15","timestamp":1674413721191,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"36e28bce23dda2a544931fd0f9eaa6fc","name":"ros-noetic-common-msgs","requires":[],"size":7616,"version":"1.13.1","binstar":{"package_id":"63cd873086de531a28ddc45b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"551cfb5970d29e72b937207bf93768d5c1fce4892f81c2ca1cfb736422a50f95"},"ros-noetic-diagnostic-common-diagnostics-1.11.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","psutil","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-rospy","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674413832818,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7191fae1ff5711e06b054a260e159726","name":"ros-noetic-diagnostic-common-diagnostics","requires":[],"size":57053,"version":"1.11.0","binstar":{"package_id":"63cd8731dbdf733521cf2127","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"72c418712e38afeaec5a7db8a7d5cd99b315a3f8bbd5fb90db4442dc2fe479a2"},"ros-noetic-laser-geometry-1.6.7-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf","ros-noetic-tf2"],"build":"py39hd1c2957_15","timestamp":1674413699452,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1ef20e3f4cc9d10adf4531e43048d5b4","name":"ros-noetic-laser-geometry","requires":[],"size":60091,"version":"1.6.7","binstar":{"package_id":"63cd873bd0e8c095e203494d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8b98910542f894c6c908bae1631f0b953d3aa12785db13138d22fe9d6719719e"},"ros-noetic-robot-state-publisher-1.15.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-kdl-parser","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rostime","ros-noetic-sensor-msgs","ros-noetic-tf","ros-noetic-tf2-kdl","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674413802411,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"77729604b9c885cb08c045b69bf9b9f6","name":"ros-noetic-robot-state-publisher","requires":[],"size":81042,"version":"1.15.2","binstar":{"package_id":"63cd873c5a31eb90f6dfa4b1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9436bc786d3b2c5ab4e39feab6f33ec86979b6647b2c7affb10fc3779bbfef0d"},"ros-noetic-rqt-reconfigure-0.5.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-python-qt-binding","ros-noetic-rospy","ros-noetic-rqt-console","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common"],"build":"py39hac30774_15","timestamp":1674413855095,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6f38c50bf8fd9b37b1535a254f583515","name":"ros-noetic-rqt-reconfigure","requires":[],"size":92665,"version":"0.5.5","binstar":{"package_id":"63cd873dc37c80a75b008283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b8b0fbcb3b1dc511ce3cbe8e3a41fc66fcb2070a24b8d78b94552337eb1ff211"},"ros-noetic-rqt-reconfigure-0.5.5-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-python-qt-binding","ros-noetic-rospy","ros-noetic-rqt-console","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common"],"subdir":"linux-64","timestamp":1694895554387,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"daef4bc861056bc6fd74ad3ebcc7e227","name":"ros-noetic-rqt-reconfigure","requires":[],"size":93617,"version":"0.5.5","binstar":{"package_id":"63cd873dc37c80a75b008283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4ed1eac4565af24086c32824f9fd0ac8c04ee55842cddf9ff7c5e5b8504a31f0"},"ros-noetic-rqt-robot-monitor-0.5.14-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rospy","ros-noetic-rqt-bag","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","rospkg"],"build":"py39hac30774_15","timestamp":1674413881434,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ce7fcd3c8f6148c908ae5ca22590f302","name":"ros-noetic-rqt-robot-monitor","requires":[],"size":54963,"version":"0.5.14","binstar":{"package_id":"63cd873ed0e8c095e2034995","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7608254c72fe2770cd67004a5f94b1ade5c001dd810d950e2c7da825e1b26039"},"ros-noetic-interactive-markers-1.12.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rostest","ros-noetic-std-msgs","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-visualization-msgs"],"build":"py39hac30774_15","timestamp":1674413751869,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"eb7607c01ef26fcfb38208a56a28137a","name":"ros-noetic-interactive-markers","requires":[],"size":192931,"version":"1.12.0","binstar":{"package_id":"63cd873fa64974fd0925dfa1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a2dc8d613a347338a8966bf7cb38d3cd8e943f817693e14f0945142512b32b4"},"ros-noetic-turtle-tf2-0.2.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-turtlesim"],"build":"py39hac30774_15","timestamp":1674413907998,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f9f57247de2e642da2f52d11a4d97871","name":"ros-noetic-turtle-tf2","requires":[],"size":72661,"version":"0.2.3","binstar":{"package_id":"63cd87b259c09271a414f6f1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8088c1b6a9f0181d0b9ee4c957bac397d7b1db141d1c8232e8fc765704321a22"},"ros-noetic-rqt-launch-0.4.9-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-roslaunch","ros-noetic-rospy","ros-noetic-rqt-console","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common"],"build":"py39hac30774_15","timestamp":1674413790357,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"55bb4b19396d5c303be4cf1acde78569","name":"ros-noetic-rqt-launch","requires":[],"size":44077,"version":"0.4.9","binstar":{"package_id":"63cd87b3dbdf733521cf4b27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"737e52314fbdfc0cfb463e3b6154100bb8dfe77707c65c9786332b50b8a17c11"},"ros-noetic-turtle-tf-0.2.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-tf","ros-noetic-turtlesim"],"build":"py39hac30774_15","timestamp":1674413997127,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9ecfe69a4d806f3ca392bf6a0afcd6ea","name":"ros-noetic-turtle-tf","requires":[],"size":142104,"version":"0.2.3","binstar":{"package_id":"63cd87b45a31eb90f6dfb5c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b598bb9c1c0dbc1eabd23fae7f019e7aa63c0475c208cacf55a75323d46b7146"},"ros-noetic-rqt-dep-0.4.12-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-dotgraph","ros-noetic-qt-gui","ros-noetic-qt-gui-py-common","ros-noetic-rqt-graph","ros-noetic-rqt-gui-py","rospkg"],"build":"py39hac30774_15","timestamp":1674416968655,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"21e38abb340687c801642e93ec608939","name":"ros-noetic-rqt-dep","requires":[],"size":46985,"version":"0.4.12","binstar":{"package_id":"63cd87b5989160afcf5d12d0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8db93f84661d3f095396c0256704106634fcf023ea6ae5bb0aab68479a7d8773"},"ros-noetic-rosapi-0.11.16-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rosbridge-library","ros-noetic-rosgraph","ros-noetic-rosnode","ros-noetic-rospy"],"build":"py39hac30774_15","timestamp":1674468750766,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"07b0f09365967f5034b2c96a1aefcd04","name":"ros-noetic-rosapi","requires":[],"size":136023,"version":"0.11.16","binstar":{"package_id":"63cd8901c37c80a75b01b149","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1192fa4734be0ace589f9e1f3bc9eb108d9d59a4ecf1efbabc863debd113764b"},"ros-noetic-franka-gripper-0.10.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-control-msgs","ros-noetic-libfranka","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-xmlrpcpp"],"build":"py39hac30774_15","timestamp":1674466938627,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"782ea9c927f6d836d833a1a262551b50","name":"ros-noetic-franka-gripper","requires":[],"size":323977,"version":"0.10.1","binstar":{"package_id":"63cd890a5a31eb90f6e0b6b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7d091b5e2737f64c86546383f423cdee1307812ec2943c5bbe1a1add608c20d1"},"ros-noetic-franka-hw-0.10.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-combined-robot-hw","ros-noetic-controller-interface","ros-noetic-franka-msgs","ros-noetic-hardware-interface","ros-noetic-joint-limits-interface","ros-noetic-libfranka","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-srvs","ros-noetic-urdf"],"build":"py39hac30774_15","timestamp":1674466682739,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b27121b17c43e973147925bcb6947f6b","name":"ros-noetic-franka-hw","requires":[],"size":328182,"version":"0.10.1","binstar":{"package_id":"63cd890f5a31eb90f6e0c213","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"020ee98bd8ffd5154a9de3b4fca4f3299bee8919f85ca27f39604ca288cc099e"},"ros-noetic-image-common-1.12.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-calibration-parsers","ros-noetic-camera-info-manager","ros-noetic-image-transport","ros-noetic-polled-camera"],"build":"py39hac30774_15","timestamp":1674462787146,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"54d99a567eb1b5ad914a7f17b3850710","name":"ros-noetic-image-common","requires":[],"size":7871,"version":"1.12.0","binstar":{"package_id":"63cd8b4514201bfa45a1a21f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"43be3b3c2e93d796c4c1fe63c7c1c4567d23d6dd8e858f1d93bb0da10b903a4c"},"ros-noetic-tf2-tools-0.7.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-tf2","ros-noetic-tf2-msgs","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674468994743,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"322c71e503b94dfca27c3e61b44617ec","name":"ros-noetic-tf2-tools","requires":[],"size":22866,"version":"0.7.6","binstar":{"package_id":"63cd8b47be293b9e162ebaea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"61c9472e28bb2b642827f9c0e66edfd8cf8f49153482a5e5a8816f895a87631b"},"ros-noetic-twist-mux-3.1.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-twist-mux-msgs","ros-noetic-visualization-msgs"],"build":"py39hac30774_15","timestamp":1674469035619,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"091bb124eca9a8174602cd1daf76fa34","name":"ros-noetic-twist-mux","requires":[],"size":123404,"version":"3.1.3","binstar":{"package_id":"63cd8cc8c37c80a75b03bb72","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d1c2e98592bb370317a273ae847574daa572ea375c2fe7f98951973f9587e3bf"},"ros-noetic-tf2-sensor-msgs-0.7.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python-orocos-kdl","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674466864331,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c6303e4ed67a587c3dd2c34e8889792a","name":"ros-noetic-tf2-sensor-msgs","requires":[],"size":16383,"version":"0.7.6","binstar":{"package_id":"63cd8d0a68b198bb95115bb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee95a47431d1f7090445c2560c9e8adbbe0a0f9488f013b54e96ebdeb0c9ddb0"},"ros-noetic-forward-command-controller-0.21.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674461328323,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"14520b568ad368dd9a1c5adb26be01b7","name":"ros-noetic-forward-command-controller","requires":[],"size":13872,"version":"0.21.0","binstar":{"package_id":"63cd8d96d0e8c095e205cfbd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fefedd8a5c3ef6e6c0f1166c4fcfb3f701ed2428fe2ed55e7f5d5a07885326ba"},"ros-noetic-control-toolbox-1.19.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-dynamic-reconfigure","ros-noetic-message-runtime","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-std-msgs","tinyxml"],"build":"py39hac30774_15","timestamp":1674461930372,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4cf8c8c325ebb331faeee4b6eb21338b","name":"ros-noetic-control-toolbox","requires":[],"size":140243,"version":"1.19.0","binstar":{"package_id":"63cd8d99b23346582c7854be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7a281e8976b9f50aa3b10f6241913152aa605873d51b88b6c0bbba87aa2da311"},"ros-noetic-depth-image-proc-1.17.0-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-eigen-conversions","ros-noetic-image-geometry","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-ros"],"build":"py39hd1c2957_15","timestamp":1674461795910,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ace610c499d71cb4581c48dfc0b48bef","name":"ros-noetic-depth-image-proc","requires":[],"size":298910,"version":"1.17.0","binstar":{"package_id":"63cd8d9a2ff78d332eb6168e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"df22df8c285088c886f0924059930995520975b4fb9f51bd9f7f1201e5881024"},"ros-noetic-image-proc-1.17.0-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-geometry","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-nodelet-topic-tools","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39hd1c2957_15","timestamp":1674461665737,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c8b604cedc4ba137176feca8b3eb5809","name":"ros-noetic-image-proc","requires":[],"size":260682,"version":"1.17.0","binstar":{"package_id":"63cd8d9bd0e8c095e205d00a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"064c64c38ba33d191774a4774dc0c692086726952298df5aa67ac85577d930ba"},"ros-noetic-actionlib-tutorials-0.2.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-message-runtime","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674416784772,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ff29cdd023e88499e093fb733990f5f9","name":"ros-noetic-actionlib-tutorials","requires":[],"size":442513,"version":"0.2.0","binstar":{"package_id":"63cd934a989160afcf5f665d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"72d2dfe7dc96bb2d948a58743771708421b300febc3b35f58df25a402b99c6cf"},"ros-noetic-rqt-pose-view-0.5.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyopengl","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-gl-dependency","ros-noetic-python-qt-binding","ros-noetic-rospy","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-tf","rospkg","xorg-libx11","xorg-libxext"],"build":"py39hac30774_15","timestamp":1674416901231,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f6491eba569489383beb10f321093e2b","name":"ros-noetic-rqt-pose-view","requires":[],"size":36897,"version":"0.5.11","binstar":{"package_id":"63cd934b68b198bb9512050b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd02b68eab827f671864a9b0d830f58240403573d4c1ae8ea617adf9ca7c308d"},"ros-noetic-ros-core-1.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-class-loader","ros-noetic-cmake-modules","ros-noetic-common-msgs","ros-noetic-gencpp","ros-noetic-geneus","ros-noetic-genlisp","ros-noetic-genmsg","ros-noetic-gennodejs","ros-noetic-genpy","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-ros","ros-noetic-ros-comm","ros-noetic-rosbag-migration-rule","ros-noetic-rosconsole","ros-noetic-rosconsole-bridge","ros-noetic-roscpp-core","ros-noetic-rosgraph-msgs","ros-noetic-roslisp","ros-noetic-rospack","ros-noetic-std-msgs","ros-noetic-std-srvs"],"build":"py39hac30774_15","timestamp":1674416828541,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"294f7d4706cf9101b6a4088f53c51d4a","name":"ros-noetic-ros-core","requires":[],"size":8284,"version":"1.5.0","binstar":{"package_id":"63cd934c5a31eb90f6e40387","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"811e49c2f2945c4bb3b3700d6148cb1707db48caf8b640bb97342a78a923104b"},"ros-noetic-rqt-srv-0.4.9-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosmsg","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-msg"],"build":"py39hac30774_15","timestamp":1674416940433,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1f5ca6f1014161ec2353615bd4f16a84","name":"ros-noetic-rqt-srv","requires":[],"size":16842,"version":"0.4.9","binstar":{"package_id":"63cd934e8ff1ad2742405c16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3040fa8fb17e915547929a358e2fe1d66d46555573d52b337a3ef0722b7ed42c"},"ros-noetic-geometry-tutorials-0.2.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-turtle-tf","ros-noetic-turtle-tf2"],"build":"py39hac30774_15","timestamp":1674417505832,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"35ba42bf32c64fadbc03094e948ddd76","name":"ros-noetic-geometry-tutorials","requires":[],"size":9544,"version":"0.2.3","binstar":{"package_id":"63cd93d6d0e8c095e208c53d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fe5a33a7e59c0364fea4028ad0a92a2c9eefe91eeb60f1ff0e5e73694eb73dc7"},"ros-noetic-jackal-description-0.8.5-py39ha182ace_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-lms1xx","ros-noetic-pointgrey-camera-description","ros-noetic-robot-state-publisher","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39ha182ace_3","timestamp":1674417378829,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2b8ed43da76b44a4b593b486a2ba65ea","name":"ros-noetic-jackal-description","requires":[],"size":916474,"version":"0.8.5","binstar":{"package_id":"63cd93d8a64974fd09273cb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f798e54d263083db3949b42f4269b12dd0a504dc9c13876ad667709c5f61830"},"ros-noetic-diagnostics-1.11.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-aggregator","ros-noetic-diagnostic-analysis","ros-noetic-diagnostic-common-diagnostics","ros-noetic-diagnostic-updater","ros-noetic-self-test"],"build":"py39hac30774_15","timestamp":1674417399810,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0555eb3aa0b90dfd6fc208429e2d0fd1","name":"ros-noetic-diagnostics","requires":[],"size":8990,"version":"1.11.0","binstar":{"package_id":"63cd93da989160afcf5f74f8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b53f39699beac60485870bafc1b30dc5e4ddfec40dcddb250de84d39f7d5a4f"},"ros-noetic-interactive-marker-tutorials-0.11.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-interactive-markers","ros-noetic-roscpp","ros-noetic-tf","ros-noetic-visualization-msgs"],"build":"py39hac30774_15","timestamp":1674417461920,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"46f3d120cf33c6da04db9e384afb2887","name":"ros-noetic-interactive-marker-tutorials","requires":[],"size":153899,"version":"0.11.0","binstar":{"package_id":"63cd93dc5a31eb90f6e4590e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9d312f13db9f2e1ca6d971912d46da00c59312887a91b259df9c221f156e5c75"},"ros-noetic-rqt-action-0.4.9-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-rqt-msg","ros-noetic-rqt-py-common"],"build":"py39hac30774_15","timestamp":1674417312393,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a9e23d3cfb6bf72ef1c0af5fddbd7c2a","name":"ros-noetic-rqt-action","requires":[],"size":16842,"version":"0.4.9","binstar":{"package_id":"63cd93dedbdf733521d5ab42","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09b7eeba2bac735d7861d6f1bd79310f190d113c87813aaca559688ac029fd2c"},"ros-noetic-compressed-image-transport-1.14.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport"],"build":"py39hac30774_15","timestamp":1674461137318,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c9474ecac3453d55ad335bd67a8a45e3","name":"ros-noetic-compressed-image-transport","requires":[],"size":151958,"version":"1.14.0","binstar":{"package_id":"63cd94aec37c80a75b0717dd","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8dcf80c80bd23d92d27ef596f707c8aea7dbf3b693868473836844544916cfb0"},"ros-noetic-imu-sensor-controller-0.21.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-controller-manager","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39hac30774_15","timestamp":1674467050304,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"22521bae977e7b6212c550629b2859f3","name":"ros-noetic-imu-sensor-controller","requires":[],"size":62411,"version":"0.21.0","binstar":{"package_id":"63cd94b1d0e8c095e20911ba","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"590fffbf322073171bba533bbacdbb403aacbd765424a5c6162c3ff1edf91dbd"},"ros-noetic-force-torque-sensor-controller-0.21.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-controller-manager","ros-noetic-geometry-msgs","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674467161577,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9dc14742e9596ac8d1cf2668d1404057","name":"ros-noetic-force-torque-sensor-controller","requires":[],"size":61032,"version":"0.21.0","binstar":{"package_id":"63cd94b668b198bb951221b6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45c0337ff93ba912049015d508d3ba41862f9bfac4708236995f694a748f89cd"},"ros-noetic-common-tutorials-0.2.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-tutorials","ros-noetic-nodelet-tutorial-math","ros-noetic-pluginlib-tutorials","ros-noetic-turtle-actionlib"],"build":"py39hac30774_15","timestamp":1674417306898,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"45f2eec31e1494cf309b2d46b308b888","name":"ros-noetic-common-tutorials","requires":[],"size":8957,"version":"0.2.0","binstar":{"package_id":"63cd94e6989160afcf5ff522","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5eeab517316af18f5241c3365c8b7a65caf845570e8a414164ca89fc72d687b2"},"ros-noetic-joint-state-controller-0.21.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39hac30774_15","timestamp":1674461601771,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9e48ee539ab9f0dd502abd469745c4e7","name":"ros-noetic-joint-state-controller","requires":[],"size":67570,"version":"0.21.0","binstar":{"package_id":"63cd953cc37c80a75b0756bb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b64df15e83b26ca2064063776cdb20dcd71de57f1e70439c9fc922f18b3e3656"},"ros-noetic-rqt-plot-0.4.13-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","matplotlib-base","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-python-qt-binding","ros-noetic-qt-gui-py-common","ros-noetic-qwt-dependency","ros-noetic-rosgraph","ros-noetic-rostopic","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-std-msgs","rospkg"],"build":"py39hac30774_15","timestamp":1674436205856,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"31906fc28da9939cc8062892d3e111a5","name":"ros-noetic-rqt-plot","requires":[],"size":74719,"version":"0.4.13","binstar":{"package_id":"63cd953fd0e8c095e20948c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a9af396b6dce66419d5f61ebf118dbe983375da62d9f4dbf84e1c9a9c15d8ca7"},"ros-noetic-rqt-image-view-0.4.16-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-geometry-msgs","ros-noetic-image-transport","ros-noetic-rqt-gui","ros-noetic-rqt-gui-cpp","ros-noetic-sensor-msgs","xorg-libx11","xorg-libxext"],"build":"py39hac30774_15","timestamp":1674436299041,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0c57e72fb1d260ae2ac166322e681085","name":"ros-noetic-rqt-image-view","requires":[],"size":78527,"version":"0.4.16","binstar":{"package_id":"63cd95418ff1ad2742410e13","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"16a22a4df542d9fbe082d4e0c2d0404c88565d6399cfd4dd6111cea388b9d173"},"ros-noetic-ros-base-1.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-bond-core","ros-noetic-dynamic-reconfigure","ros-noetic-nodelet-core","ros-noetic-ros-core"],"build":"py39hac30774_15","timestamp":1674417353192,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3e9e7f11ae6b61271bbc039d1d50d33d","name":"ros-noetic-ros-base","requires":[],"size":8165,"version":"1.5.0","binstar":{"package_id":"63cd9565d0e8c095e20950c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f11d54e51604afbb0c3edc1d32f43caee04b8e086f766fb7e6c76f35c6c7510e"},"ros-noetic-ros-control-0.19.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-combined-robot-hw","ros-noetic-controller-interface","ros-noetic-controller-manager","ros-noetic-controller-manager-msgs","ros-noetic-hardware-interface","ros-noetic-joint-limits-interface","ros-noetic-realtime-tools","ros-noetic-transmission-interface"],"build":"py39hac30774_15","timestamp":1674466669586,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1e306fa1e026d5c365d141f9625ffbf6","name":"ros-noetic-ros-control","requires":[],"size":8217,"version":"0.19.6","binstar":{"package_id":"63cd95f2b23346582c79c7dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cfd5439ce17a0758ad06fcc911995039b0ee2e4f3399310524361ac4dbf643e0"},"ros-noetic-rosbridge-server-0.11.16-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["autobahn","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosapi","ros-noetic-rosauth","ros-noetic-rosbridge-library","ros-noetic-rosbridge-msgs","ros-noetic-rospy","tornado","twisted"],"build":"py39hac30774_15","timestamp":1674470281388,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"92f43fcb4d014977a9c7eb119ba04bae","name":"ros-noetic-rosbridge-server","requires":[],"size":53590,"version":"0.11.16","binstar":{"package_id":"63cd95f55a31eb90f6e4bfb3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"de584b0ec0499e43457172e37d21d1ecbf1288467e1d045f7c308f4b35112139"},"ros-noetic-position-controllers-0.21.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-forward-command-controller","ros-noetic-hardware-interface","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674462749364,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"573ea379aad17916b5a3ba137dc589c5","name":"ros-noetic-position-controllers","requires":[],"size":75510,"version":"0.21.0","binstar":{"package_id":"63cd9a670273ee116ae47e63","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e08f2184159b41003fbadc6ebddbb4647a480d0097550884c86e3407bf0d384"},"ros-noetic-velocity-controllers-0.21.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-forward-command-controller","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-urdf"],"build":"py39hac30774_15","timestamp":1674466880859,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7611be6d3f4d4ba36072d5900c6c3391","name":"ros-noetic-velocity-controllers","requires":[],"size":95290,"version":"0.21.0","binstar":{"package_id":"63cd9a69dbdf733521d84247","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6488f8ec9cbe875cd2750e322327dc1f8537728e4360b7a9cd524f65e7f147ba"},"ros-noetic-amcl-1.17.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python-orocos-kdl >=1.5.1,<1.6.0a0","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-rosbag","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-srvs","ros-noetic-tf2","ros-noetic-tf2-msgs","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674468990204,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a06c787d42437e8f6ba354b609e4b2a4","name":"ros-noetic-amcl","requires":[],"size":336533,"version":"1.17.3","binstar":{"package_id":"63cd9a6d2ff78d332eb95e25","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cbbf0f8ef3f20ebf48270c66d0ad44ba09f023314fcd1e1381cf1031665d0d0d"},"ros-noetic-diff-drive-controller-0.21.0-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-controller-interface","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-hardware-interface","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-realtime-tools","ros-noetic-tf","ros-noetic-urdf"],"build":"py39hd1c2957_15","timestamp":1674462817526,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3acf4b3456d255ed819663932ed5887b","name":"ros-noetic-diff-drive-controller","requires":[],"size":177174,"version":"0.21.0","binstar":{"package_id":"63cd9a6fdbdf733521d84319","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eaa44cfd14a5877989e85120db559b536bc265ccc2755a06bbbed0ce726b7f37"},"ros-noetic-gmapping-1.4.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nav-msgs","ros-noetic-nodelet","ros-noetic-openslam-gmapping","ros-noetic-roscpp","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674466805188,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"69db7be00e93a0f0d81c6c245d10558c","name":"ros-noetic-gmapping","requires":[],"size":414267,"version":"1.4.2","binstar":{"package_id":"63cd9a89dbdf733521d847e9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b9d707457230b53af00712b2b90bcd90768a88a680d5e09de51806f69e5b0286"},"ros-noetic-realsense2-camera-2.3.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-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":"py39hac30774_15","timestamp":1674469158528,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ab16a6c0f483f85c0b1a5ffca69d0861","name":"ros-noetic-realsense2-camera","requires":[],"size":434712,"version":"2.3.2","binstar":{"package_id":"63cd9a8bdbdf733521d8489e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4c4c77c80e9b015c3191c60d412f08a0a36dde9889e2d5cb58aae92379ceb5e5"},"ros-noetic-gazebo-ros-2.9.2-py39h67aadc1_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=7.5.0","libgcc-ng >=7.5.0","libstdcxx-ng >=7.5.0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-gazebo-dev","ros-noetic-gazebo-msgs","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf","tbb >=2021.7.0","tinyxml"],"build":"py39h67aadc1_15","timestamp":1674461549727,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c9e49576c86955f3e5fda22538215d32","name":"ros-noetic-gazebo-ros","requires":[],"size":475899,"version":"2.9.2","binstar":{"package_id":"63cd9b9b8ff1ad27424363d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0504d0b124363841bf6e331b1226fac31a1f9950b3bc9060a21ec855a8226c35"},"ros-noetic-gazebo-ros-2.9.2-py39h66bfe64_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=7.5.0","libgcc-ng >=7.5.0","libstdcxx-ng >=7.5.0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-gazebo-dev","ros-noetic-gazebo-msgs","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-rosgraph-msgs","ros-noetic-roslib","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf","tbb >=2021.9.0","tinyxml"],"subdir":"linux-64","timestamp":1695499521109,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39h66bfe64_16","md5":"b06ffeee1603adce4abf2580ae7011f7","name":"ros-noetic-gazebo-ros","requires":[],"size":476562,"version":"2.9.2","binstar":{"package_id":"63cd9b9b8ff1ad27424363d8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6e995c36f69331905524b28f56dcd7fc213311629de558a6af79b9163c8e85f7"},"ros-noetic-warehouse-ros-0.9.5-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rostime","ros-noetic-std-msgs","ros-noetic-tf"],"build":"py39hd1c2957_15","timestamp":1674466755150,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e48503a9668f28b36ec5013beaa08f8e","name":"ros-noetic-warehouse-ros","requires":[],"size":120857,"version":"0.9.5","binstar":{"package_id":"63cd9b9d989160afcf60f1c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"98e74c86fc59f73450e864a2fed50d38965eb964d95519d648b5dd9a44eb70f3"},"ros-noetic-nmea-navsat-driver-0.6.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyserial","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-nmea-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674466964810,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"34865d92e9cca4908088de74d10fb9b8","name":"ros-noetic-nmea-navsat-driver","requires":[],"size":42022,"version":"0.6.1","binstar":{"package_id":"63cd9d53c37c80a75b0a4686","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"50638ef0308f1f40caa436c0f10a2109b61131166639ab98e5ac9ce9d8f58918"},"ros-noetic-geometry2-0.7.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-tf2","ros-noetic-tf2-bullet","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-kdl","ros-noetic-tf2-msgs","ros-noetic-tf2-py","ros-noetic-tf2-ros","ros-noetic-tf2-sensor-msgs","ros-noetic-tf2-tools"],"build":"py39hac30774_15","timestamp":1674507674493,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"56f69e7289bcbe18e89afaf5bd70cb06","name":"ros-noetic-geometry2","requires":[],"size":8127,"version":"0.7.6","binstar":{"package_id":"63cd9d55c37c80a75b0a4688","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"121b48378998956ea1f717ae2c9d19586b9858e4aa7e4663159dfb3481f95f17"},"ros-noetic-tf-conversions-1.13.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python-orocos-kdl","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-kdl-conversions","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674423574280,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"460c06a5d035973166219d718d57f0ed","name":"ros-noetic-tf-conversions","requires":[],"size":26424,"version":"1.13.2","binstar":{"package_id":"63cd9e5168b198bb95130c53","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"402792f9eed2cacc766733c25e5681b3178fd9752512c2e6d2245ff76298d19e"},"ros-noetic-rqt-nav-view-0.5.7-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-py-common","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674436169725,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bc3f4cfd784befc2b71e5aba0386fcc4","name":"ros-noetic-rqt-nav-view","requires":[],"size":36012,"version":"0.5.7","binstar":{"package_id":"63cd9e53912363225bcece18","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ce68b541ba6e4ac8b52dbf72e05f58334669137cec4ae649ae01acb5f9cf660"},"ros-noetic-pcl-ros-1.7.4-py39h7e6a3dc_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-nodelet-topic-tools","ros-noetic-pcl-conversions","ros-noetic-pcl-msgs","ros-noetic-pluginlib","ros-noetic-rosbag","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-ros","xorg-libx11","xorg-libxext"],"build":"py39h7e6a3dc_15","timestamp":1674462609771,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"789af00554cde0faef4edd24788111f3","name":"ros-noetic-pcl-ros","requires":[],"size":1942186,"version":"1.7.4","binstar":{"package_id":"63cd9e58dbdf733521daa1d5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3c6bfc5d0a5fdbf4d736f3fb56ce6dfa1aa5b47bdfb8cec62b9b9d52eccfd914"},"ros-noetic-stereo-image-proc-1.17.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-geometry","ros-noetic-image-proc","ros-noetic-image-transport","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-sensor-msgs","ros-noetic-stereo-msgs"],"build":"py39hac30774_15","timestamp":1674462699722,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f4e178a42e2b11dbaa8c296df90e9e41","name":"ros-noetic-stereo-image-proc","requires":[],"size":294179,"version":"1.17.0","binstar":{"package_id":"63cd9e5a989160afcf612380","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bffbc68dced89d4bfd1b7bfdbeca2c56951adb351ae304df17634f0c79f0e88b"},"ros-noetic-imu-filter-madgwick-1.2.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674466773646,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6023e9e6d5aac3e491491a9776e5b0cb","name":"ros-noetic-imu-filter-madgwick","requires":[],"size":207418,"version":"1.2.5","binstar":{"package_id":"63cda06bb23346582c7b4d2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d03b516aaf724d123a5b546b048c6e4adc0f6d6d4117253e442c05aacb8aa72a"},"ros-noetic-imu-complementary-filter-1.2.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674466842510,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c8b2ff387b96c63fef696873a2d4094f","name":"ros-noetic-imu-complementary-filter","requires":[],"size":137960,"version":"1.2.5","binstar":{"package_id":"63cda06ccd65eb0e14ab1e74","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eabe4ca38fb4308398d4f5a414b86ac7cd7c9839fa66e172ed609320f8a2a64f"},"ros-noetic-hector-trajectory-server-0.5.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-hector-map-tools","ros-noetic-hector-nav-msgs","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674466998759,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ee3442b84d5faa38653f16def97c9460","name":"ros-noetic-hector-trajectory-server","requires":[],"size":63122,"version":"0.5.2","binstar":{"package_id":"63cda06dedf45d7c2ea7414b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"26d8036a6b1165fb64ec5eb9cb62cc94c45c3c4d50222cd42607465e4e764c50"},"ros-noetic-joint-trajectory-controller-0.21.0-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-angles","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-trajectory-msgs","ros-noetic-urdf"],"build":"py39hd1c2957_15","timestamp":1674466711033,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ad60de71389f3c4f17a37cf8e4db47ab","name":"ros-noetic-joint-trajectory-controller","requires":[],"size":310612,"version":"0.21.0","binstar":{"package_id":"63cda7a0912363225bd0c309","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4cf5e6c7573a42cbc5bca77c8c5a1cf4a8bab1b7244e22509d6a46db5adcfe4a"},"ros-noetic-image-transport-plugins-1.14.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-compressed-depth-image-transport","ros-noetic-compressed-image-transport","ros-noetic-theora-image-transport"],"build":"py39hac30774_15","timestamp":1674461532207,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3d0903458e302fcc91298bc1f6943ead","name":"ros-noetic-image-transport-plugins","requires":[],"size":9741,"version":"1.14.0","binstar":{"package_id":"63cda859cd65eb0e14acab7f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3ff5ddd18097afb09ab9074b8a448b6b81db0394e2a1118d12075ee4f8fc02b2"},"ros-noetic-robot-localization-2.7.4-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","geographiclib-cpp >=2.1.2,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-cmake-modules","ros-noetic-diagnostic-msgs","ros-noetic-diagnostic-updater","ros-noetic-eigen-conversions","ros-noetic-geographic-msgs","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39hac30774_15","timestamp":1674466805592,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"737afb14d36e286e7b65b5d9296ddeca","name":"ros-noetic-robot-localization","requires":[],"size":783267,"version":"2.7.4","binstar":{"package_id":"63cda8b5d0e8c095e212df59","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0e3224bdc8c1167cbf2f8c867f12c78e702cfe052cb8ed35c8c4c11435c5f8a3"},"ros-noetic-image-rotate-1.17.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674461149788,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1a118023c87e982cd337d7547b04384c","name":"ros-noetic-image-rotate","requires":[],"size":131641,"version":"1.17.0","binstar":{"package_id":"63cda8bf5a31eb90f6ea475b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"db696e260dae3f6c88162394a01aba58a6567e5dfb5702be5923b36a22219462"},"ros-noetic-gripper-action-controller-0.21.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-urdf"],"build":"py39hac30774_15","timestamp":1674467112128,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fa1f777cb8cf6bf488df148669256f8f","name":"ros-noetic-gripper-action-controller","requires":[],"size":141201,"version":"0.21.0","binstar":{"package_id":"63cdab045a31eb90f6eb1139","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd2e31d47006521d4a248c5ecde34f0f1ec10dcd0b7283030a55c569effc8f4a"},"ros-noetic-rqt-bag-plugins-0.5.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pillow","pycairo","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-rosbag","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-rqt-bag","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-plot","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674436829948,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e1be92d33ef2584c925c4299b85e76ba","name":"ros-noetic-rqt-bag-plugins","requires":[],"size":50041,"version":"0.5.1","binstar":{"package_id":"63cdab0c912363225bd2787a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fb48f93723e2bc87fe45cc70cb00be65243157d0e363f9c94dc2983c52ffee4b"},"ros-noetic-ros-numpy-0.0.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674466682433,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c16a76e93e74a13b1813732f64cd93e0","name":"ros-noetic-ros-numpy","requires":[],"size":35311,"version":"0.0.5","binstar":{"package_id":"63cdad600273ee116ae82275","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6a03ddb0b6f5f4a3502638e75b8b26e3a0e808540515df0287ee134a5f36909d"},"ros-noetic-tf2-web-republisher-0.3.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-tf","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674507303792,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"40f84f40aed6aee67a89b12d12396f65","name":"ros-noetic-tf2-web-republisher","requires":[],"size":191118,"version":"0.3.2","binstar":{"package_id":"63cdad6359c09271a41af6e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9db7ab11260f023ef082f4899e7d69ea790b9e8c057ce0a826f000cf36f1f093"},"ros-noetic-rosbridge-suite-0.11.16-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosapi","ros-noetic-rosbridge-library","ros-noetic-rosbridge-server"],"build":"py39hac30774_15","timestamp":1674507575283,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"024d38c230d0b8e68ece44fddb0c4621","name":"ros-noetic-rosbridge-suite","requires":[],"size":8411,"version":"0.11.16","binstar":{"package_id":"63cdad67c37c80a75b0fb239","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5844739abef95655857a2da0af478640d0e41680b5fb93fff3ffe480f6fe1c79"},"ros-noetic-mbf-utility-0.4.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-tf","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674466767461,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d581a990ae38072f4ebbf25ccc531936","name":"ros-noetic-mbf-utility","requires":[],"size":36307,"version":"0.4.0","binstar":{"package_id":"63cdad748ff1ad274248812f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3edf4832fcc351cb4902870bfd25f86d976844fa3250b181242e17095d86b0e1"},"ros-noetic-geometry-1.13.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-eigen-conversions","ros-noetic-kdl-conversions","ros-noetic-tf","ros-noetic-tf-conversions"],"build":"py39hac30774_15","timestamp":1674436436369,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"da17f1338f9d5ebcfb37dbc9df0c3eb5","name":"ros-noetic-geometry","requires":[],"size":9390,"version":"1.13.2","binstar":{"package_id":"63cdb1592b70bce8309906fe","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bc2a7a0797bf5bdb6bdb3cf53fbca13980d00b514e3f3df1cf151e5dbc2bc486"},"ros-noetic-velodyne-gazebo-plugins-1.0.13-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gazebo-ros","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674466846657,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"551b736826ec6717f7bc4d9571420e54","name":"ros-noetic-velodyne-gazebo-plugins","requires":[],"size":176348,"version":"1.0.13","binstar":{"package_id":"63cdb2ccc37c80a75b11b496","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e6fe66391af1c6a053b2c8d2524c4e81d40f8728e668ce0b2783af39c3f49930"},"ros-noetic-perception-pcl-1.7.4-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pcl-conversions","ros-noetic-pcl-msgs","ros-noetic-pcl-ros"],"build":"py39hac30774_15","timestamp":1674463228114,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9c8d587ed402bdb93ac4e55b60707545","name":"ros-noetic-perception-pcl","requires":[],"size":9698,"version":"1.7.4","binstar":{"package_id":"63cdb2d08ff1ad27424a71a5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"49c5a85687913eea82aacc2f9ba1e70c61560ff5555f5a30f1723c11e952b967"},"ros-noetic-pointgrey-camera-description-0.15.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-robot-state-publisher","ros-noetic-urdf","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674466678421,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fbf07eb996451867a54595cf8631cbc8","name":"ros-noetic-pointgrey-camera-description","requires":[],"size":34548,"version":"0.15.1","binstar":{"package_id":"63cdb2d20273ee116ae9004d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c52868419ebb2b3edec877eaccaa2a89b1e5dd98562583379db81491342d9225"},"ros-noetic-turtlebot3-gazebo-1.3.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gazebo","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-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":"py39hac30774_15","timestamp":1674468962705,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"63a7beec5b3fc968e1e1a7da49fa2573","name":"ros-noetic-turtlebot3-gazebo","requires":[],"size":1498271,"version":"1.3.2","binstar":{"package_id":"63cdb4775a31eb90f6ed1873","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"901e334573f1e63f245836c49009ea8e6df405d943895410dd06364cd92492cb"},"ros-noetic-turtlebot3-bringup-1.2.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-hls-lfcd-lds-driver","ros-noetic-joint-state-publisher","ros-noetic-robot-state-publisher","ros-noetic-roscpp","ros-noetic-rosserial-python","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-turtlebot3-description","ros-noetic-turtlebot3-msgs","ros-noetic-turtlebot3-teleop"],"build":"py39hac30774_15","timestamp":1674468763676,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1e2c60d8840b86de0a600c293ad423b2","name":"ros-noetic-turtlebot3-bringup","requires":[],"size":66980,"version":"1.2.5","binstar":{"package_id":"63cdb47b5a31eb90f6ed1d57","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"04a11af66e4bfffddcd63c4110ab3e1ab7d6e44a9c201a6984d9901170d66439"},"ros-noetic-turtlebot3-fake-1.3.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-nav-msgs","ros-noetic-robot-state-publisher","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf","ros-noetic-turtlebot3-msgs"],"build":"py39hac30774_15","timestamp":1674466738255,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"37444339b4d141bf1dcb86e639eb1419","name":"ros-noetic-turtlebot3-fake","requires":[],"size":53234,"version":"1.3.2","binstar":{"package_id":"63cdb47d8ff1ad27424b1dd6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2251187739d21985fd25576b27f46490bd88521add9fa65df8cb64d781009b71"},"ros-noetic-costmap-2d-1.17.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-laser-geometry","ros-noetic-map-msgs","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rostest","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-visualization-msgs","ros-noetic-voxel-grid"],"build":"py39hac30774_15","timestamp":1674468927728,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fd58e1d2f6937cf28708182e30fd38b4","name":"ros-noetic-costmap-2d","requires":[],"size":634122,"version":"1.17.3","binstar":{"package_id":"63cdb4a5912363225bd4f4cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"656d1ecce2d09848c1852c76599afe486c65d7bdc0de003f7df77635b1453227"},"ros-noetic-gazebo-ros-control-2.9.2-py39h67aadc1_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=7.5.0","libgcc-ng >=7.5.0","libstdcxx-ng >=7.5.0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-control-toolbox","ros-noetic-controller-manager","ros-noetic-gazebo-ros","ros-noetic-hardware-interface","ros-noetic-joint-limits-interface","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-transmission-interface","ros-noetic-urdf","tbb >=2021.7.0"],"build":"py39h67aadc1_15","timestamp":1674462266645,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8a6b99a29e880f838dcfc68ea3b09867","name":"ros-noetic-gazebo-ros-control","requires":[],"size":282925,"version":"2.9.2","binstar":{"package_id":"63cdb4a714201bfa45a546c1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"11ab80806d042b94ca09e1a52cff45d15b04deb99c8b526748fd12212c2b20e6"},"ros-noetic-laser-filters-1.9.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-dynamic-reconfigure","ros-noetic-filters","ros-noetic-laser-geometry","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674461006653,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d852809171d9b5ad6a252182a81dfe4a","name":"ros-noetic-laser-filters","requires":[],"size":875633,"version":"1.9.0","binstar":{"package_id":"63cdb4a9c37c80a75b121f2f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0c9ab13a997c4511326bd094e606a7615857330eda8b9e79244d528163b39aae"},"ros-noetic-moveit-resources-fanuc-moveit-config-0.8.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-moveit-resources-fanuc-description","ros-noetic-robot-state-publisher","ros-noetic-tf2-ros","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674466702841,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"596463f9e58d9e4312621fa8e370c1a9","name":"ros-noetic-moveit-resources-fanuc-moveit-config","requires":[],"size":25309,"version":"0.8.2","binstar":{"package_id":"63cdb4aad0e8c095e217246d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e7cf38e45f63cc5e3630e40378bd5771fb3166d5a375ffe67b314bda4c89b716"},"ros-noetic-slam-toolbox-1.5.7-py39hfbb246e_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["ceres-solver >=2.1.0,<2.2.0a0","eigen >=3.4.0,<3.4.1.0a0","libgcc-ng >=12","libgcc-ng >=12","liblapack >=3.9.0,<4.0a0","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-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":"py39hfbb246e_15","timestamp":1674507537216,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3fe021d9c2ef6e6454e7a867c98f30ca","name":"ros-noetic-slam-toolbox","requires":[],"size":1953091,"version":"1.5.7","binstar":{"package_id":"63cdb583c37c80a75b124caa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e231ea43fb50f8e60ba0a3e8473b9df1c8fb1017af80dbdd4ba2237add85c446"},"ros-noetic-effort-controllers-0.21.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-forward-command-controller","ros-noetic-hardware-interface","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-urdf"],"build":"py39hac30774_15","timestamp":1674467237599,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3c4719933a10217ed9446ca8f147d623","name":"ros-noetic-effort-controllers","requires":[],"size":113698,"version":"0.21.0","binstar":{"package_id":"63cdb698b23346582c7fa779","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d1bb7dc1717c6812713da01d3ff251372f7192536a7e63a9b49cab42791e6509"},"ros-noetic-ackermann-steering-controller-0.21.0-py39h2583fa0_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-diff-drive-controller","ros-noetic-hardware-interface","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-tf","urdfdom >=3.1.0,<3.2.0a0"],"build":"py39h2583fa0_15","timestamp":1674466717494,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4944d2666b60d6f8ed6a0c41145b7009","name":"ros-noetic-ackermann-steering-controller","requires":[],"size":103867,"version":"0.21.0","binstar":{"package_id":"63cdb699c37c80a75b12bcef","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3506e25455bd95f18d01cd9e288cf5066ea1e54598954983320ec0313bd5fe9d"},"ros-noetic-laser-assembler-1.7.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-filters","ros-noetic-laser-geometry","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674461080770,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0d74ad346b56e1504c96fae4bc255bdd","name":"ros-noetic-laser-assembler","requires":[],"size":593374,"version":"1.7.8","binstar":{"package_id":"63cdb69dcd65eb0e14b0e502","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ba64e37bfe7549220c908a9612a6eb788a6eccd1ed7cb83e4332b536691df0f"},"ros-noetic-interactive-marker-twist-server-1.2.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-interactive-markers","ros-noetic-roscpp","ros-noetic-tf","ros-noetic-visualization-msgs"],"build":"py39hac30774_15","timestamp":1674466866955,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d13a417a952d267f181d05b48f329df2","name":"ros-noetic-interactive-marker-twist-server","requires":[],"size":41843,"version":"1.2.2","binstar":{"package_id":"63cdb6acd0e8c095e21800be","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e29a82836d4159ba322702ac55d8c2078896509fbef1475fcb36a08a2b2de8d4"},"ros-noetic-franka-control-0.10.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-controller-manager","ros-noetic-franka-description","ros-noetic-franka-gripper","ros-noetic-franka-hw","ros-noetic-franka-msgs","ros-noetic-geometry-msgs","ros-noetic-joint-state-publisher","ros-noetic-joint-trajectory-controller","ros-noetic-libfranka","ros-noetic-pluginlib","ros-noetic-realtime-tools","ros-noetic-robot-state-publisher","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-srvs","ros-noetic-tf","ros-noetic-tf2-msgs"],"build":"py39hac30774_15","timestamp":1674469219474,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"153a0cb99fc66f634882bbc362ba45c6","name":"ros-noetic-franka-control","requires":[],"size":253947,"version":"0.10.1","binstar":{"package_id":"63cdb7e6b23346582c7fca07","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"071d983d90562743686406fae36e339a4728fd180f652c6f71309e79b5d39ba5"},"ros-noetic-image-pipeline-1.17.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-calibration","ros-noetic-depth-image-proc","ros-noetic-image-proc","ros-noetic-image-publisher","ros-noetic-image-rotate","ros-noetic-image-view","ros-noetic-stereo-image-proc"],"build":"py39hac30774_15","timestamp":1674463280359,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b0bf6833adfa857578d221eb123189b1","name":"ros-noetic-image-pipeline","requires":[],"size":10144,"version":"1.17.0","binstar":{"package_id":"63cdb7ed2ff78d332ec1945c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2822f5c075fb417dd2cc57d11c2fa9e7cbb91b5884b12bb4431e4339ed8975b"},"ros-noetic-robot-1.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-diagnostics","ros-noetic-executive-smach","ros-noetic-filters","ros-noetic-geometry","ros-noetic-joint-state-publisher","ros-noetic-kdl-parser","ros-noetic-robot-state-publisher","ros-noetic-ros-base","ros-noetic-urdf","ros-noetic-urdf-parser-plugin","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674436885254,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1f8b5d823795fbcc152b90fc5c4cfaa1","name":"ros-noetic-robot","requires":[],"size":9262,"version":"1.5.0","binstar":{"package_id":"63cdc3e8dbdf733521eb8531","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f089a60afd2f0d77352b506a60d3531d4a78f67ea7eb606b2b5d9f52b4c5f76"},"ros-noetic-velodyne-simulator-1.0.13-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-velodyne-description","ros-noetic-velodyne-gazebo-plugins"],"build":"py39hac30774_15","timestamp":1674469887542,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c6e16c02ea19f006e32ef6805e823c30","name":"ros-noetic-velodyne-simulator","requires":[],"size":10085,"version":"1.0.13","binstar":{"package_id":"63cdc3ead0e8c095e21e2fc7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"26b0158a0acd7511afa4a702af11839383470bc72f6788f9d43b40d49e122bdc"},"ros-noetic-ros-controllers-0.21.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ackermann-steering-controller","ros-noetic-diff-drive-controller","ros-noetic-effort-controllers","ros-noetic-force-torque-sensor-controller","ros-noetic-forward-command-controller","ros-noetic-gripper-action-controller","ros-noetic-imu-sensor-controller","ros-noetic-joint-state-controller","ros-noetic-joint-trajectory-controller","ros-noetic-position-controllers","ros-noetic-velocity-controllers"],"build":"py39hac30774_15","timestamp":1674468811254,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7a84a5b3f035035a6ddc1ae67a3e8ca2","name":"ros-noetic-ros-controllers","requires":[],"size":9009,"version":"0.21.0","binstar":{"package_id":"63cdc3f0d0e8c095e21e30a3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"da543cd3877a339a50c60228411511d093be07a8a92a862f78f9dc2a9e428cc4"},"ros-noetic-franka-example-controllers-0.10.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-interface","ros-noetic-dynamic-reconfigure","ros-noetic-eigen-conversions","ros-noetic-franka-control","ros-noetic-franka-description","ros-noetic-franka-gripper","ros-noetic-franka-hw","ros-noetic-geometry-msgs","ros-noetic-hardware-interface","ros-noetic-joint-limits-interface","ros-noetic-libfranka","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-realtime-tools","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-tf","ros-noetic-tf-conversions","ros-noetic-urdf","ros-noetic-visualization-msgs"],"build":"py39hac30774_15","timestamp":1674470632081,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f23eb7c04fff8780ff49b745aa03348b","name":"ros-noetic-franka-example-controllers","requires":[],"size":579817,"version":"0.10.1","binstar":{"package_id":"63cdc4a2dbdf733521ebf6dc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32aadfdcd7f904b82901e3d66aa957ebab50eefac3b0b83c02fb7f9baa148329"},"ros-noetic-turtlebot3-example-1.2.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-interactive-markers","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-turtlebot3-bringup","ros-noetic-turtlebot3-msgs","ros-noetic-visualization-msgs"],"build":"py39hac30774_15","timestamp":1674469586436,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7d7abc44520b47f7938a9c117c012598","name":"ros-noetic-turtlebot3-example","requires":[],"size":63005,"version":"1.2.5","binstar":{"package_id":"63cdc4a8cd65eb0e14b57d68","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b0d9d31109a78969450aaeae3110d1fa3db6252dee8e8b384aa6a5fdadd64f8b"},"ros-noetic-turtlebot3-slam-1.2.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-turtlebot3-bringup"],"build":"py39hac30774_15","timestamp":1674469550602,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5ad48a4049705d1c904493ba996137b8","name":"ros-noetic-turtlebot3-slam","requires":[],"size":52188,"version":"1.2.5","binstar":{"package_id":"63cdc4acdbdf733521ebf789","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"38f92093c23b08ad86c3a3994aa035429eedb775999b3d4b53a4d239662e8f3c"},"ros-noetic-turtlebot3-simulations-1.3.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-turtlebot3-fake","ros-noetic-turtlebot3-gazebo"],"build":"py39hac30774_15","timestamp":1674469916769,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ea48fbc83a503a5fcfda0774df9b4d68","name":"ros-noetic-turtlebot3-simulations","requires":[],"size":10185,"version":"1.3.2","binstar":{"package_id":"63cdc4aecd65eb0e14b57d98","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"37ccca526b1f62c1c1f7a0bbfd1171ed23805d84135232dec4f7a93bea61b1ea"},"ros-noetic-laser-pipeline-1.6.4-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-laser-assembler","ros-noetic-laser-filters","ros-noetic-laser-geometry"],"build":"py39hac30774_15","timestamp":1674461486596,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"31e30b307f858d0ca25a9d52647bcf01","name":"ros-noetic-laser-pipeline","requires":[],"size":8986,"version":"1.6.4","binstar":{"package_id":"63cdd077dbdf733521efe04d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c569fe4a1038eb60cbd7201e298782579de4b817caacbfee02031c42b8841c04"},"ros-noetic-perception-1.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-image-common","ros-noetic-image-pipeline","ros-noetic-image-transport-plugins","ros-noetic-laser-pipeline","ros-noetic-perception-pcl","ros-noetic-ros-base","ros-noetic-vision-opencv"],"build":"py39hac30774_15","timestamp":1674463711467,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c1e7c4cb47230882e8af68892c602100","name":"ros-noetic-perception","requires":[],"size":10171,"version":"1.5.0","binstar":{"package_id":"63cdd7e086de531a28e0ea71","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a720191ab40625feca3199ad0ae7487c56bb77d372b319fde81e671eeb82be40"},"ros-noetic-rviz-1.14.19-py39hc38ce71_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","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":"py39hc38ce71_15","timestamp":1674435199221,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4d49e355410e048e738d3b4dece1a3b9","name":"ros-noetic-rviz","requires":[],"size":3349657,"version":"1.14.19","binstar":{"package_id":"63cdda52dbdf733521f4689d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cf517f953b14086e825d1d7d7b9b52763f460e5a26eeefcd5f68e509cd02d82f"},"ros-noetic-rqt-rviz-0.7.0-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-rqt-gui","ros-noetic-rqt-gui-cpp","ros-noetic-rviz","xorg-libx11","xorg-libxext"],"build":"py39hd1c2957_15","timestamp":1674436397211,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7c48b8f87d30d77a89f7320d45064c83","name":"ros-noetic-rqt-rviz","requires":[],"size":58124,"version":"0.7.0","binstar":{"package_id":"63cddf59dbdf733521f677f8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b976f88191b406b380bf4a03cd6b27f1ce845119c488c868238dca5edf1ac46b"},"ros-noetic-rviz-python-tutorial-0.11.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rviz"],"build":"py39hac30774_15","timestamp":1674436222709,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c8514b8ec511e33f56bfdd71d5e1022c","name":"ros-noetic-rviz-python-tutorial","requires":[],"size":19433,"version":"0.11.0","binstar":{"package_id":"63cddfa85a31eb90f6f8c65b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f634dad4a17c02b1f435651ed8765527390e71ab9cc28bdf4a82fb181d46833b"},"ros-noetic-jackal-viz-0.4.0-py39ha182ace_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-joint-state-publisher","ros-noetic-joint-state-publisher-gui","ros-noetic-rviz"],"build":"py39ha182ace_3","timestamp":1674436515334,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"11a365733b435463da74e5dc4b378f96","name":"ros-noetic-jackal-viz","requires":[],"size":17313,"version":"0.4.0","binstar":{"package_id":"63cddfaa912363225bdf3cc6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"368c7dc97fc5d56ab9f71b7570bbfb485624ea03f8882ef9f881ad253908fca9"},"ros-noetic-librviz-tutorial-0.11.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rviz","xorg-libx11","xorg-libxext"],"build":"py39hac30774_15","timestamp":1674436412378,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"66b2c8c8e31b372b21ec73bf74816331","name":"ros-noetic-librviz-tutorial","requires":[],"size":42026,"version":"0.11.0","binstar":{"package_id":"63cddfab0273ee116aefaea9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10d840396c53672df37c2351b55b6a4270d90b8eb5a92dd5f3b1f0cacf216dcf"},"ros-noetic-rviz-plugin-tutorials-0.11.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rviz","xorg-libx11","xorg-libxext"],"build":"py39hac30774_15","timestamp":1674436333937,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2f8c331c0c5a5c1ee473ba71efd49e35","name":"ros-noetic-rviz-plugin-tutorials","requires":[],"size":151184,"version":"0.11.0","binstar":{"package_id":"63cddfad989160afcf69fcff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"530386b79611d0932fed50b5c92240148ba18641054c6a0b3f703f74bf89e316"},"ros-noetic-urdf-tutorial-0.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-joint-state-publisher-gui","ros-noetic-robot-state-publisher","ros-noetic-rviz","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674436466215,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"51fcb7090bc02f79cbe6d7193e80a5ea","name":"ros-noetic-urdf-tutorial","requires":[],"size":823606,"version":"0.5.0","binstar":{"package_id":"63cddfaf59c09271a4221fe1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f02fd542dd1dea09bec2c47febec0814891201b824ef8f14c098c9683463bbfa"},"ros-noetic-moveit-resources-panda-moveit-config-0.8.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-joint-state-publisher-gui","ros-noetic-moveit-resources-panda-description","ros-noetic-robot-state-publisher","ros-noetic-rviz","ros-noetic-tf2-ros","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674466833097,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5e3c84b9121bbdcd1157334c544b69d8","name":"ros-noetic-moveit-resources-panda-moveit-config","requires":[],"size":29748,"version":"0.8.2","binstar":{"package_id":"63cde1a159c09271a422989e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f69c9f6db9db50e682c9516a7559e158111000605466789ac38d62e53807742f"},"ros-noetic-jackal-desktop-0.4.0-py39ha182ace_3.tar.bz2":{"build_number":3,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-jackal-viz"],"build":"py39ha182ace_3","timestamp":1674437023035,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cd97e2b705193734ecdb108180d5806c","name":"ros-noetic-jackal-desktop","requires":[],"size":9744,"version":"0.4.0","binstar":{"package_id":"63cde1a4b23346582c86752a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"47a4b80ab7253ac5f10e684206eed124ecd63adcbc59a4404149f8b4571010c7"},"ros-noetic-visualization-tutorials-0.11.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-interactive-marker-tutorials","ros-noetic-librviz-tutorial","ros-noetic-rviz-plugin-tutorials","ros-noetic-rviz-python-tutorial","ros-noetic-visualization-marker-tutorials"],"build":"py39hac30774_15","timestamp":1674436967669,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b496e7ae5218283878c1de79b1ba9ebc","name":"ros-noetic-visualization-tutorials","requires":[],"size":10164,"version":"0.11.0","binstar":{"package_id":"63cde1a68ff1ad274259f6a8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5339efaab0f5904ff00d5672e7640f937a3986022e934cd1baa9bd3f26e34c80"},"ros-noetic-rqt-robot-dashboard-0.5.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-python-qt-binding","ros-noetic-qt-gui","ros-noetic-rospy","ros-noetic-rqt-console","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-nav-view","ros-noetic-rqt-robot-monitor"],"build":"py39hac30774_15","timestamp":1674436787338,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"038a075127c1b4eadcf15ade8e8d516d","name":"ros-noetic-rqt-robot-dashboard","requires":[],"size":1674930,"version":"0.5.8","binstar":{"package_id":"63cde1a859c09271a42298e6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ebd687f93376ecc427c8a3dc414d142f0056bcd79c274953085ff4382f59bc73"},"ros-noetic-rqt-common-plugins-0.4.9-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rqt-action","ros-noetic-rqt-bag","ros-noetic-rqt-bag-plugins","ros-noetic-rqt-console","ros-noetic-rqt-dep","ros-noetic-rqt-graph","ros-noetic-rqt-image-view","ros-noetic-rqt-launch","ros-noetic-rqt-logger-level","ros-noetic-rqt-msg","ros-noetic-rqt-plot","ros-noetic-rqt-publisher","ros-noetic-rqt-py-common","ros-noetic-rqt-py-console","ros-noetic-rqt-reconfigure","ros-noetic-rqt-service-caller","ros-noetic-rqt-shell","ros-noetic-rqt-srv","ros-noetic-rqt-top","ros-noetic-rqt-topic","ros-noetic-rqt-web"],"build":"py39hac30774_15","timestamp":1674437343094,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f266e7b994d8e2663b88cdca503e9897","name":"ros-noetic-rqt-common-plugins","requires":[],"size":10321,"version":"0.4.9","binstar":{"package_id":"63cde32c912363225be036ee","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0dd8d48c6335bfc46e10668679921cebeba56eab107b81e285055af04bf8c268"},"ros-noetic-viz-1.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ros-base","ros-noetic-rqt-common-plugins","ros-noetic-rqt-robot-plugins","ros-noetic-rviz"],"build":"py39hac30774_15","timestamp":1674437378436,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5774b90d69f6f7b41f8791a0e226bad6","name":"ros-noetic-viz","requires":[],"size":10372,"version":"1.5.0","binstar":{"package_id":"63cde32d5a31eb90f6f9b3d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a7b0625d285d714665510f2f264f65817f305b754a9f9bfb1a931b3ca7d0321"},"ros-noetic-rqt-robot-plugins-0.5.8-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rqt-moveit","ros-noetic-rqt-nav-view","ros-noetic-rqt-pose-view","ros-noetic-rqt-robot-dashboard","ros-noetic-rqt-robot-monitor","ros-noetic-rqt-robot-steering","ros-noetic-rqt-runtime-monitor","ros-noetic-rqt-rviz","ros-noetic-rqt-tf-tree"],"build":"py39hac30774_15","timestamp":1674437288737,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1635840315ecdf2dc3cd57f88f1a1a36","name":"ros-noetic-rqt-robot-plugins","requires":[],"size":10837,"version":"0.5.8","binstar":{"package_id":"63cde32db23346582c869736","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"110f472d5c18e4b56d0ab5d05b8f36842af651e156ea52ebbe623853279393a6"},"ros-noetic-desktop-1.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-common-tutorials","ros-noetic-geometry-tutorials","ros-noetic-joint-state-publisher-gui","ros-noetic-robot","ros-noetic-ros-tutorials","ros-noetic-roslint","ros-noetic-urdf-tutorial","ros-noetic-visualization-tutorials","ros-noetic-viz"],"build":"py39hac30774_15","timestamp":1674437417817,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"977e59ce9f33a0e391db74f75721a98e","name":"ros-noetic-desktop","requires":[],"size":10774,"version":"1.5.0","binstar":{"package_id":"63cde32e8ff1ad27425a77b0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"244827486768cae5e9fe25c5ecf0650783982c40437a88a7168027bd5ee918b7"},"ros-noetic-rviz-imu-plugin-1.2.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rviz","xorg-libx11","xorg-libxext"],"build":"py39hac30774_15","timestamp":1674466947383,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4bb9ba077dfc5687cbff5540776e1359","name":"ros-noetic-rviz-imu-plugin","requires":[],"size":124672,"version":"1.2.5","binstar":{"package_id":"63cde835912363225be18fc1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52c90f6a744497a05fe08fcbc6b2d49cd8ec4c43222b2c6904413e0473be5980"},"ros-noetic-costmap-converter-0.0.13-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674470441304,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0d2c52ef2aa4581db0141e78f0cf97be","name":"ros-noetic-costmap-converter","requires":[],"size":483244,"version":"0.0.13","binstar":{"package_id":"63cde836c37c80a75b25a534","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8e5c758f792e296e12debdad5a3681f3357207d92e8b5eac285364e6ba2b986b"},"ros-noetic-imu-tools-1.2.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-imu-complementary-filter","ros-noetic-imu-filter-madgwick","ros-noetic-rviz-imu-plugin"],"build":"py39hac30774_15","timestamp":1674507639690,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"30aec6fee859daabf06dedbf34283bcf","name":"ros-noetic-imu-tools","requires":[],"size":10146,"version":"1.2.5","binstar":{"package_id":"63cded40912363225be2beb3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"799323a319fd6924f3ce0f44c7acaf33df0fa7c355e3f4e75a23c0d78c8706b0"},"ros-noetic-urdf-sim-tutorial-0.5.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-controller-manager","ros-noetic-diff-drive-controller","ros-noetic-gazebo-ros","ros-noetic-gazebo-ros-control","ros-noetic-joint-state-controller","ros-noetic-position-controllers","ros-noetic-robot-state-publisher","ros-noetic-rqt-robot-steering","ros-noetic-rviz","ros-noetic-urdf-tutorial","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674463346605,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"95bb7dcacbdf01bb2c1c5353c9241008","name":"ros-noetic-urdf-sim-tutorial","requires":[],"size":19974,"version":"0.5.1","binstar":{"package_id":"63cdf1add0e8c095e234b6d7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dc1f63b2b4067dbd6407406c80354600309489a429b4894c4754fa368abfae27"},"ros-noetic-hector-gazebo-plugins-0.5.4-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gazebo","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-gazebo-ros","ros-noetic-geographic-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674466990990,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2bd6807f9eed3686ac5dc7eafa3f8a3b","name":"ros-noetic-hector-gazebo-plugins","requires":[],"size":1028976,"version":"0.5.4","binstar":{"package_id":"63cdf1e2c37c80a75b2892e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77c26dba931a5b05fa502f9c016fa90e10be98c949fa4d754cfa73a7b8ab0eec"},"ros-noetic-hector-gazebo-plugins-0.5.4-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","gazebo","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-gazebo-ros","ros-noetic-geographic-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf"],"subdir":"linux-64","timestamp":1695499731050,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"6b9f0363190241def653164c05b63131","name":"ros-noetic-hector-gazebo-plugins","requires":[],"size":1043306,"version":"0.5.4","binstar":{"package_id":"63cdf1e2c37c80a75b2892e5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"589483951ded88646f20354e08a7631f806a262ba5035a57ef01ca23e4c5e3b9"},"ros-noetic-gazebo-plugins-2.9.2-py39hd1a2550_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-camera-info-manager","ros-noetic-cv-bridge","ros-noetic-diagnostic-updater","ros-noetic-dynamic-reconfigure","ros-noetic-gazebo-dev","ros-noetic-gazebo-msgs","ros-noetic-gazebo-ros","ros-noetic-geometry-msgs","ros-noetic-image-transport","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-nodelet","ros-noetic-polled-camera","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rosgraph-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf","ros-noetic-tf2-ros","ros-noetic-trajectory-msgs","ros-noetic-urdf","ros-noetic-visualization-msgs","tbb >=2021.7.0"],"build":"py39hd1a2550_15","timestamp":1674462750988,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e46e67245ad46a40b4e0df2f68fd6eea","name":"ros-noetic-gazebo-plugins","requires":[],"size":3369786,"version":"2.9.2","binstar":{"package_id":"63cdf1ecc37c80a75b289417","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5feabba87d43f16949dd1820a98e4db3fe5b4c72160f86bae1fd07851b57cdff"},"ros-noetic-nav-core-1.17.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-geometry-msgs","ros-noetic-std-msgs","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674470228879,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ca21fa06bd9d5c48c04da7427a826adf","name":"ros-noetic-nav-core","requires":[],"size":15675,"version":"1.17.3","binstar":{"package_id":"63cdf328b23346582c88f8ea","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2c0bcd30c5417795eb773d49d84e15c327e114f2a394d1248728c5f0712b6dc6"},"ros-noetic-gazebo-ros-pkgs-2.9.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gazebo-dev","ros-noetic-gazebo-msgs","ros-noetic-gazebo-plugins","ros-noetic-gazebo-ros"],"build":"py39hac30774_15","timestamp":1674463180923,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4d1ca100c8460e95eb2f5ba9f80c4746","name":"ros-noetic-gazebo-ros-pkgs","requires":[],"size":10359,"version":"2.9.2","binstar":{"package_id":"63cdf5458ff1ad27425fd4b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d28eaefb1902fb82f874b0b8e269edefa0550bb049b259488bbbb2dec25d048"},"ros-noetic-mbf-costmap-core-0.4.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-geometry-msgs","ros-noetic-mbf-abstract-core","ros-noetic-mbf-utility","ros-noetic-nav-core","ros-noetic-std-msgs","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674507437104,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"eab8e7e3af14bf14f7747333b9b92430","name":"ros-noetic-mbf-costmap-core","requires":[],"size":16014,"version":"0.4.0","binstar":{"package_id":"63cdf547989160afcf6c8e0e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"20c3b712320b8cec6eabe1b324e1896efd0a713d23db45407768d1b5a5c49cf2"},"ros-noetic-jackal-gazebo-0.4.0-py39ha182ace_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","python","python_abi 3.9.* *_cp39","ros-noetic-effort-controllers","ros-noetic-gazebo-plugins","ros-noetic-gazebo-ros","ros-noetic-gazebo-ros-control","ros-noetic-gazebo-ros-pkgs","ros-noetic-hector-gazebo-plugins","ros-noetic-jackal-control","ros-noetic-jackal-description","ros-noetic-joy","ros-noetic-position-controllers","ros-noetic-velocity-controllers","ros-noetic-velodyne-simulator"],"build":"py39ha182ace_3","timestamp":1680039561666,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e603919bc573733d7bf7e4efebc6fec7","name":"ros-noetic-jackal-gazebo","requires":[],"size":819749,"version":"0.4.0","binstar":{"package_id":"63ce106a208d2222c0b2adc5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"605aff272874c712991ad586bd2a0d431b0432de5f0e82b5a92c7a64be914396"},"ros-noetic-franka-gazebo-0.10.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-boost-sml","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-controller-interface","ros-noetic-controller-manager","ros-noetic-eigen-conversions","ros-noetic-franka-example-controllers","ros-noetic-franka-gripper","ros-noetic-franka-hw","ros-noetic-franka-msgs","ros-noetic-gazebo-ros","ros-noetic-gazebo-ros-control","ros-noetic-hardware-interface","ros-noetic-joint-limits-interface","ros-noetic-kdl-parser","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-roslaunch","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-transmission-interface","ros-noetic-urdf"],"build":"py39hac30774_15","timestamp":1674507830502,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bd004f6ca572b35a8d07a4c348ffc999","name":"ros-noetic-franka-gazebo","requires":[],"size":596999,"version":"0.10.1","binstar":{"package_id":"63ce1119912363225bed2e60","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"215ab0135692236ae345b7ff1a7e8e70b71add21365302df800d711231ca7854"},"ros-noetic-moveit-core-1.1.11-py39h3fca0de_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","bullet","console_bridge >=1.0.2,<1.1.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-stl-containers","ros-noetic-fcl","ros-noetic-geometric-shapes","ros-noetic-geometry-msgs","ros-noetic-kdl-parser","ros-noetic-moveit-msgs","ros-noetic-octomap","ros-noetic-octomap-msgs","ros-noetic-pluginlib","ros-noetic-pybind11-catkin","ros-noetic-random-numbers","ros-noetic-rosconsole","ros-noetic-roslib","ros-noetic-rostime","ros-noetic-ruckig","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-srdfdom","ros-noetic-std-msgs","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-trajectory-msgs","ros-noetic-urdf","ros-noetic-visualization-msgs","ros-noetic-xmlrpcpp","urdfdom >=3.1.0,<3.2.0a0","urdfdom_headers"],"build":"py39h3fca0de_15","timestamp":1674470171216,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a6360fe90d05b168532efce345ff5924","name":"ros-noetic-moveit-core","requires":[],"size":2206478,"version":"1.1.11","binstar":{"package_id":"63ce1394cd65eb0e14c9f42f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d842b0143c459edebea795ae1375816e398b24203dc16486aea410c787d6e33f"},"ros-noetic-clear-costmap-recovery-1.17.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-nav-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674507550125,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c16fdd9c1cc2b6038c3c108ee894dae5","name":"ros-noetic-clear-costmap-recovery","requires":[],"size":47305,"version":"1.17.3","binstar":{"package_id":"63ce1739989160afcf72bf28","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8daf469f09a76509924b923974bdfcade7aad92febbace2948fcaebb8af082a5"},"ros-noetic-navfn-1.17.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2-ros","ros-noetic-visualization-msgs"],"build":"py39hac30774_15","timestamp":1674507500308,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a7f4b772d7014be64d8fc0723a36ad1e","name":"ros-noetic-navfn","requires":[],"size":156555,"version":"1.17.3","binstar":{"package_id":"63ce173b68b198bb951c5e50","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"25b7b322215a080c8947dcb2a7c6529fc1aeddfd17cf81e00d4ec36c34236836"},"ros-noetic-base-local-planner-1.17.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-costmap-2d","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-visualization-msgs","ros-noetic-voxel-grid"],"build":"py39hac30774_15","timestamp":1674507435388,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"48b964d744183ded68800c9301ba4bb3","name":"ros-noetic-base-local-planner","requires":[],"size":298986,"version":"1.17.3","binstar":{"package_id":"63ce173e8ff1ad27426d0557","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"350a7f088900ae16197c32ab4694c5fcee751edee3c84ab542c00d81e439a25d"},"ros-noetic-franka-ros-0.10.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-franka-control","ros-noetic-franka-description","ros-noetic-franka-example-controllers","ros-noetic-franka-gazebo","ros-noetic-franka-gripper","ros-noetic-franka-hw","ros-noetic-franka-msgs","ros-noetic-franka-visualization"],"build":"py39hac30774_15","timestamp":1674508163342,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dd50b134f68819f6becb0f6de26c36cf","name":"ros-noetic-franka-ros","requires":[],"size":10462,"version":"0.10.1","binstar":{"package_id":"63ce1831dbdf7335210a719c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e2e8c1c0985a29484b7b924cac17529306db7724587140341add860411e66e7b"},"ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin-0.8.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-conversions","ros-noetic-moveit-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2-kdl"],"build":"py39hac30774_15","timestamp":1674507361868,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6f37c800b33cb57971e0526fe9e82051","name":"ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin","requires":[],"size":159830,"version":"0.8.2","binstar":{"package_id":"63ce1a25d0e8c095e24669c6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0d854e17729238113a15710f28739f1b21696c374667575a09ce863ccdc6e772"},"ros-noetic-moveit-ros-occupancy-map-monitor-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometric-shapes","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-octomap","ros-noetic-pluginlib","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674507316285,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a6943e5cc0b11ca6958101dffb7c4728","name":"ros-noetic-moveit-ros-occupancy-map-monitor","requires":[],"size":181890,"version":"1.1.11","binstar":{"package_id":"63ce1b09dbdf7335210c4582","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e38136b9c2b4619cdfb53791e62dbab3990ea9a8cbec8891c0872cbc86dd3a96"},"ros-noetic-moveit-simple-controller-manager-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-control-msgs","ros-noetic-moveit-core","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674507604821,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c3b3428cd04cb17de2b0b38fb1632607","name":"ros-noetic-moveit-simple-controller-manager","requires":[],"size":226146,"version":"1.1.11","binstar":{"package_id":"63ce1b0d989160afcf738400","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7facb89c25a15e76cfab05fc3057ed107f5fa2234e5a120d527270b8cc0f498f"},"ros-noetic-chomp-motion-planner-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674507531492,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4380d0204c3cc2af37b7aefae576fb66","name":"ros-noetic-chomp-motion-planner","requires":[],"size":154747,"version":"1.1.11","binstar":{"package_id":"63ce1bdac37c80a75b3d8f45","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b0f48ccd3b9583949018c79215c2bbf54ff2b55393ad3beaa11a7888d3de772f"},"ros-noetic-rotate-recovery-1.17.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-geometry-msgs","ros-noetic-nav-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674508376839,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b7cbdb6115e7555401bea4abd714aff9","name":"ros-noetic-rotate-recovery","requires":[],"size":49126,"version":"1.17.3","binstar":{"package_id":"63ce1ed5989160afcf744ee0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c7ac9f43eea5cdbf5debed7978daa623b021fb0405b5cb6f519b184357063897"},"ros-noetic-moveit-resources-prbt-moveit-config-0.8.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-state-publisher","ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin","ros-noetic-moveit-resources-prbt-support","ros-noetic-robot-state-publisher","ros-noetic-rviz","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674508463329,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c32f17de0e16449fccc6120ebcfa5026","name":"ros-noetic-moveit-resources-prbt-moveit-config","requires":[],"size":25285,"version":"0.8.2","binstar":{"package_id":"63ce205359c09271a42e43a1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3a58ff03b589b8880f09a1186017417c4bd48a5949a4f32dd615517c9836d3e6"},"ros-noetic-moveit-ros-control-interface-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-controller-manager-msgs","ros-noetic-moveit-core","ros-noetic-moveit-simple-controller-manager","ros-noetic-pluginlib","ros-noetic-trajectory-msgs"],"build":"py39hac30774_15","timestamp":1674508431565,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"236f69841bda4b31bf12cf9581451570","name":"ros-noetic-moveit-ros-control-interface","requires":[],"size":193626,"version":"1.1.11","binstar":{"package_id":"63ce205568b198bb951d6290","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd360058f7bde253b422d467d77db007c8902267a5984efee7efc0aaf77f2b00"},"ros-noetic-moveit-ros-planning-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-dynamic-reconfigure","ros-noetic-message-filters","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-occupancy-map-monitor","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-srdfdom","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-msgs","ros-noetic-tf2-ros","ros-noetic-urdf"],"build":"py39hac30774_15","timestamp":1674508321302,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a1a3f6be4d67e11468019cf8ddd1fa16","name":"ros-noetic-moveit-ros-planning","requires":[],"size":1392653,"version":"1.1.11","binstar":{"package_id":"63ce2059c37c80a75b3f5ec4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"01e30cd8139f8281a7721b12bd65bc48a958ef7bbd38d85cb30c3dfc65141a4c"},"ros-noetic-simulators-1.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gazebo-ros-pkgs","ros-noetic-robot","ros-noetic-rqt-common-plugins","ros-noetic-rqt-robot-plugins"],"build":"py39hac30774_15","timestamp":1674463665031,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dfbbac882b6b91d4b4c97fdfc602c1ef","name":"ros-noetic-simulators","requires":[],"size":11277,"version":"1.5.0","binstar":{"package_id":"63ce2bed0273ee116afd146c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1aef65bb1b17ac0cdebcd78f0fd7284c0fff1bea4b968745bfa1f30f8c560a6a"},"ros-noetic-moveit-kinematics-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","lxml","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-kdl","urdfdom"],"build":"py39hac30774_15","timestamp":1674508975633,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0730411129fab7151137ffa27a72be3c","name":"ros-noetic-moveit-kinematics","requires":[],"size":338137,"version":"1.1.11","binstar":{"package_id":"63ce2f148ff1ad2742762b05","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f172e47d341bb19b0819d1b74ab78bace3248c52bebb0156541d638a2da7962"},"ros-noetic-moveit-ros-robot-interaction-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-interactive-markers","ros-noetic-moveit-ros-planning","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674509229783,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bcfa369813274ef4e578c1b60602ddf5","name":"ros-noetic-moveit-ros-robot-interaction","requires":[],"size":160601,"version":"1.1.11","binstar":{"package_id":"63ce2f19d0e8c095e251962f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84cd849fdbd4c4eebb94a042e6467002649b40c5e713c27805f2e3f602a8a9bd"},"ros-noetic-moveit-ros-perception-1.1.11-py39hc7ead1d_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["_openmp_mutex >=4.5","freeglut >=3.2.2,<4.0a0","glew >=2.1.0,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libgomp","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-image-transport","ros-noetic-message-filters","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-occupancy-map-monitor","ros-noetic-moveit-ros-planning","ros-noetic-nodelet","ros-noetic-object-recognition-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-urdf","xorg-libx11","xorg-libxext"],"build":"py39hc7ead1d_15","timestamp":1674509361173,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"eb3445fd90152ed5c89ea7435e0e2ee3","name":"ros-noetic-moveit-ros-perception","requires":[],"size":405532,"version":"1.1.11","binstar":{"package_id":"63ce2f1c912363225bf5fbe6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8158d2038dd28d277e70e34fc5ccb342b11ac05e680488dcfd17cc3de2f1cce3"},"ros-noetic-move-base-1.17.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-base-local-planner","ros-noetic-clear-costmap-recovery","ros-noetic-costmap-2d","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-move-base-msgs","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-navfn","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rotate-recovery","ros-noetic-std-srvs","ros-noetic-tf2-ros","ros-noetic-visualization-msgs"],"build":"py39hac30774_15","timestamp":1674509162719,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d88abf22c65953db834f9a2d9cc06a7e","name":"ros-noetic-move-base","requires":[],"size":334053,"version":"1.17.3","binstar":{"package_id":"63ce2f222b70bce8309b1ecb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b2510a5360345344c073c4f2f7113fc2fe1597390a47d5f8392e1aa52f42316d"},"ros-noetic-moveit-ros-warehouse-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-ros-planning","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-tf2-eigen","ros-noetic-tf2-ros","ros-noetic-warehouse-ros"],"build":"py39hac30774_15","timestamp":1674509089658,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1c1612334eac80bde6c44177f316f48c","name":"ros-noetic-moveit-ros-warehouse","requires":[],"size":610793,"version":"1.1.11","binstar":{"package_id":"63ce2f275a31eb90f6111bd8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1d9163e3a7f088e86df410298b76f22c4e2b8b4e8a818b31960108c53b52ac7b"},"ros-noetic-turtlebot3-navigation-1.2.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-amcl","ros-noetic-map-server","ros-noetic-move-base","ros-noetic-turtlebot3-bringup"],"build":"py39hac30774_15","timestamp":1674510018020,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"84dc1a468b4226315ead0feaaa85fc7d","name":"ros-noetic-turtlebot3-navigation","requires":[],"size":18591,"version":"1.2.5","binstar":{"package_id":"63ce3c010273ee116a00cb87","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b3990da779b5474d0764c245808f174bbf8e89434426cf6a2d45c4beaa3d9d7"},"ros-noetic-moveit-ros-move-group-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-moveit-core","ros-noetic-moveit-kinematics","ros-noetic-moveit-ros-planning","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-srvs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674509808799,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0607b9a06209e7237395c118f689a459","name":"ros-noetic-moveit-ros-move-group","requires":[],"size":546719,"version":"1.1.11","binstar":{"package_id":"63ce3cc02ff78d332ee8d57b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d388c6d0ae510960571ea829989725ee5ee27e0315fff70a4e9c73f7dacb6a69"},"ros-noetic-moveit-planners-ompl-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-moveit-core","ros-noetic-moveit-ros-planning","ros-noetic-ompl","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-tf2"],"build":"py39hac30774_15","timestamp":1674509013690,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d4924d6b6042da05b6b9f09f6b62f50a","name":"ros-noetic-moveit-planners-ompl","requires":[],"size":565108,"version":"1.1.11","binstar":{"package_id":"63ce3cc6912363225bfac243","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"295516c548b615ea1c5b03ccfd40d3a9eaf53b912c677fbc3edb0bd2a22340e5"},"ros-noetic-moveit-fake-controller-manager-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-core","ros-noetic-moveit-ros-planning","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674508871277,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d730f5383df4bbc121515e9f2033baf2","name":"ros-noetic-moveit-fake-controller-manager","requires":[],"size":83064,"version":"1.1.11","binstar":{"package_id":"63ce3ccbdbdf7335211c754c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c2f3ebf0be47e897b3487fc737216e4559298e0881df8f3995fb098e5de7d3a5"},"ros-noetic-moveit-resources-prbt-pg70-support-0.8.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-resources-prbt-ikfast-manipulator-plugin","ros-noetic-moveit-resources-prbt-moveit-config","ros-noetic-moveit-resources-prbt-support","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674509098245,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"dde696fd56ed69c28c9709dee36af58f","name":"ros-noetic-moveit-resources-prbt-pg70-support","requires":[],"size":17818,"version":"0.8.2","binstar":{"package_id":"63ce3cce912363225bfae548","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ba73d342cfbaac50d4a08992f939f18d9824cf52a8e5c22814efec4327d559e"},"ros-noetic-turtlebot3-1.2.5-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-turtlebot3-bringup","ros-noetic-turtlebot3-description","ros-noetic-turtlebot3-example","ros-noetic-turtlebot3-navigation","ros-noetic-turtlebot3-slam","ros-noetic-turtlebot3-teleop"],"build":"py39hac30774_15","timestamp":1674510375245,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c9b4b0b55d18691a02283156f2160ae5","name":"ros-noetic-turtlebot3","requires":[],"size":9245,"version":"1.2.5","binstar":{"package_id":"63ce40bc5a31eb90f6189a76","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ca8cab3118d798b235b101291a619cc72574d827341f00d9f738f4290de85b8b"},"ros-noetic-rosserial-client-0.9.2-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosbash","ros-noetic-rospy","ros-noetic-rosserial-msgs","ros-noetic-std-msgs","ros-noetic-tf"],"subdir":"linux-64","timestamp":1694252815449,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"d3dfcf15e21190a79f92ed0e97e1b441","name":"ros-noetic-rosserial-client","requires":[],"size":49823,"version":"0.9.2","binstar":{"package_id":"63ce42102ff78d332eeadf06","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"20cbf1f02d2f2348c9f4b6c71ea619c13b5665b2a66884f35ade9d5e8d781476"},"ros-noetic-desktop-full-1.5.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-desktop","ros-noetic-perception","ros-noetic-simulators","ros-noetic-urdf-sim-tutorial"],"build":"py39hac30774_15","timestamp":1674463756287,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9e19cd0958a406a7803e398259c5198f","name":"ros-noetic-desktop-full","requires":[],"size":11925,"version":"1.5.0","binstar":{"package_id":"63ce4a115a31eb90f61d4ea8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1a1fa101ea3af9ea0b064bf6f04252a7bc3afe17b9f6b148f264168f048dce96"},"ros-noetic-criutils-0.1.4-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-baldor","ros-noetic-cv-bridge","ros-noetic-geometry-msgs","ros-noetic-image-geometry","ros-noetic-resource-retriever","ros-noetic-rostopic","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-visualization-msgs","termcolor"],"build":"py39hac30774_15","timestamp":1674466897162,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"25276aa16397c23472d6977d5fcc13ca","name":"ros-noetic-criutils","requires":[],"size":36840,"version":"0.1.4","binstar":{"package_id":"63ce56548ff1ad27428abe48","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8d8f6debbe686187d9f684da0b938e0b38673a33f13f20c1eee91700333971b2"},"ros-noetic-mavros-msgs-1.15.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geographic-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1674466834885,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e37e5cb2f52b45c30eb8d570c201cf58","name":"ros-noetic-mavros-msgs","requires":[],"size":627795,"version":"1.15.0","binstar":{"package_id":"63ce567f2ff78d332ef49b71","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b5b3bbe00869fd496a7a7b9fe66e483d99c5cf2322975620bbd5bfd52ca52523"},"ros-noetic-plotjuggler-ros-1.7.0-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["binutils","boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-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","xorg-libxext"],"build":"py39hd1c2957_15","timestamp":1674466920697,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9f0d0a9c2c90ced06e0187a9b6043fc4","name":"ros-noetic-plotjuggler-ros","requires":[],"size":24717971,"version":"1.7.0","binstar":{"package_id":"63ce569cd0e8c095e26a1f9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09d0c41fdf753b53ce15451e702eb0aac9afb8cee569eae4b18cac2fe601e857"},"ros-noetic-find-object-2d-0.7.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-geometry-msgs","ros-noetic-image-transport","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf","xorg-libx11","xorg-libxext"],"build":"py39hac30774_15","timestamp":1674466914844,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"0e9fb03e8a8a740ea3c1a319efe31538","name":"ros-noetic-find-object-2d","requires":[],"size":814019,"version":"0.7.0","binstar":{"package_id":"63ce5701dbdf7335212ed677","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"20c0cfb99cb81909ef9ed12d7bbedd3133716ca3a02081de21f7a6b14d5327b9"},"ros-noetic-apriltag-ros-3.2.1-py39hc401949_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libgcc-ng >=12","libgcc-ng >=12","libopencv >=4.6.0,<4.6.1.0a0","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","py-opencv >=4.6.0,<5.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-apriltag","ros-noetic-cv-bridge","ros-noetic-geometry-msgs","ros-noetic-image-geometry","ros-noetic-image-transport","ros-noetic-message-runtime","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf","xorg-libx11","xorg-libxext"],"build":"py39hc401949_15","timestamp":1674467000221,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"295579c9fc9efc392e4d282ce1e04976","name":"ros-noetic-apriltag-ros","requires":[],"size":208865,"version":"3.2.1","binstar":{"package_id":"63ce5702dbdf7335212ed684","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7ff22bcba6aaa893b05e3d6a513fe899807e1b17b41e200b988ec2b249e66eaa"},"ros-noetic-rqt-rosmon-2.4.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-rosmon-msgs","ros-noetic-rqt-gui","ros-noetic-rqt-gui-cpp","xorg-libx11","xorg-libxext"],"build":"py39hac30774_15","timestamp":1674467068380,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d8991148e8a3ec20cb0c3a177e8f2c28","name":"ros-noetic-rqt-rosmon","requires":[],"size":73859,"version":"2.4.0","binstar":{"package_id":"63ce5703cd65eb0e14e3f786","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"92b4f3b6340d25591bf8541ec02f8af399664125a030751261acb9e9bcdaf802"},"ros-noetic-rosserial-0.9.2-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":false,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosserial-client","ros-noetic-rosserial-msgs","ros-noetic-rosserial-python"],"subdir":"linux-64","timestamp":1694253324915,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"792f23d81539c8187501d4485f175d9f","name":"ros-noetic-rosserial","requires":[],"size":9496,"version":"0.9.2","binstar":{"package_id":"63ce58ec2ff78d332ef5f865","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f9d952e54336d12e9e7abfd7cd96382e58a29495508e83e828100b577b1942b9"},"ros-noetic-moveit-plugins-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-fake-controller-manager","ros-noetic-moveit-ros-control-interface","ros-noetic-moveit-simple-controller-manager"],"build":"py39hac30774_15","timestamp":1674509847743,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b48238bbcfc3f2422cf3cf8b9166ed7f","name":"ros-noetic-moveit-plugins","requires":[],"size":8501,"version":"1.1.11","binstar":{"package_id":"63ce5b7bc37c80a75b67fb09","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6732b421d2b07ac930c1087d239198a5d653220d43da093177c06403a3c8c5e0"},"ros-noetic-moveit-ros-benchmarks-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-warehouse","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2-eigen"],"build":"py39hac30774_15","timestamp":1674509962766,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"99509fc3dcc16e142ede6cce6659c39b","name":"ros-noetic-moveit-ros-benchmarks","requires":[],"size":384354,"version":"1.1.11","binstar":{"package_id":"63ce5b7d989160afcf843099","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4523794748eb7e807ce1a14d0f9c9ff707ab973271ca66b37d221ab35936da2f"},"ros-noetic-handeye-0.1.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","matplotlib-base","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-baldor","ros-noetic-criutils","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs","scipy"],"build":"py39hac30774_15","timestamp":1674468836249,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d62c40135cd32afed3cb241fb6521805","name":"ros-noetic-handeye","requires":[],"size":60238,"version":"0.1.2","binstar":{"package_id":"63ce5eae912363225b0c9049","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"03989ce4ad1605982ba0a82a454974a91b0f51a60c9bca1164322ca2b75be000"},"ros-noetic-mavros-1.15.0-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","eigen","geographiclib-cpp >=2.1.2,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-diagnostic-updater","ros-noetic-eigen-conversions","ros-noetic-geographic-msgs","ros-noetic-geometry-msgs","ros-noetic-libmavconn","ros-noetic-mavlink","ros-noetic-mavros-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole-bridge","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf2-eigen","ros-noetic-tf2-ros","ros-noetic-trajectory-msgs"],"build":"py39hd1c2957_15","timestamp":1674469140494,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1afca28f4bce110469bd3e1e2b202fa6","name":"ros-noetic-mavros","requires":[],"size":1205825,"version":"1.15.0","binstar":{"package_id":"63ce5f69a64974fd09405946","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c231b93a168d7b2c7ea08cfdd99de1a55e346a3ca0e7ef677d3c31e35b99b3c9"},"ros-noetic-mavros-extras-1.15.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-mavros","ros-noetic-mavros-msgs","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf","ros-noetic-tf2-eigen","ros-noetic-urdf","ros-noetic-visualization-msgs"],"build":"py39hac30774_15","timestamp":1674469784509,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"ab628550aef414c0c76ba13ec0cba881","name":"ros-noetic-mavros-extras","requires":[],"size":560504,"version":"1.15.0","binstar":{"package_id":"63ce621f989160afcf8653c9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"21d8d2cab1a74231afd2008bf2f0771b8c1090c9bc9f052fcd7f3ce327bd11ef"},"ros-noetic-moveit-ros-manipulation-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-dynamic-reconfigure","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-planning","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-tf2-eigen"],"build":"py39hac30774_15","timestamp":1674510310321,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7a2c10bcf1b80ef13ce3b24f90913a1c","name":"ros-noetic-moveit-ros-manipulation","requires":[],"size":445396,"version":"1.1.11","binstar":{"package_id":"63ce64568ff1ad274294d319","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c26609969bdd1eee53ea029689fec86ef11d3b13240bd0903d4f3af16a2e1e71"},"ros-noetic-teb-local-planner-0.9.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-base-local-planner","ros-noetic-costmap-2d","ros-noetic-costmap-converter","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-interactive-markers","ros-noetic-libg2o","ros-noetic-mbf-costmap-core","ros-noetic-mbf-msgs","ros-noetic-message-runtime","ros-noetic-nav-core","ros-noetic-nav-msgs","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-visualization-msgs"],"build":"py39hac30774_15","timestamp":1674508639372,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6cc2840e1ec8672244ec39634da37109","name":"ros-noetic-teb-local-planner","requires":[],"size":913280,"version":"0.9.1","binstar":{"package_id":"63ce645c0273ee116a0da15c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"36991cb29d4ddf0f452b1587ed25003664782e3e621b039f50ae439a9294a526"},"ros-noetic-moveit-ros-planning-interface-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-eigenpy","ros-noetic-geometry-msgs","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-manipulation","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-warehouse","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674510541039,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"293ef68f45b6667e1d349bc59700c3fc","name":"ros-noetic-moveit-ros-planning-interface","requires":[],"size":789106,"version":"1.1.11","binstar":{"package_id":"63ce672986de531a28e92324","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c809c44e782a72588bfeb1a5e198bfbac41d8b80ddba37e88012125b9aad92fc"},"ros-noetic-moveit-ros-visualization-1.1.11-py39ha47c88f_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometric-shapes","ros-noetic-interactive-markers","ros-noetic-moveit-ros-perception","ros-noetic-moveit-ros-planning-interface","ros-noetic-moveit-ros-robot-interaction","ros-noetic-moveit-ros-warehouse","ros-noetic-object-recognition-msgs","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-rviz","ros-noetic-tf2-eigen","xorg-libx11","xorg-libxext"],"build":"py39ha47c88f_15","timestamp":1674511335966,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"81ef7816166fcbf025a15743b9546ddc","name":"ros-noetic-moveit-ros-visualization","requires":[],"size":830367,"version":"1.1.11","binstar":{"package_id":"63ce6b2d68b198bb95298494","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3bec500c79e58aed1889d6526ecfc4ca564721593345940f24830bbfa33c70c6"},"ros-noetic-moveit-commander-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["assimp","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-planning-interface","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-tf"],"build":"py39hac30774_15","timestamp":1674511383882,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"362961d0a15c8590cdac092eceed282d","name":"ros-noetic-moveit-commander","requires":[],"size":87342,"version":"1.1.11","binstar":{"package_id":"63ce6b35b23346582ca72eb0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3bcb891b81c1840f29f3d0aa344d522a54e94e5326da1883f6f9a8346be64e4c"},"ros-noetic-moveit-planners-chomp-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-chomp-motion-planner","ros-noetic-moveit-core","ros-noetic-pluginlib","ros-noetic-roscpp"],"build":"py39hac30774_15","timestamp":1674511457272,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"136a1ca139903e55218dc0631fbb23f8","name":"ros-noetic-moveit-planners-chomp","requires":[],"size":48486,"version":"1.1.11","binstar":{"package_id":"63ce6b38dbdf7335213f6181","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0ba8ed50c16e55f971e5bc7b9ba2ee4943b2a368b79b9ffe17812108fe228944"},"ros-noetic-moveit-setup-assistant-1.1.11-py39ha47c88f_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","ompl >=1.5.2,<1.6.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-core","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-visualization","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rviz","ros-noetic-srdfdom","ros-noetic-urdf","ros-noetic-xacro","xorg-libx11","xorg-libxext","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39ha47c88f_15","timestamp":1674511964254,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8023825bdd4f36405f3305efc7415213","name":"ros-noetic-moveit-setup-assistant","requires":[],"size":1157169,"version":"1.1.11","binstar":{"package_id":"63ce6ef914201bfa45b9c36f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1b0ad8f991cdbb6f528f87d328df9c601556ca15e7e2fc73adaa67e957dc0394"},"ros-noetic-pilz-industrial-motion-planner-testutils-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-commander","ros-noetic-moveit-core","ros-noetic-moveit-msgs"],"build":"py39hac30774_15","timestamp":1674512044310,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"886e8f6c944bcd749c34a42ed6bcb905","name":"ros-noetic-pilz-industrial-motion-planner-testutils","requires":[],"size":160969,"version":"1.1.11","binstar":{"package_id":"63ce6f01c37c80a75b7789af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dba584eba5caa518f43e03eddbf0f0ab6523e2c0d8429b8484728ac5f797fa42"},"ros-noetic-moveit-ros-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-ros-benchmarks","ros-noetic-moveit-ros-manipulation","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-perception","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-planning-interface","ros-noetic-moveit-ros-robot-interaction","ros-noetic-moveit-ros-visualization","ros-noetic-moveit-ros-warehouse"],"build":"py39hac30774_15","timestamp":1674512076967,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"46c268b5a143aa6b2fe0099775ed6962","name":"ros-noetic-moveit-ros","requires":[],"size":10375,"version":"1.1.11","binstar":{"package_id":"63ce6f048ff1ad27429d0182","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"525ce9db14fce01385ba499b2a2a121fa2142910be6d0a5feee36dd1bd2f92c4"},"ros-noetic-moveit-planners-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-chomp-motion-planner","ros-noetic-moveit-planners-chomp","ros-noetic-moveit-planners-ompl","ros-noetic-pilz-industrial-motion-planner"],"build":"py39hac30774_15","timestamp":1674512772406,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"87d29586d69885a3f4303da2d38e3184","name":"ros-noetic-moveit-planners","requires":[],"size":9249,"version":"1.1.11","binstar":{"package_id":"63ce72eb14201bfa45ba6e16","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"22969c554c414ad17bbd39f6d18356c3df270e9f47ee42fac57f8350fa68f3dc"},"ros-noetic-pilz-industrial-motion-planner-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-joint-limits-interface","ros-noetic-moveit-core","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-planning","ros-noetic-moveit-ros-planning-interface","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-kdl","ros-noetic-tf2-ros"],"build":"py39hac30774_15","timestamp":1674512650793,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"695e2ed7e5844eef51354093c21d45e4","name":"ros-noetic-pilz-industrial-motion-planner","requires":[],"size":798254,"version":"1.1.11","binstar":{"package_id":"63ce72eda64974fd09454e65","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"78117899748d275078fd6bc1ee22625b9aacfa7102f4ab71d6e8ebef116dcf0e"},"ros-noetic-panda-moveit-config-0.8.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-franka-description","ros-noetic-joint-state-publisher","ros-noetic-joint-state-publisher-gui","ros-noetic-moveit-fake-controller-manager","ros-noetic-moveit-kinematics","ros-noetic-moveit-planners-ompl","ros-noetic-moveit-ros-move-group","ros-noetic-moveit-ros-visualization","ros-noetic-moveit-setup-assistant","ros-noetic-moveit-simple-controller-manager","ros-noetic-robot-state-publisher","ros-noetic-rviz","ros-noetic-tf2-ros","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674512735955,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"05d2c11131736f6dcdd375a7b690ddc3","name":"ros-noetic-panda-moveit-config","requires":[],"size":32804,"version":"0.8.1","binstar":{"package_id":"63ce72f3c37c80a75b7aff5e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ed79eff58a0f1f4ce00df1d129c766f9d3f01666ecd55253d2fa968f9e2a4077"},"ros-noetic-moveit-1.1.11-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":false,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-moveit-commander","ros-noetic-moveit-core","ros-noetic-moveit-planners","ros-noetic-moveit-plugins","ros-noetic-moveit-ros","ros-noetic-moveit-setup-assistant"],"build":"py39hac30774_15","timestamp":1674512806034,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"cdfe89c939582bf2a716e3b88e92d00f","name":"ros-noetic-moveit","requires":[],"size":10718,"version":"1.1.11","binstar":{"package_id":"63ce72f6989160afcf8c91c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"83fa6a4a9b3ce9efadf3b3e1941767ed20a439db06d07aa9d3d8a8ae9386bb31"},"ros-noetic-fcl-0.6.1-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["eigen","libccd-double >=2.1,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-octomap"],"build":"py39hac30774_15","timestamp":1674541313574,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"11047f0fb0be262828d0eb9c1cb09796","name":"ros-noetic-fcl","requires":[],"size":1813391,"version":"0.6.1","binstar":{"package_id":"63cf7908dbdf733521f63473","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"082646969c6a2616e39b621b18de092b138c170236141ec5e2a786c3fd428c31"},"ros-noetic-fcl-0.6.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","eigen","libccd-double >=2.1,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706497098495,"md5":"6d03cff210f93db35e143e98bf3316c8","name":"ros-noetic-fcl","requires":[],"size":1842555,"version":"0.6.1","binstar":{"package_id":"63cf7908dbdf733521f63473","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4029657cae4dfd482f57edefb0e1c44c24e7ef71fe18d668b0ac116ffd3b159"},"ros-noetic-rosmon-core-2.4.0-py39h6683008_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","ncurses >=6.3,<7.0a0","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cmake-modules","ros-noetic-diagnostic-msgs","ros-noetic-rosbash","ros-noetic-roscpp","ros-noetic-rosfmt","ros-noetic-roslib","ros-noetic-rosmon-msgs","ros-noetic-rospack","ros-noetic-std-msgs","tinyxml","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39h6683008_15","timestamp":1674615469999,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f248787760fc498ac08b4cf2a05c09ff","name":"ros-noetic-rosmon-core","requires":[],"size":511844,"version":"2.4.0","binstar":{"package_id":"63d09afa5a31eb90f660d9fc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"404969a32d0f93b1a0ca0251a74145851c1f7aa0e033c4766bd49560322cc309"},"ros-noetic-rosmon-2.4.0-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosmon-core","ros-noetic-rqt-rosmon"],"build":"py39hac30774_15","timestamp":1674615543387,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"22bf9dc6522cb48670bd41e2e90a8629","name":"ros-noetic-rosmon","requires":[],"size":12448,"version":"2.4.0","binstar":{"package_id":"63d09afbdbdf733521b8bc9d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c90d50b501a73aeba8568e109b4b2577b9547c63bc6e99b1bf278c525dc21a9"},"ros-noetic-urg-node-0.1.18-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-updater","ros-noetic-dynamic-reconfigure","ros-noetic-laser-proc","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-nodelet","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf","ros-noetic-urg-c","ros-noetic-xacro"],"build":"py39hac30774_15","timestamp":1674775999894,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"200f7fb80b764fd799b095922404874c","name":"ros-noetic-urg-node","requires":[],"size":298381,"version":"0.1.18","binstar":{"package_id":"63d30dc459c09271a41a453c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"05efb52fd6dd27644359191fc82ac250d0357ca232258b4de58dc2aa64e59783"},"ros-noetic-urg-c-1.0.405-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1674775805476,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c2bd685f68734683b3fcbdd91aa9050b","name":"ros-noetic-urg-c","requires":[],"size":57992,"version":"1.0.405","binstar":{"package_id":"63d30dc68ff1ad27429ecf14","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c154765436bc24680d70ffaec21b13068a7fe52ffafebac23225296ff0077917"},"ros-noetic-laser-proc-0.1.6-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"build":"py39hac30774_15","timestamp":1674775881883,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a5333fa07769566269bc8e09ea92b909","name":"ros-noetic-laser-proc","requires":[],"size":87464,"version":"0.1.6","binstar":{"package_id":"63d30dc88ff1ad27429ecf5e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e7e1cf50a9a14146c2cf5e71f256e476ebd22773cf7d2fa0455ab1d534520f96"},"ros-noetic-naoqi-driver-0.5.13-py39hd1c2957_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","orocos-kdl >=1.5.1,<1.6.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-image-transport","ros-noetic-kdl-parser","ros-noetic-naoqi-bridge-msgs","ros-noetic-naoqi-libqi","ros-noetic-naoqi-libqicore","ros-noetic-robot-state-publisher","ros-noetic-rosbag-storage","ros-noetic-rosconsole","ros-noetic-tf2-ros"],"build":"py39hd1c2957_15","timestamp":1674796737894,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2168132ad926e253aebd42110ba18be7","name":"ros-noetic-naoqi-driver","requires":[],"size":1223897,"version":"0.5.13","binstar":{"package_id":"63d35ec968b198bb95672613","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"71cfb6c333beca7b7cbf9894da3212282f703cd4736ba815cc39dddf0a47fb12"},"ros-noetic-naoqi-bridge-msgs-0.0.9-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-genmsg","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nav-msgs","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-trajectory-msgs"],"build":"py39hac30774_15","timestamp":1674795960150,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c78388007b393545f76566a3714d5024","name":"ros-noetic-naoqi-bridge-msgs","requires":[],"size":400809,"version":"0.0.9","binstar":{"package_id":"63d35ecf59c09271a43072af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d47d698a620ee8267267fe6cbf548c522621c79476a08d558175a2556795c54"},"ros-noetic-naoqi-libqicore-2.9.7-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-naoqi-libqi"],"build":"py39hac30774_15","timestamp":1674796141189,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"d952ae912b9031bf3d57949839b08f5d","name":"ros-noetic-naoqi-libqicore","requires":[],"size":585448,"version":"2.9.7","binstar":{"package_id":"63d35ed1c37c80a75bd4be01","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eafb0020fcd7dfe0c520b08585dc5b2080fd8fb07319d66f52bd38b6710da1a5"},"ros-noetic-sound-play-0.3.16-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["gst-plugins-base","gst-plugins-good","gst-plugins-ugly","gstreamer","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pygobject","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-audio-common-msgs","ros-noetic-diagnostic-msgs","ros-noetic-message-runtime","ros-noetic-resource-retriever","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy"],"build":"py39hac30774_15","timestamp":1675025760207,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2089f4d2678440c4de06e11b9d9b330a","name":"ros-noetic-sound-play","requires":[],"size":280083,"version":"0.3.16","binstar":{"package_id":"63d6dd63dbdf7335211b72d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3db25adf43ef1be986b570b3e0d909d499d6372f435f546ac2b4ad3d07144857"},"ros-noetic-sound-play-0.3.17-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","gst-plugins-base","gst-plugins-good","gst-plugins-ugly","gstreamer","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pygobject","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-audio-common-msgs","ros-noetic-diagnostic-msgs","ros-noetic-message-runtime","ros-noetic-resource-retriever","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy"],"subdir":"linux-64","timestamp":1694897452054,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"ac230babfe761767efb05f9a766844c4","name":"ros-noetic-sound-play","requires":[],"size":281137,"version":"0.3.17","binstar":{"package_id":"63d6dd63dbdf7335211b72d3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"348df9a1487f9ae9a45df041906c20d1a929f50f518aabff5cfb96e1a2b560e5"},"ros-noetic-audio-common-msgs-0.3.16-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1675025694294,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b968c760230493e101ad9f6a49e71e5c","name":"ros-noetic-audio-common-msgs","requires":[],"size":33746,"version":"0.3.16","binstar":{"package_id":"63d6dd65c37c80a75ba07280","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f028d7c21c2211e19f30e14fc94252dbb5f9e60cc5d061f943ad72bbd524d1f"},"ros-noetic-audio-common-msgs-0.3.17-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498165912,"md5":"17319077d70f19595f68fa33b3db18bb","name":"ros-noetic-audio-common-msgs","requires":[],"size":34545,"version":"0.3.17","binstar":{"package_id":"63d6dd65c37c80a75ba07280","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5ef988f9870149ffc09970d3f79df51d4e1e7100a62dfc40925806f576a10dc8"},"ros-noetic-baldor-0.1.3-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1675110856472,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3f78185d704d3575a5eac273b7262679","name":"ros-noetic-baldor","requires":[],"size":36811,"version":"0.1.3","binstar":{"package_id":"63d829ca2ff78d332e19d563","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"843dfce5757acb7f395df60957b8f46b92551d274e82811a1f3395b5a957e71f"},"ros-noetic-baldor-0.1.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524846704,"md5":"8cbec50d70f597f0ae3fa2ae0f5bfbd7","name":"ros-noetic-baldor","requires":[],"size":38321,"version":"0.1.3","binstar":{"package_id":"63d829ca2ff78d332e19d563","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d36300a4d557414b31e944cc1394c9fee6a66bf172df1852043d81e86a16d3bc"},"ros-noetic-pid-0.0.28-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-std-msgs"],"build":"py39hac30774_15","timestamp":1675193191472,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8c2b67375a9fbffc44a9e3f8f8eb12c4","name":"ros-noetic-pid","requires":[],"size":187838,"version":"0.0.28","binstar":{"package_id":"63d96b6a912363225b710bc3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2ce7cd7ff8fa65978b0fdb93c43927c78d2b6e93079c56b7fa3e7f634df7bcdd"},"ros-noetic-move-slow-and-clear-1.17.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-geometry-msgs","ros-noetic-nav-core","ros-noetic-pluginlib","ros-noetic-roscpp"],"subdir":"linux-64","timestamp":1694252882039,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"c7ec6afc9641c7b9d3a73d2ef8ffe511","name":"ros-noetic-move-slow-and-clear","requires":[],"size":60552,"version":"1.17.3","binstar":{"package_id":"63e5868a14201bfa45c0f340","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dba74af784a905f38c40de3ec7302d06d7178af05251d2392a2a528c4c03337f"},"ros-noetic-global-planner-1.17.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-costmap-2d","ros-noetic-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"],"subdir":"linux-64","timestamp":1694253119023,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"24057b2842ee9f713e2b2debdc5f4c7a","name":"ros-noetic-global-planner","requires":[],"size":175333,"version":"1.17.3","binstar":{"package_id":"63e5868bde175ecc9ddbc3ec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f35c4c77bb74e7da464d2128736e4f60cb9b18bce73e107760f3c57786b6fee7"},"ros-noetic-carrot-planner-1.17.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-angles","ros-noetic-base-local-planner","ros-noetic-costmap-2d","ros-noetic-nav-core","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-tf2","ros-noetic-tf2-ros"],"subdir":"linux-64","timestamp":1694252939300,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"492ad2016f857af1708f1bf34ca81d3b","name":"ros-noetic-carrot-planner","requires":[],"size":46866,"version":"1.17.3","binstar":{"package_id":"63e5868dbd2d12dccac49780","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ef7c84b56e88beacff9f0f72248fe1c6a18a62f32a2d7f685e85fc296ed17c4a"},"ros-noetic-fake-localization-1.17.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nav-msgs","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-tf2-ros"],"subdir":"linux-64","timestamp":1692221107177,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"26e41d42b3f5494182949d2baddea965","name":"ros-noetic-fake-localization","requires":[],"size":129544,"version":"1.17.3","binstar":{"package_id":"63e587aad831fccc8a2e3e43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"838448e54ed1d8cafbb4e5945abeed8080bd9eac4fbd3e1f7ce35455b2167cc7"},"ros-noetic-rgbd-launch-2.4.0-py39hac30774_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-depth-image-proc","ros-noetic-image-proc","ros-noetic-nodelet","ros-noetic-tf2-ros"],"build":"py39hac30774_16","timestamp":1682028284198,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"79b760ada109a5422fc715b30006713b","name":"ros-noetic-rgbd-launch","requires":[],"size":17184,"version":"2.4.0","binstar":{"package_id":"63e587ac0ac8211534858ecf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"35544fd209be292835bc9d521d0b8f41a07936b5b67eb6d5effdc06d5fa2bb47"},"ros-noetic-dwa-local-planner-1.17.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-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"],"subdir":"linux-64","timestamp":1694252854279,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"d3b061b807b089ed45365c0c7cc9bbe5","name":"ros-noetic-dwa-local-planner","requires":[],"size":156986,"version":"1.17.3","binstar":{"package_id":"63e587b0d831fccc8a2e3e9a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d3d6396eebe1b660794e5493041f824080cabbb6e0be492701b260015f33de69"},"ros-noetic-navigation-1.17.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":false,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-amcl","ros-noetic-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"],"subdir":"linux-64","timestamp":1694253370090,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"7db6fdbbb582557ea6b3fad8d1b4af7a","name":"ros-noetic-navigation","requires":[],"size":9906,"version":"1.17.3","binstar":{"package_id":"63e589c9d831fccc8a2ebe0c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86f9d8f8d5084884622144bafc78be2f7767636a0e260ad8dbb527a6c54f3cfb"},"ros-noetic-rosserial-arduino-0.9.2-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-rospy","ros-noetic-rosserial-client","ros-noetic-rosserial-msgs","ros-noetic-rosserial-python"],"subdir":"linux-64","timestamp":1694253479946,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"d07798f5d169e39ba80561e8027e486d","name":"ros-noetic-rosserial-arduino","requires":[],"size":70577,"version":"0.9.2","binstar":{"package_id":"63e589cbd831fccc8a2ebe24","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2122fb59908752a967d36486c7a2578b928fdb9bedb3d241cc7046ab8057658e"},"ros-noetic-rosauth-1.0.1-py39hfeb7e5d_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-roscpp"],"build":"py39hfeb7e5d_15","timestamp":1676584055423,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"21ed580a372035aa205b85183abb18b8","name":"ros-noetic-rosauth","requires":[],"size":56426,"version":"1.0.1","binstar":{"package_id":"63ee9a01f048dbdee41065f4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d4dbdb84f37284b0bedc5abc7af2801b0c0f0e4b283ebe1287b1e038f2b6bfa0"},"ros-noetic-rosbag-storage-1.16.0-py39hbd60425_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost-cpp","bzip2 >=1.0.8,<2.0a0","console_bridge >=1.0.2,<1.1.0a0","gpgme >=1.18.0,<1.19.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-pluginlib","ros-noetic-roscpp-serialization","ros-noetic-roscpp-traits","ros-noetic-roslz4","ros-noetic-rostime"],"build":"py39hbd60425_15","timestamp":1676583357034,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b4804fccde0604bea42fca889b07014d","name":"ros-noetic-rosbag-storage","requires":[],"size":235498,"version":"1.16.0","binstar":{"package_id":"63ee9a03f048dbdee410665b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0309ac7ab7f1b3d43d04e458d14c335f00c494355229f48ca42cff4983df6212"},"ros-noetic-naoqi-libqi-2.9.7-py39h2c13bd3_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39h2c13bd3_15","timestamp":1676584602868,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"bcab53bd8916ff870a9d492b75e0c935","name":"ros-noetic-naoqi-libqi","requires":[],"size":3049112,"version":"2.9.7","binstar":{"package_id":"63ee9d1888b51fb346d465cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4d1a4d7df36a6b4c7d8e372f2cc1dfa1487a6c19533b692b0dddf0c40a99954d"},"ros-noetic-librealsense2-2.50.0-py39hfeb7e5d_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libusb >=1.0.26,<2.0a0","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hfeb7e5d_15","timestamp":1676583959153,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"2fddf0946980f9b94ff99a4ac8174a14","name":"ros-noetic-librealsense2","requires":[],"size":106824852,"version":"2.50.0","binstar":{"package_id":"63ee9d27b9c122563cec392b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"92fb311f0664bb8d427cfd5c027e0fd85e3ab953ec270ad4d7d647cd6a527b2d"},"ros-noetic-librealsense2-2.50.0-py311h8eb0f6d_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311h8eb0f6d_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libudev1 >=255","libusb >=1.0.26,<2.0a0","numpy >=1.23.5,<2.0a0","openssl >=3.2.0,<4.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706525241943,"md5":"ee23a9f8a4d1e28cdc4f75bb375b268d","name":"ros-noetic-librealsense2","requires":[],"size":102204715,"version":"2.50.0","binstar":{"package_id":"63ee9d27b9c122563cec392b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a78e147da8fb926d65dbb711acf7a2b88ae68c8d69cc5df1aba6ba1bfffca6aa"},"ros-noetic-webkit-dependency-1.1.2-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyqtwebengine","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"build":"py39hac30774_15","timestamp":1676585220929,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6f82a15640e418fa1c1404da877babcb","name":"ros-noetic-webkit-dependency","requires":[],"size":11296,"version":"1.1.2","binstar":{"package_id":"63eea90735de662092efeaf7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c395947fb3b8c32f8522a29c3ee0db0b2119a884e28a8cf517eb3283e13ab62"},"ros-noetic-webkit-dependency-1.1.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","pyqtwebengine","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706496304334,"md5":"c2386a33c3ccf175f88e021d0b2f00a6","name":"ros-noetic-webkit-dependency","requires":[],"size":11725,"version":"1.1.2","binstar":{"package_id":"63eea90735de662092efeaf7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a48c50b8d6c8acd314dc6455b8290907f62fc1a2de62090100ab1ab0d0693d22"},"ros-noetic-python-qt-binding-0.4.4-py39hac30774_15.tar.bz2":{"build_number":15,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["adwaita-icon-theme","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pyqt >=5.15.7,<5.16.0a0","pyqt-builder","python","python_abi 3.9.* *_cp39","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","xorg-libx11","xorg-libxext"],"build":"py39hac30774_15","timestamp":1676861194204,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"1f9fd1f66f9f05800b623b3de2d574c0","name":"ros-noetic-python-qt-binding","requires":[],"size":36363,"version":"0.4.4","binstar":{"package_id":"63f2df0e362e449693545283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f084d6db00e9916f8463cbebd097f0090185b7706d65e4082bc2e107148ea506"},"ros-noetic-python-qt-binding-0.4.4-py311hf4f0b2d_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hf4f0b2d_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","adwaita-icon-theme","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","pyqt >=5.15.9,<5.16.0a0","pyqt-builder","python","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":"linux","timestamp":1706498120673,"md5":"f27f3341efccdeee23e757a1b7d5bf7e","name":"ros-noetic-python-qt-binding","requires":[],"size":37265,"version":"0.4.4","binstar":{"package_id":"63f2df0e362e449693545283","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"49fd609e283f81f9d5ed3af50394843d7ed6b1b2cddd6d390ebba2565ac4d6d1"},"ros-noetic-ros-babel-fish-0.9.3-py39hfeb7e5d_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-roscpp","ros-noetic-roslib"],"build":"py39hfeb7e5d_16","timestamp":1678494500444,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"07444077b99cbcf5b1f19e2b3202ad6f","name":"ros-noetic-ros-babel-fish","requires":[],"size":515723,"version":"0.9.3","binstar":{"package_id":"640bcb2a56f3d8408e3bd098","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f20795b4f666e187fabf6ecb4b2e4e093de6afc6e73207f04c240c72d6343d75"},"ros-noetic-ros-babel-fish-test-msgs-0.9.3-py39hac30774_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_16","timestamp":1678494342839,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"fe210009b1f2e439e20ed8cedd62210a","name":"ros-noetic-ros-babel-fish-test-msgs","requires":[],"size":82348,"version":"0.9.3","binstar":{"package_id":"640bcb2c1aad8ffa878604b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd292a8658774b32cd96d28eba6a731d0b23e2db023f903917e395e21ba579f4"},"ros-noetic-ros-babel-fish-test-msgs-0.9.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498379844,"md5":"1651b4bdecf1d703496977ce71ccd64a","name":"ros-noetic-ros-babel-fish-test-msgs","requires":[],"size":85291,"version":"0.9.3","binstar":{"package_id":"640bcb2c1aad8ffa878604b2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"498f4143daab3819049c279128b7a3e5ca716dd71c78c12ffc6ab251a5c46055"},"ros-noetic-foxglove-bridge-0.5.1-py39he401885_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libzlib >=1.2.13,<1.3.0a0","numpy >=1.20.3,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-nodelet","ros-noetic-ros-babel-fish","ros-noetic-roscpp","ros-noetic-rosgraph-msgs","ros-noetic-roslib","zlib"],"build":"py39he401885_16","timestamp":1678494737052,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"13e7135a9677ac31f63c0da100daee72","name":"ros-noetic-foxglove-bridge","requires":[],"size":889462,"version":"0.5.1","binstar":{"package_id":"640bcc155646df5d56040be2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"590aee38fbd60a0bf69651fa9f457aab409f861e95743e7108fca4e01385ed1e"},"ros-humble-foxglove-bridge-0.5.1-py310h311dc0c_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libzlib >=1.2.13,<1.3.0a0","numpy >=1.21.6,<2.0a0","openssl >=3.0.8,<4.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-index-cpp","ros-humble-rclcpp","ros-humble-rclcpp-components","ros-humble-ros-workspace","ros-humble-rosgraph-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble","zlib"],"build":"py310h311dc0c_3","timestamp":1678496224065,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"749b83c029e59d87b755db79459a6bef","name":"ros-humble-foxglove-bridge","requires":[],"size":1093060,"version":"0.5.1","binstar":{"package_id":"640bd1e40078da3fd81620c2","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ece4f00f64eea42d1ae9e36ac27d323a19512198a609e3b5770ce198c8f72d4a"},"ros-humble-ament-cmake-nose-1.3.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","nose","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ament-cmake-core","ros-humble-ament-cmake-test","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1679346461859,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"6a5af7a6184243169e6f15905d97a94b","name":"ros-humble-ament-cmake-nose","requires":[],"size":12953,"version":"1.3.3","binstar":{"package_id":"6418cb2070b81c2888f6a2ce","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c0bdb347fb620efb611d280cc94a983b566340b628fb1d8083cd14d5aaabe46"},"ros-noetic-graph-msgs-0.1.0-py39hac30774_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_16","timestamp":1680039383937,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"897ec9c7acc42f7a3ce781e52dc206df","name":"ros-noetic-graph-msgs","requires":[],"size":33271,"version":"0.1.0","binstar":{"package_id":"64235f6bd0e29243c4dfe904","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d569675eeaa52b532ed6a2b958464dbad75cc0f981d5f00e7d8623de5ebe4122"},"ros-noetic-graph-msgs-0.1.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498329773,"md5":"984cb13f2b2803ee70312baf2c066f42","name":"ros-noetic-graph-msgs","requires":[],"size":34105,"version":"0.1.0","binstar":{"package_id":"64235f6bd0e29243c4dfe904","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"99090e6f419489ac253ab4d67973c7c5cba55bcabacfaf647e16f107fbdef84c"},"ros-noetic-moveit-visual-tools-3.6.0-py39hac30774_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cmake-modules","ros-noetic-geometry-msgs","ros-noetic-graph-msgs","ros-noetic-moveit-core","ros-noetic-moveit-ros-planning","ros-noetic-roscpp","ros-noetic-roslint","ros-noetic-rviz-visual-tools","ros-noetic-std-msgs","ros-noetic-tf2-eigen","ros-noetic-tf2-ros","ros-noetic-trajectory-msgs","ros-noetic-visualization-msgs","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py39hac30774_16","timestamp":1680039781941,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"3b5143253187bc3878e0a4c551ce399b","name":"ros-noetic-moveit-visual-tools","requires":[],"size":349153,"version":"3.6.0","binstar":{"package_id":"64235f6ef4abb0819e151d80","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8f49e1332d6e1878234fef953d2c60b82ac1dbfbd30258d73c8bd9855036cb14"},"ros-noetic-rviz-visual-tools-3.9.3-py39ha47c88f_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","ogre >=1.10.12,<1.11.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.8,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-stl-containers","ros-noetic-geometry-msgs","ros-noetic-graph-msgs","ros-noetic-interactive-markers","ros-noetic-roscpp","ros-noetic-roslint","ros-noetic-rviz","ros-noetic-sensor-msgs","ros-noetic-shape-msgs","ros-noetic-std-msgs","ros-noetic-tf2-eigen","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros","ros-noetic-trajectory-msgs","ros-noetic-visualization-msgs","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py39ha47c88f_16","timestamp":1680039680094,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"c8521e46022d98f77b6abc1d059c5fbb","name":"ros-noetic-rviz-visual-tools","requires":[],"size":1590868,"version":"3.9.3","binstar":{"package_id":"64235f6ff4abb0819e151dbf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"81e7c4edb1f0eaab29704e121b6841b718f0f52eb0fae2c8500093258d42d69b"},"ros-noetic-joy-teleop-0.4.0-py39hac30774_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-rospy","ros-noetic-rostopic","ros-noetic-sensor-msgs","ros-noetic-teleop-tools-msgs"],"build":"py39hac30774_16","timestamp":1680416028552,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"5ae102e24b6b09048c28660a26794a9c","name":"ros-noetic-joy-teleop","requires":[],"size":24756,"version":"0.4.0","binstar":{"package_id":"64291d1fcc61138ffddac357","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c592266ccb3b8c5a1ed205fe55c953541418afbd640f463f0eae69b11a346dfc"},"ros-noetic-rosparam-shortcuts-0.4.0-py39hac30774_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-conversions","ros-noetic-roscpp"],"build":"py39hac30774_16","timestamp":1680415956920,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"4b2f9119ab100b6c7d557efe92855c97","name":"ros-noetic-rosparam-shortcuts","requires":[],"size":59944,"version":"0.4.0","binstar":{"package_id":"64291d20cc61138ffddac36b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c5e099d0af3dc6f74f7d878fa6a12ba5c8b830debcaa97754d0e433c17d8dd03"},"ros-noetic-rosparam-shortcuts-0.4.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-eigen-conversions","ros-noetic-roscpp"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498677006,"md5":"8fc9fd155a2fd7dfb26a12205f6a4ec3","name":"ros-noetic-rosparam-shortcuts","requires":[],"size":57952,"version":"0.4.0","binstar":{"package_id":"64291d20cc61138ffddac36b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d658d346b0fda03aba0b0c417a10c76b478645383ab04d8f323391506a51ba19"},"ros-noetic-spacenav-node-1.15.1-py39hac30774_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libspnav","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-roscpp","ros-noetic-sensor-msgs","xorg-libx11","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"build":"py39hac30774_16","timestamp":1680415917517,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"353e8180fc8702245bee7640992a2676","name":"ros-noetic-spacenav-node","requires":[],"size":35851,"version":"1.15.1","binstar":{"package_id":"64291d22a3b9c5d57e886549","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dbb04d0fe661b11a180d0b777f652092d72dd93567bfab01d2a0ce134455ae05"},"ros-noetic-teleop-tools-msgs-0.4.0-py39hac30774_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-control-msgs","ros-noetic-message-runtime"],"build":"py39hac30774_16","timestamp":1680415989693,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a12f66f957b8cdca5a19297c9e64b4ee","name":"ros-noetic-teleop-tools-msgs","requires":[],"size":51652,"version":"0.4.0","binstar":{"package_id":"64291d2360fdb0f2a5981575","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4e22d0fa389f9556625dc4a2a17fca054a8b4b0af942d3c2b71423796ffbe2aa"},"ros-noetic-teleop-tools-msgs-0.5.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-control-msgs","ros-noetic-message-runtime"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706573432640,"md5":"68a9af5dc0d573f5d516f6c23d7b6547","name":"ros-noetic-teleop-tools-msgs","requires":[],"size":53485,"version":"0.5.0","binstar":{"package_id":"64291d2360fdb0f2a5981575","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4382ffd98ff920550ef2bb3d455abb40bd65dbf23d8a7ea76427fe3212e22a6e"},"ros-noetic-moveit-servo-1.1.11-py39hac30774_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-control-msgs","ros-noetic-control-toolbox","ros-noetic-geometry-msgs","ros-noetic-joy-teleop","ros-noetic-moveit-msgs","ros-noetic-moveit-ros-planning-interface","ros-noetic-rosparam-shortcuts","ros-noetic-sensor-msgs","ros-noetic-spacenav-node","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf2-eigen","ros-noetic-trajectory-msgs"],"build":"py39hac30774_16","timestamp":1680416388455,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"a5cf326cccff26cfbb89510ebc0d365a","name":"ros-noetic-moveit-servo","requires":[],"size":357993,"version":"1.1.11","binstar":{"package_id":"64291e89d0ad0156cb68fe5d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"915bcbc3052aee00a5c57147c0b5248dda8faef095f76cf1b67e302c0141152a"},"ros-humble-plotjuggler-3.5.1-py310h44ee79f_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["binutils","boost >=1.78.0,<1.78.1.0a0","cppzmq","elfutils >=0.189,<0.190.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","libxcb >=1.13,<1.14.0a0","numpy >=1.21.6,<2.0a0","python","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":"py310h44ee79f_3","timestamp":1680482505171,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"71aee38d199351a1675ca6a9eb83a046","name":"ros-humble-plotjuggler","requires":[],"size":108657884,"version":"3.5.1","binstar":{"package_id":"642a21ef72efb6ba8923c015","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"069f69441632abdd61a3bb39a6debde21bf2f7fa2820d8d4ff482d37826a95cd"},"ros-humble-plotjuggler-msgs-0.2.3-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1680481894622,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"e75ce000cf488b17e2a755b4bfae214f","name":"ros-humble-plotjuggler-msgs","requires":[],"size":114926,"version":"0.2.3","binstar":{"package_id":"642a21f3f4abb0819ee3cabc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"706bf2a166205343838a49f56d9da4114522a8c0305eca4c7e08aa969a326aef"},"ros-humble-plotjuggler-ros-1.7.3-py310ha259436_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["binutils","boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","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":"py310ha259436_3","timestamp":1680482757609,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"8cad78e8af323e30ad751daffa3a10c4","name":"ros-humble-plotjuggler-ros","requires":[],"size":34701916,"version":"1.7.3","binstar":{"package_id":"642a21f96d6885450301f10f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1e0fa23c5ab398f9f15d1e33f6432d1a75bf5f7b21699f8cea294ff167ebd2d5"},"ros-humble-geodesy-1.0.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","pyproj","python","python_abi 3.10.* *_cp310","ros-humble-angles","ros-humble-geographic-msgs","ros-humble-geometry-msgs","ros-humble-ros-workspace","ros-humble-sensor-msgs","ros-humble-unique-identifier-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1683368000969,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"9706d1446e9585a03a457629463a0064","name":"ros-humble-geodesy","requires":[],"size":40143,"version":"1.0.5","binstar":{"package_id":"6456285db6840a3f6c624129","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"944a1e2f41eddcfa1f2ba49883d6cbbca47d7d253d84859aa20efa5badceddd2"},"ros-humble-geographic-info-1.0.5-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-geodesy","ros-humble-geographic-msgs","ros-humble-ros-workspace","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1683368026800,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"b57d866ba8c33e580f8f09b3a439ca28","name":"ros-humble-geographic-info","requires":[],"size":11108,"version":"1.0.5","binstar":{"package_id":"6456285e27b104c73315a90c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ea5d5528d69179ed1ab84baa3826b2863c7ddac3f8857dd3b7a2949dd27db052"},"ros-noetic-microstrain-inertial-msgs-3.0.1-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"build":"py39hac30774_16","timestamp":1687736842454,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"7e706d13f000e48c4bb57ba5aee5210e","name":"ros-noetic-microstrain-inertial-msgs","requires":[],"size":286559,"version":"3.0.1","binstar":{"package_id":"64670a822e917f0f9bae1faa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d73ba4c9ed37e26341c2b59ade2524692d6add7d46d1a524c68a60ddfec22f93"},"ros-noetic-microstrain-inertial-msgs-3.2.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498446349,"md5":"8a7133e2b1727dce4ad8175b6a109977","name":"ros-noetic-microstrain-inertial-msgs","requires":[],"size":309517,"version":"3.2.0","binstar":{"package_id":"64670a822e917f0f9bae1faa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0e962cfaf5a33f528d10e0e6ce9726e4680d5e12f7c04167c10a66959a1c17ee"},"ros-noetic-microstrain-inertial-driver-3.0.1-py39h9b71539_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libcurl >=7.88.1,<8.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cmake-modules","ros-noetic-diagnostic-aggregator","ros-noetic-diagnostic-updater","ros-noetic-geometry-msgs","ros-noetic-mavros-msgs","ros-noetic-message-runtime","ros-noetic-microstrain-inertial-msgs","ros-noetic-nav-msgs","ros-noetic-nmea-msgs","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"build":"py39h9b71539_16","timestamp":1688984465337,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"01e3991f2faf30ec929a23f85284c4dd","name":"ros-noetic-microstrain-inertial-driver","requires":[],"size":725808,"version":"3.0.1","binstar":{"package_id":"64670c2db8f416e9fb5ed89a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a59796fa02935cb9b36ea4b38205d0853379b265297d8dc22c82614481c757e5"},"ros-humble-actuator-msgs-0.0.1-py310h7c61026_3.tar.bz2":{"build_number":3,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.21.6,<2.0a0","python","python_abi 3.10.* *_cp310","ros-humble-ros-workspace","ros-humble-rosidl-default-runtime","ros-humble-std-msgs","ros2-distro-mutex 0.3.*","ros2-distro-mutex 0.3.* humble"],"build":"py310h7c61026_3","timestamp":1684889958505,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f59f37e44e588c64d8f3b5d1a11a79a4","name":"ros-humble-actuator-msgs","requires":[],"size":135314,"version":"0.0.1","binstar":{"package_id":"646d616bd52c6a0ecdfb698f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e48fc124ff9c353d85911b5982652d81ac2179722db0ca2b8320c8f0c453312"},"ros-noetic-hpp-fcl-2.3.0-py39h7f77659_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","assimp >=5.2.5,<5.2.6.0a0","boost >=1.78.0,<1.78.1.0a0","eigen","graphviz >=6.0.2,<7.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin","ros-noetic-eigenpy","ros-noetic-octomap"],"build":"py39h7f77659_16","timestamp":1687736784991,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"12e5a77d1a66ccfaf31149924acd5d29","name":"ros-noetic-hpp-fcl","requires":[],"size":1800511,"version":"2.3.0","binstar":{"package_id":"6498d20eb6a07a7072709965","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a92b321f0be8e303a875afc17500be556580876f4dc38f4167fbd2b535f5f65b"},"ros-noetic-hpp-fcl-2.3.6-h6f875b6_21.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":false,"subdir":"linux-64","arch":"x86_64","build":"h6f875b6_21","build_number":21,"depends":["hpp-fcl 2.3.6*"],"platform":"linux","timestamp":1706523560698,"md5":"27026e4ebfd3373530dd3da0e1c28460","name":"ros-noetic-hpp-fcl","requires":[],"size":3531,"version":"2.3.6","binstar":{"package_id":"6498d20eb6a07a7072709965","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c2f5aef551826f051025c76a9621bad67fdfbe8dec26b7212a02cd320fcbc18a"},"ros-noetic-usb-cam-0.3.7-py39ha2bd6dd_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","ffmpeg >=4.4.2,<5.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-camera-info-manager","ros-noetic-cv-bridge","ros-noetic-image-transport","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs"],"build":"py39ha2bd6dd_16","timestamp":1687736502443,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"556b96cbbcbfe23f2033646e6c518a68","name":"ros-noetic-usb-cam","requires":[],"size":76040,"version":"0.3.7","binstar":{"package_id":"6498d212d3b8b5281c25a749","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4b04b854d1f735461a690ca5b55917ed188b65531ec1473811e509a61ba3d564"},"ros-noetic-octomap-ros-0.4.1-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-octomap","ros-noetic-octomap-msgs","ros-noetic-sensor-msgs","ros-noetic-tf"],"build":"py39hac30774_16","timestamp":1688984326218,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"146bb04e30bd946b336b2c5d078df138","name":"ros-noetic-octomap-ros","requires":[],"size":22419,"version":"0.4.1","binstar":{"package_id":"64ab5faf6bd8494aaaca1eb6","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8cfe3eec11c48d8b4672f14d3fe88452e5e374ea8e285f10d00ae3691d3a309b"},"ros-noetic-octomap-mapping-0.6.7-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":false,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-octomap-server"],"build":"py39hac30774_16","timestamp":1689794348996,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"91f6f4757778961c1bfe3bc65e4b04ce","name":"ros-noetic-octomap-mapping","requires":[],"size":11138,"version":"0.6.7","binstar":{"package_id":"64b837315ffeaf09f9381e3a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"83450a4d4f7899701f17afbff88287d454800ec6dead9b1b0f9115c7f8f68c56"},"ros-noetic-octomap-server-0.6.7-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-nav-msgs","ros-noetic-nodelet","ros-noetic-octomap","ros-noetic-octomap-msgs","ros-noetic-octomap-ros","ros-noetic-pcl-conversions","ros-noetic-pcl-ros","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-visualization-msgs"],"build":"py39hac30774_16","timestamp":1689794298137,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"f54ed51ae016b4013975a6f51cdb3bbb","name":"ros-noetic-octomap-server","requires":[],"size":669149,"version":"0.6.7","binstar":{"package_id":"64b8373297519d58ec37b4cc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d098309db044d7b3d52bd22b942b6eea98e7700550bbe335bbe84e84b45d92e6"},"ros-noetic-ackermann-msgs-1.0.2-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1692221141925,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"9d2a4a27cd3f9e5fae02bd17f626165a","name":"ros-noetic-ackermann-msgs","requires":[],"size":31868,"version":"1.0.2","binstar":{"package_id":"64dd3ed95a57796317e88733","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eae135fc80dd56f84bc8a32b78eb6dfb1e1bcef401cfdcf58afd099de3048240"},"ros-noetic-ackermann-msgs-1.0.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498155622,"md5":"920bad9d56c28a5023cad074d0ae7a99","name":"ros-noetic-ackermann-msgs","requires":[],"size":32108,"version":"1.0.2","binstar":{"package_id":"64dd3ed95a57796317e88733","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"950de6da6abc46ae8485c78e41a1fb7c71a185489adb0e00338401a3651d1df6"},"ros-noetic-ecl-license-0.61.8-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"subdir":"linux-64","timestamp":1694252752190,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"72a51b337253f1553aebd390a64d28bc","name":"ros-noetic-ecl-license","requires":[],"size":12582,"version":"0.61.8","binstar":{"package_id":"64fc404302ffb9fba5c08325","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0a941a477416a20c62ee61d68d32fbb2c1c9d6e29fabb871153128b3abaf3307"},"ros-noetic-ecl-license-0.61.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524817778,"md5":"be603251510ba497ae7b0a43eaba9e29","name":"ros-noetic-ecl-license","requires":[],"size":12606,"version":"0.61.8","binstar":{"package_id":"64fc404302ffb9fba5c08325","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"28343d5a50df107170650ed14ce12793013bf1a778185037df75b28d273d37f2"},"ros-noetic-sophus-1.2.1-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"subdir":"linux-64","timestamp":1694253021745,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"b5549e5b0ce8cda46ac8f6d3eda34784","name":"ros-noetic-sophus","requires":[],"size":42258,"version":"1.2.1","binstar":{"package_id":"64fc40443f0f64386f04ca4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"10b0807712e5c651fdf5c217ba6ed96f276c21e6036c1c663c0439acc2049e2c"},"ros-noetic-sophus-1.2.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706523546293,"md5":"f1d02f530d4bec5da744587f0175fe8f","name":"ros-noetic-sophus","requires":[],"size":42951,"version":"1.2.1","binstar":{"package_id":"64fc40443f0f64386f04ca4d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"89ee3429fa1de83d78143969030febfcbc5b87e88aa4ccc10807562bf5a53398"},"ros-noetic-ecl-build-0.61.8-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-license"],"subdir":"linux-64","timestamp":1694253287416,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"dce78471935930411580ad243bc1cecc","name":"ros-noetic-ecl-build","requires":[],"size":43153,"version":"0.61.8","binstar":{"package_id":"64fc41ac3f0f64386f052f66","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"82f58fd16022c5ee6338cbdaa722ca2ca57445f05a4e555bf79a9a15f345e990"},"ros-noetic-ecl-build-0.61.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-license"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497135864,"md5":"3ce8490ead699aab741e648311e47c96","name":"ros-noetic-ecl-build","requires":[],"size":43190,"version":"0.61.8","binstar":{"package_id":"64fc41ac3f0f64386f052f66","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d9fc592a76ca7035e9798da176334d787f67e98f6ef2bab2c3df4135260cdfff"},"ros-noetic-ecl-command-line-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-license"],"subdir":"linux-64","timestamp":1694253385113,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"a179fe9b794d06a871fe26968e0846a7","name":"ros-noetic-ecl-command-line","requires":[],"size":74885,"version":"0.62.3","binstar":{"package_id":"64fc41ae3ef1a511e0fec689","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9938662c0a4691e062bb573814da3e7c54ff6bdd337aad31551a2af94470d1ef"},"ros-noetic-ecl-command-line-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-license"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706496955524,"md5":"74dbdcda4e1f1226cb98b254d773b9a6","name":"ros-noetic-ecl-command-line","requires":[],"size":78584,"version":"0.62.3","binstar":{"package_id":"64fc41ae3ef1a511e0fec689","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3d22293c8204462f7cda959efcc995c131cb1c4a76ec9508092ed4dec2756c09"},"ros-noetic-ecl-eigen-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-license"],"subdir":"linux-64","timestamp":1694253348508,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"4c89af002383664714929d7824c9977d","name":"ros-noetic-ecl-eigen","requires":[],"size":13552,"version":"0.62.3","binstar":{"package_id":"64fc41b01345abf53aeb8b5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9279c2f4603654cb544bb1b769ca158ec48959c5ede9a332306f3625cb0045ac"},"ros-noetic-ecl-eigen-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-license"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706496931473,"md5":"2223296998f4e4f34cccf6b4b2de1b44","name":"ros-noetic-ecl-eigen","requires":[],"size":13590,"version":"0.62.3","binstar":{"package_id":"64fc41b01345abf53aeb8b5a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"277400edc18ffe40bd9091423a97dcbddf02be1ccb9f5191a4ed9acb09ddf93e"},"ros-noetic-ecl-mpl-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-license"],"subdir":"linux-64","timestamp":1694253317952,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"d6496bf71196b3cc392f49cc5c109d61","name":"ros-noetic-ecl-mpl","requires":[],"size":13025,"version":"0.62.3","binstar":{"package_id":"64fc41b102ffb9fba5c15c2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5a9055272889f8c02a65569c4723f79d79f28421336580c1271a98f4cba2fcdf"},"ros-noetic-ecl-mpl-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-license"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497155167,"md5":"e81e2ce7fec3572394ec8e75aa08481c","name":"ros-noetic-ecl-mpl","requires":[],"size":13060,"version":"0.62.3","binstar":{"package_id":"64fc41b102ffb9fba5c15c2b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8d7957b6a73eb2fb41725bfe9702a6a063b87c4698aef5b5afa0b013c024bc9c"},"ros-noetic-ecl-config-0.61.6-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-license"],"subdir":"linux-64","timestamp":1694253664625,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"0999bec9df3f61de2a1c94a091d3f3c1","name":"ros-noetic-ecl-config","requires":[],"size":23963,"version":"0.61.6","binstar":{"package_id":"64fc42a61fc609abbebae7c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d6d3a551483b20ed81612f0ca4ee91dff47edced3067e6aee4afa6508bcdf49f"},"ros-noetic-ecl-config-0.61.6-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-license"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497265634,"md5":"8f7487ef74da4415f9794ccf1e2a2743","name":"ros-noetic-ecl-config","requires":[],"size":24014,"version":"0.61.6","binstar":{"package_id":"64fc42a61fc609abbebae7c4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4371871736003243c9b7a6aefb32036754fdbc1754129a931087d3249f18070b"},"ros-noetic-ecl-errors-0.61.6-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-license"],"subdir":"linux-64","timestamp":1694253696015,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"644ee3ebe50c7be96b1bf983f16a55fe","name":"ros-noetic-ecl-errors","requires":[],"size":24759,"version":"0.61.6","binstar":{"package_id":"64fc42a74f8f289a768a7c05","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a827e8d46bf63c4c6034f0e8fe74a69c02155bdbb9407ea831d4f8f690e01ab3"},"ros-noetic-ecl-errors-0.61.6-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-license"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497545100,"md5":"e645d17284134f26c7a6e6e4dc75aa4a","name":"ros-noetic-ecl-errors","requires":[],"size":24845,"version":"0.61.6","binstar":{"package_id":"64fc42a74f8f289a768a7c05","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9b6e460ee400f230e855fe53056b41c93eec8bcf3242dec7b5d37f56b071eba6"},"ros-noetic-ecl-type-traits-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-license","ros-noetic-ecl-mpl"],"subdir":"linux-64","timestamp":1694253731315,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"c9d9ff8586dc1320398a5ee7cce24fa5","name":"ros-noetic-ecl-type-traits","requires":[],"size":21072,"version":"0.62.3","binstar":{"package_id":"64fc42a9e0d279bda43f5317","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cac13654ede2d8cc75f62a3a515c146eeb0eed9015f1795fc3c16a39d43f6125"},"ros-noetic-ecl-type-traits-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-license","ros-noetic-ecl-mpl"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497570467,"md5":"81fc184f73aa9c97350c9c25a96d9515","name":"ros-noetic-ecl-type-traits","requires":[],"size":21115,"version":"0.62.3","binstar":{"package_id":"64fc42a9e0d279bda43f5317","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"584d4fffa7e4b2cfbe28683d3ef8b6a48cfc348238d8589dd4a286f1bd10b52e"},"ros-noetic-ecl-concepts-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-license","ros-noetic-ecl-type-traits"],"subdir":"linux-64","timestamp":1694253948198,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"64f716ea2c6fb0842d8e8b46f90b23ba","name":"ros-noetic-ecl-concepts","requires":[],"size":15962,"version":"0.62.3","binstar":{"package_id":"64fc43c01206ab1b17e4fc9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"50600763b78f8a9957d9f7331d41b4e384ce9446a7b7461e541612098026e7c9"},"ros-noetic-ecl-concepts-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-license","ros-noetic-ecl-type-traits"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497792434,"md5":"10f47c1d3a342b31185d910f85d10ccf","name":"ros-noetic-ecl-concepts","requires":[],"size":16007,"version":"0.62.3","binstar":{"package_id":"64fc43c01206ab1b17e4fc9c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d8e9338611637b468e16975dde0d05ab0326d6d9a717388e2d01f75ad3752bdf"},"ros-noetic-ecl-exceptions-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-errors","ros-noetic-ecl-license"],"subdir":"linux-64","timestamp":1694253915888,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"36981b8b8e41d3435e1b39865f69667b","name":"ros-noetic-ecl-exceptions","requires":[],"size":33970,"version":"0.62.3","binstar":{"package_id":"64fc43c202ffb9fba5c25b5b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5e6822e6644f2c876785f469d236365971b6dcf188905d03427612e10c256420"},"ros-noetic-ecl-exceptions-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-errors","ros-noetic-ecl-license"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497773697,"md5":"9047d41bb286b39a7f4fbb7354d08446","name":"ros-noetic-ecl-exceptions","requires":[],"size":34819,"version":"0.62.3","binstar":{"package_id":"64fc43c202ffb9fba5c25b5b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"42c8e7f66d7592de234a747ca8e41567f24577b797435eef844d7906bd7240a9"},"ros-noetic-ecl-math-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-license","ros-noetic-ecl-type-traits"],"subdir":"linux-64","timestamp":1694254013563,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"16cf84cea932b88e2aa70f1a1ff71668","name":"ros-noetic-ecl-math","requires":[],"size":14431,"version":"0.62.3","binstar":{"package_id":"64fc43c41fc609abbebaf190","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"433b8e2b15840f9061e78499b819afbd48c0822c60465a5e3b33d76ce19bc01a"},"ros-noetic-ecl-math-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-license","ros-noetic-ecl-type-traits"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497738844,"md5":"f89f76aab1457ddca95e518f51afd59b","name":"ros-noetic-ecl-math","requires":[],"size":14479,"version":"0.62.3","binstar":{"package_id":"64fc43c41fc609abbebaf190","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84aa1350423bc2da4d4baf6f0cb0b2f544a5e1ef9cd26e87131ef942486cc127"},"ros-noetic-ecl-time-lite-0.61.6-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-config","ros-noetic-ecl-errors","ros-noetic-ecl-license"],"subdir":"linux-64","timestamp":1694253983745,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"2b09ab6d4fce10f7e00ea4cb4a3ff0cc","name":"ros-noetic-ecl-time-lite","requires":[],"size":26358,"version":"0.61.6","binstar":{"package_id":"64fc43c5149c56cfe2f58a8e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d9c7e70eb7c24efcaaad0889c30c4460cdefa4448c578d56015b52eb2a2340c8"},"ros-noetic-ecl-time-lite-0.61.6-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-config","ros-noetic-ecl-errors","ros-noetic-ecl-license"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497693454,"md5":"9b34c24094b00a99970db65447b81843","name":"ros-noetic-ecl-time-lite","requires":[],"size":26377,"version":"0.61.6","binstar":{"package_id":"64fc43c5149c56cfe2f58a8e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"cc8a7878c73d6f7662de69f61cbb647e9f935b6f1875f9131357afd034ae2dbf"},"ros-noetic-ecl-converters-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-concepts","ros-noetic-ecl-config","ros-noetic-ecl-errors","ros-noetic-ecl-exceptions","ros-noetic-ecl-license","ros-noetic-ecl-mpl","ros-noetic-ecl-type-traits"],"subdir":"linux-64","timestamp":1694254166442,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"c7e4c4cf4803e8a4fb57e202c178d269","name":"ros-noetic-ecl-converters","requires":[],"size":32138,"version":"0.62.3","binstar":{"package_id":"64fc448eb40d4075b570ba8c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3172abf3f31891eb2616ea4877d67b8cc0cacb60a01923b40a97408d400a3f6e"},"ros-noetic-ecl-converters-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-concepts","ros-noetic-ecl-config","ros-noetic-ecl-errors","ros-noetic-ecl-exceptions","ros-noetic-ecl-license","ros-noetic-ecl-mpl","ros-noetic-ecl-type-traits"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498003101,"md5":"ec3150fa892a790e6b004e0486bb8cc6","name":"ros-noetic-ecl-converters","requires":[],"size":32233,"version":"0.62.3","binstar":{"package_id":"64fc448eb40d4075b570ba8c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"108250afeb89b9dd91e44a8a86fc33d11b756fec0c424084800204edb8fa28ec"},"ros-noetic-ecl-time-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-config","ros-noetic-ecl-errors","ros-noetic-ecl-exceptions","ros-noetic-ecl-license","ros-noetic-ecl-time-lite"],"subdir":"linux-64","timestamp":1694254219928,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"71e6084a6e36832c20645143b7102b28","name":"ros-noetic-ecl-time","requires":[],"size":41335,"version":"0.62.3","binstar":{"package_id":"64fc4490ace5bbb461e5a814","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1f55dd3a47dec50f74a97af7ab09b2dc539b301f4ee34291f2976abc299c4d7f"},"ros-noetic-ecl-time-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-config","ros-noetic-ecl-errors","ros-noetic-ecl-exceptions","ros-noetic-ecl-license","ros-noetic-ecl-time-lite"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497922254,"md5":"bb6125058c418318f2d2a2bf081f9d4d","name":"ros-noetic-ecl-time","requires":[],"size":41264,"version":"0.62.3","binstar":{"package_id":"64fc4490ace5bbb461e5a814","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ee98db1f6aadf2a87b3fdeba34df5eab716caeadf9200d9fb2f0a606b9eb8baa"},"ros-noetic-ecl-utilities-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-concepts","ros-noetic-ecl-license","ros-noetic-ecl-mpl"],"subdir":"linux-64","timestamp":1694254192499,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"e4460aded71a0942457d0a6db87d3dfc","name":"ros-noetic-ecl-utilities","requires":[],"size":26056,"version":"0.62.3","binstar":{"package_id":"64fc4491b40d4075b570ba9e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"efc1f928250f5678e02c59836416041d29247aef07ceb4aa7e11184669cc3489"},"ros-noetic-ecl-utilities-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-concepts","ros-noetic-ecl-license","ros-noetic-ecl-mpl"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497899842,"md5":"095994396519c38b3a7e91c7df47a35a","name":"ros-noetic-ecl-utilities","requires":[],"size":26070,"version":"0.62.3","binstar":{"package_id":"64fc4491b40d4075b570ba9e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5e006750c3756f546edaefc26c3db2084e7016220b41a58101a4d2781c854d67"},"ros-noetic-ecl-formatters-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-converters","ros-noetic-ecl-exceptions","ros-noetic-ecl-license"],"subdir":"linux-64","timestamp":1694254369697,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"89c7e8310895c3dfce69a35e61124531","name":"ros-noetic-ecl-formatters","requires":[],"size":44165,"version":"0.62.3","binstar":{"package_id":"64fc455802ffb9fba5c2f68f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b226a7b93be4b881a2037935331cef3e3260c197b2c9dff2473f94f8ea8932ac"},"ros-noetic-ecl-formatters-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-converters","ros-noetic-ecl-exceptions","ros-noetic-ecl-license"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498185715,"md5":"51722ce94d10460125c277fbfae950da","name":"ros-noetic-ecl-formatters","requires":[],"size":45200,"version":"0.62.3","binstar":{"package_id":"64fc455802ffb9fba5c2f68f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d3dd1b2ed65ceb07dfe27528479bf61fe52b9ecb6c7ac341417ef689dba68241"},"ros-noetic-ecl-ipc-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-config","ros-noetic-ecl-errors","ros-noetic-ecl-exceptions","ros-noetic-ecl-license","ros-noetic-ecl-time","ros-noetic-ecl-time-lite"],"subdir":"linux-64","timestamp":1694254422216,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"4d1294a1e9d2084258dbd270d9c5934a","name":"ros-noetic-ecl-ipc","requires":[],"size":25225,"version":"0.62.3","binstar":{"package_id":"64fc4559c6f8b3e322ec57ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4fedf9a820ffd0e25705d99b9caebab2e971c9ca0a3616111524e24f623dcc13"},"ros-noetic-ecl-ipc-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-config","ros-noetic-ecl-errors","ros-noetic-ecl-exceptions","ros-noetic-ecl-license","ros-noetic-ecl-time","ros-noetic-ecl-time-lite"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498176580,"md5":"9a3e2d999fc6c65d44c9a3b9770f7799","name":"ros-noetic-ecl-ipc","requires":[],"size":25157,"version":"0.62.3","binstar":{"package_id":"64fc4559c6f8b3e322ec57ff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"137f27a49e5a2e8929eccfc2fe3fe95a591a457ad11c53d01f84bcccad967cb1"},"ros-noetic-ecl-threads-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-concepts","ros-noetic-ecl-config","ros-noetic-ecl-errors","ros-noetic-ecl-exceptions","ros-noetic-ecl-license","ros-noetic-ecl-time","ros-noetic-ecl-utilities"],"subdir":"linux-64","timestamp":1694254396928,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"865c9294c378816476139a240f9e0018","name":"ros-noetic-ecl-threads","requires":[],"size":54635,"version":"0.62.3","binstar":{"package_id":"64fc455a4f8f289a768bb112","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"02a19b07e145947e68377b7efecc9394b48665af28621eed2e681ce293a93aea"},"ros-noetic-ecl-threads-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-concepts","ros-noetic-ecl-config","ros-noetic-ecl-errors","ros-noetic-ecl-exceptions","ros-noetic-ecl-license","ros-noetic-ecl-time","ros-noetic-ecl-utilities"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498131155,"md5":"2a6b7deebf655a203fe7aa26e10b1ae9","name":"ros-noetic-ecl-threads","requires":[],"size":54151,"version":"0.62.3","binstar":{"package_id":"64fc455a4f8f289a768bb112","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c9d5d2efdba73974c0da1f4ac76e2ec128748ad6173d8bb939d645571a8710c4"},"ros-noetic-ecl-containers-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-converters","ros-noetic-ecl-errors","ros-noetic-ecl-exceptions","ros-noetic-ecl-formatters","ros-noetic-ecl-license","ros-noetic-ecl-mpl","ros-noetic-ecl-type-traits","ros-noetic-ecl-utilities"],"subdir":"linux-64","timestamp":1694254602982,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"83fbb2bdb3172a11ce7ae5dbf9ed2167","name":"ros-noetic-ecl-containers","requires":[],"size":65038,"version":"0.62.3","binstar":{"package_id":"64fc462cdfb30d9276081900","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9ed2e98a7aea9efb797196bb1b69418df28ae154e2f1f317293d37b56d3e0ad2"},"ros-noetic-ecl-containers-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-converters","ros-noetic-ecl-errors","ros-noetic-ecl-exceptions","ros-noetic-ecl-formatters","ros-noetic-ecl-license","ros-noetic-ecl-mpl","ros-noetic-ecl-type-traits","ros-noetic-ecl-utilities"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498429145,"md5":"8f3d05a71518c88ff03f7b863916fcf5","name":"ros-noetic-ecl-containers","requires":[],"size":65359,"version":"0.62.3","binstar":{"package_id":"64fc462cdfb30d9276081900","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8bb902633eaf965b7c02b7d3cb4629173e90c856ef5aa3936c14eb3b26aed04c"},"ros-noetic-ecl-linear-algebra-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-converters","ros-noetic-ecl-eigen","ros-noetic-ecl-exceptions","ros-noetic-ecl-formatters","ros-noetic-ecl-license","ros-noetic-ecl-math","ros-noetic-sophus"],"subdir":"linux-64","timestamp":1694254574289,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"32498d0b2b29363c855c6554954c648c","name":"ros-noetic-ecl-linear-algebra","requires":[],"size":45402,"version":"0.62.3","binstar":{"package_id":"64fc462e02ffb9fba5c3412e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d3842f132a772361a3b1de4aea4c7348b32e84d2a5e036172fb0d5fdd9f37361"},"ros-noetic-ecl-linear-algebra-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-converters","ros-noetic-ecl-eigen","ros-noetic-ecl-exceptions","ros-noetic-ecl-formatters","ros-noetic-ecl-license","ros-noetic-ecl-math","ros-noetic-sophus"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498406728,"md5":"f3100d50cbe7dcb7427972be7d5b9456","name":"ros-noetic-ecl-linear-algebra","requires":[],"size":44870,"version":"0.62.3","binstar":{"package_id":"64fc462e02ffb9fba5c3412e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9004500f072ceb9aa792a474e417ace9ff23d2bfea4abf9ca5ebf9298978f03c"},"ros-noetic-ecl-sigslots-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-license","ros-noetic-ecl-threads"],"subdir":"linux-64","timestamp":1694254633848,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"25f5d10a32012d113eaef4d612fc6857","name":"ros-noetic-ecl-sigslots","requires":[],"size":51249,"version":"0.62.3","binstar":{"package_id":"64fc462f1345abf53aec6abb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b1aa1ddac755e32da8235a38bdeffc3b001c3c4acbeab81f55815dc7a0d42413"},"ros-noetic-ecl-sigslots-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-license","ros-noetic-ecl-threads"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498355289,"md5":"528ad36f1f32d17c5442de7dd8dcfc53","name":"ros-noetic-ecl-sigslots","requires":[],"size":53309,"version":"0.62.3","binstar":{"package_id":"64fc462f1345abf53aec6abb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dad790b87d6d3de2cece76cc69faf0cc578ac80e6616e7e9aeb83da1a932f597"},"ros-noetic-ecl-devices-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-containers","ros-noetic-ecl-errors","ros-noetic-ecl-license","ros-noetic-ecl-mpl","ros-noetic-ecl-threads","ros-noetic-ecl-type-traits","ros-noetic-ecl-utilities"],"subdir":"linux-64","timestamp":1694254819740,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"61b93a0a24f8b527cb6a983082d058da","name":"ros-noetic-ecl-devices","requires":[],"size":84541,"version":"0.62.3","binstar":{"package_id":"64fc472d3f0f64386f06fae9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"52727487f1b40de16cf4ae7b6a737f478c6ff759b4c6bbb867be8a7e834e994e"},"ros-noetic-ecl-devices-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-config","ros-noetic-ecl-containers","ros-noetic-ecl-errors","ros-noetic-ecl-license","ros-noetic-ecl-mpl","ros-noetic-ecl-threads","ros-noetic-ecl-type-traits","ros-noetic-ecl-utilities"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498661064,"md5":"f8c5eebddfb99ad34b85c6ef5f99244c","name":"ros-noetic-ecl-devices","requires":[],"size":85210,"version":"0.62.3","binstar":{"package_id":"64fc472d3f0f64386f06fae9","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"45c8b11b1938a613146a4a1c8a403e82b120661f364ef956444e38759533f86c"},"ros-noetic-ecl-geometry-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-config","ros-noetic-ecl-containers","ros-noetic-ecl-exceptions","ros-noetic-ecl-formatters","ros-noetic-ecl-license","ros-noetic-ecl-linear-algebra","ros-noetic-ecl-math","ros-noetic-ecl-mpl","ros-noetic-ecl-type-traits"],"subdir":"linux-64","timestamp":1694254790760,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"9eb2e94f9eba8f640196cf62b1cf77b8","name":"ros-noetic-ecl-geometry","requires":[],"size":82361,"version":"0.62.3","binstar":{"package_id":"64fc472e3f0f64386f06faf1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2f6420a10c0b65a50c01c035ac08fc602c0e0ee33e000bd71928da6470144d3b"},"ros-noetic-ecl-geometry-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-config","ros-noetic-ecl-containers","ros-noetic-ecl-exceptions","ros-noetic-ecl-formatters","ros-noetic-ecl-license","ros-noetic-ecl-linear-algebra","ros-noetic-ecl-math","ros-noetic-ecl-mpl","ros-noetic-ecl-type-traits"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498734954,"md5":"14ae0d1bc353858c579e444792c4094f","name":"ros-noetic-ecl-geometry","requires":[],"size":82379,"version":"0.62.3","binstar":{"package_id":"64fc472e3f0f64386f06faf1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86b3b508c8524001fd18bfc7b53cedf4ca7bce76fba30ec3011d3d024a81336b"},"ros-noetic-ecl-statistics-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-config","ros-noetic-ecl-license","ros-noetic-ecl-linear-algebra","ros-noetic-ecl-mpl","ros-noetic-ecl-type-traits"],"subdir":"linux-64","timestamp":1694254863270,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"1e24010997f324ceefe1066ae8cbece3","name":"ros-noetic-ecl-statistics","requires":[],"size":56445,"version":"0.62.3","binstar":{"package_id":"64fc472f1206ab1b17e57d13","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8c2797f48eb24290780073a8778c66adc17a47ab6ceb4fd4551c35bf5d838d78"},"ros-noetic-ecl-statistics-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-config","ros-noetic-ecl-license","ros-noetic-ecl-linear-algebra","ros-noetic-ecl-mpl","ros-noetic-ecl-type-traits"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498625290,"md5":"0845b146671bc2a666d868b81083b66a","name":"ros-noetic-ecl-statistics","requires":[],"size":58191,"version":"0.62.3","binstar":{"package_id":"64fc472f1206ab1b17e57d13","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"27f19fa6c54ada70145647b3495d94b191a9f66a0e9b462b18c0b87e761fef47"},"ros-noetic-ecl-streams-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-concepts","ros-noetic-ecl-converters","ros-noetic-ecl-devices","ros-noetic-ecl-errors","ros-noetic-ecl-license","ros-noetic-ecl-time","ros-noetic-ecl-type-traits"],"subdir":"linux-64","timestamp":1694254891429,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"668d9ab78b427b3744e3648277ac601e","name":"ros-noetic-ecl-streams","requires":[],"size":60859,"version":"0.62.3","binstar":{"package_id":"64fc47303ef1a511e001f513","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eab0a4789ad89441b20b5a4e50bacbe94bacc6dcbfa4ca820f3e145e046025cb"},"ros-noetic-ecl-streams-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-concepts","ros-noetic-ecl-converters","ros-noetic-ecl-devices","ros-noetic-ecl-errors","ros-noetic-ecl-license","ros-noetic-ecl-time","ros-noetic-ecl-type-traits"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706573283965,"md5":"13045e697011f4a7e0da7218d731713a","name":"ros-noetic-ecl-streams","requires":[],"size":60657,"version":"0.62.3","binstar":{"package_id":"64fc47303ef1a511e001f513","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"236918a14311b3a8140245ba0c6351b2e6daf900fd6db3e8b76f178dc9a4f958"},"ros-noetic-ecl-core-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":false,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-command-line","ros-noetic-ecl-concepts","ros-noetic-ecl-containers","ros-noetic-ecl-converters","ros-noetic-ecl-core-apps","ros-noetic-ecl-devices","ros-noetic-ecl-eigen","ros-noetic-ecl-exceptions","ros-noetic-ecl-formatters","ros-noetic-ecl-geometry","ros-noetic-ecl-ipc","ros-noetic-ecl-linear-algebra","ros-noetic-ecl-math","ros-noetic-ecl-mpl","ros-noetic-ecl-sigslots","ros-noetic-ecl-statistics","ros-noetic-ecl-streams","ros-noetic-ecl-threads","ros-noetic-ecl-time","ros-noetic-ecl-type-traits","ros-noetic-ecl-utilities"],"subdir":"linux-64","timestamp":1694255128885,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"8960c3af8ebbc06802d076cea60a2744","name":"ros-noetic-ecl-core","requires":[],"size":8183,"version":"0.62.3","binstar":{"package_id":"64fc481bb40d4075b571ae50","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ae7a908db3fe651de2762b91659cef6d534e8b41da3521f4c8263652ca600e02"},"ros-noetic-ecl-core-apps-0.62.3-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-command-line","ros-noetic-ecl-config","ros-noetic-ecl-containers","ros-noetic-ecl-converters","ros-noetic-ecl-devices","ros-noetic-ecl-errors","ros-noetic-ecl-exceptions","ros-noetic-ecl-formatters","ros-noetic-ecl-geometry","ros-noetic-ecl-ipc","ros-noetic-ecl-license","ros-noetic-ecl-linear-algebra","ros-noetic-ecl-sigslots","ros-noetic-ecl-streams","ros-noetic-ecl-threads","ros-noetic-ecl-time-lite","ros-noetic-ecl-type-traits"],"subdir":"linux-64","timestamp":1694255098884,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"139191947f384e6a69071e46195ad8b4","name":"ros-noetic-ecl-core-apps","requires":[],"size":455231,"version":"0.62.3","binstar":{"package_id":"64fc481ddfb30d927608bf35","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"15aa2e9c47ecea821e1877cc06a684649093761f3c7f135a07a025d7090db8c1"},"ros-noetic-ecl-core-apps-0.62.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-ecl-build","ros-noetic-ecl-command-line","ros-noetic-ecl-config","ros-noetic-ecl-containers","ros-noetic-ecl-converters","ros-noetic-ecl-devices","ros-noetic-ecl-errors","ros-noetic-ecl-exceptions","ros-noetic-ecl-formatters","ros-noetic-ecl-geometry","ros-noetic-ecl-ipc","ros-noetic-ecl-license","ros-noetic-ecl-linear-algebra","ros-noetic-ecl-sigslots","ros-noetic-ecl-streams","ros-noetic-ecl-threads","ros-noetic-ecl-time-lite","ros-noetic-ecl-type-traits"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706574591336,"md5":"6c44c83ff8c181499a32aa71a3199ec1","name":"ros-noetic-ecl-core-apps","requires":[],"size":471176,"version":"0.62.3","binstar":{"package_id":"64fc481ddfb30d927608bf35","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"be029c3b10f0a762b6510581bb3139e20d211cc16b634936a5ae86a905eaa748"},"ros-noetic-dynamic-tf-publisher-2.2.12-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-rospy","ros-noetic-tf"],"subdir":"linux-64","timestamp":1694895504868,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"ebdd9faf4b06cca68e7671224fbd7d1c","name":"ros-noetic-dynamic-tf-publisher","requires":[],"size":61820,"version":"2.2.12","binstar":{"package_id":"65060dc500e045849d5c5a32","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3f4db6755ccac4d6825e4163742e79b9e565e98e2d2a8b3f01bf3e2d542292a4"},"ros-noetic-ivcon-0.1.7-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"subdir":"linux-64","timestamp":1694895428456,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"eb01130114086f614fd90de9f3be0968","name":"ros-noetic-ivcon","requires":[],"size":91724,"version":"0.1.7","binstar":{"package_id":"65060dc700e045849d5c5dec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4a5230db8e202ec350c50cbfa036f0370944684b38d2385c095a10b62e410b0f"},"ros-noetic-ivcon-0.1.7-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524892497,"md5":"1f392179dcb018aa2d9c40489c303723","name":"ros-noetic-ivcon","requires":[],"size":91451,"version":"0.1.7","binstar":{"package_id":"65060dc700e045849d5c5dec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"80af61b8a41e97d88fa6829533764072eb2dc855d037af7799264232372c61df"},"ros-noetic-jsk-footstep-msgs-4.3.2-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime"],"subdir":"linux-64","timestamp":1694895566294,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"70827e4de98d89f7adcce2f79f7d9432","name":"ros-noetic-jsk-footstep-msgs","requires":[],"size":102656,"version":"4.3.2","binstar":{"package_id":"65060df68a9b7fe6f9e1644b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9c237817da87f6c2d5375eef249e6c4b971858f64f2c4b0c7c434030019aa2fa"},"ros-noetic-jsk-footstep-msgs-4.3.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498414034,"md5":"dbdca997aca03ac0a57d182426f9b123","name":"ros-noetic-jsk-footstep-msgs","requires":[],"size":103563,"version":"4.3.2","binstar":{"package_id":"65060df68a9b7fe6f9e1644b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c825744011b843e6ce22a33574f34773520b895fa78de1f0b6d370205d010319"},"ros-noetic-jsk-gui-msgs-4.3.2-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1694895523047,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"f7d7c60764574137da8c817ba6925f8d","name":"ros-noetic-jsk-gui-msgs","requires":[],"size":80169,"version":"4.3.2","binstar":{"package_id":"65060df8d88a3f84525943cf","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"556a9d4f8b073d8d8d50b3d9670d9c8c8c9244814d42e53ffaac14eda46d025b"},"ros-noetic-jsk-network-tools-2.2.12-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-msgs","ros-noetic-diagnostic-updater","ros-noetic-dynamic-reconfigure","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1694895482043,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"f28750dfa1b932419f3da07b9d9f578a","name":"ros-noetic-jsk-network-tools","requires":[],"size":226366,"version":"2.2.12","binstar":{"package_id":"65060df9c0e8ead16145fe24","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"77fb28a560d9732a06e7764d8594a260a446c19da20939354436dfa5097145c6"},"ros-noetic-people-msgs-1.4.2-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1694895602459,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"757ef5c7d3aac5527eb1fa5377afb4f5","name":"ros-noetic-people-msgs","requires":[],"size":53254,"version":"1.4.2","binstar":{"package_id":"65060dfb4474dd0da5e91276","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"86c9f32c8b9506848d053fd2040eb19959e187237d13228a2dcd6d5d49bd18f0"},"ros-noetic-people-msgs-1.4.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498356702,"md5":"16be56b21627153f87cdbbec0df9e9f9","name":"ros-noetic-people-msgs","requires":[],"size":54077,"version":"1.4.2","binstar":{"package_id":"65060dfb4474dd0da5e91276","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ccc83a2d35fd9eb912d7816dc14ff571638c7a07cca672e67b1e076d480b2cf1"},"ros-noetic-rosemacs-0.4.17-py39hac30774_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","emacs","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic"],"subdir":"linux-64","timestamp":1694895387912,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hac30774_16","md5":"311ce6473aac432b3374c2fa17aa5d04","name":"ros-noetic-rosemacs","requires":[],"size":31438,"version":"0.4.17","binstar":{"package_id":"65060dfc4474dd0da5e9128f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f67f22607e9ae823db61dbc13d41019775a8be7cfe81fd080664295cb13df2c8"},"ros-noetic-rosemacs-0.4.17-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","emacs","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706496319245,"md5":"30e4b8752ffbda88fbc2f2bed3239657","name":"ros-noetic-rosemacs","requires":[],"size":31434,"version":"0.4.17","binstar":{"package_id":"65060dfc4474dd0da5e9128f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5259c3209cb9c0262703aa834fd3c50b9964acfb4b28ef640266b45a68068eaa"},"ros-noetic-pr2-description-1.13.1-py39ha1a56fe_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","gtest >=1.14.0,<1.14.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-xacro","urdfdom >=3.1.1,<3.2.0a0"],"subdir":"linux-64","timestamp":1694897494829,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39ha1a56fe_16","md5":"dd601dd829eda1d97aacb23a7a8bd2d3","name":"ros-noetic-pr2-description","requires":[],"size":23299778,"version":"1.13.1","binstar":{"package_id":"6506156c08cdc3f181837097","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"dd40bedc6df85a8613f8b6bb298fbd4fccdc3a848db1d4f3dee7210284cbfd56"},"ros-noetic-jsk-recognition-msgs-1.2.15-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-jsk-footstep-msgs","ros-noetic-message-generation","ros-noetic-pcl-msgs","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1694899030848,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"10d7dd8164ed3caabd8705fc635681d4","name":"ros-noetic-jsk-recognition-msgs","requires":[],"size":1166983,"version":"1.2.15","binstar":{"package_id":"65061bd88a9b7fe6f9e4ed27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f60c5b2dedcd08fb93c0be432d65ee93952aae56bb66d1ab55337a40b557ad0f"},"ros-noetic-posedetection-msgs-4.3.2-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"subdir":"linux-64","timestamp":1694899153208,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"ed2e4207497dae8125d70e36f14bbce6","name":"ros-noetic-posedetection-msgs","requires":[],"size":209616,"version":"4.3.2","binstar":{"package_id":"65061bdcd7538bf556237719","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a4e6566c5de51eaa9868b4e57bd9c7e133e1dd794be158d2e2904b8f50c11425"},"ros-noetic-face-detector-1.4.2-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-actionlib-msgs","ros-noetic-cv-bridge","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-image-geometry","ros-noetic-image-transport","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-people-msgs","ros-noetic-rosbag","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-stereo-image-proc","ros-noetic-stereo-msgs","ros-noetic-tf","yaml-cpp >=0.7.0,<0.8.0a0"],"subdir":"linux-64","timestamp":1694898991022,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"f6c7381c52561b3004e6c2cb9ea22211","name":"ros-noetic-face-detector","requires":[],"size":353423,"version":"1.4.2","binstar":{"package_id":"65061be432d24713fd919b43","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6676450ce13c766c0fb48888729a8d03e1df2c726842397386df5f026f57d41f"},"ros-noetic-image-view2-2.2.12-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-geometry-msgs","ros-noetic-image-geometry","ros-noetic-image-transport","ros-noetic-image-view","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-pcl-ros","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"subdir":"linux-64","timestamp":1694899166965,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"7b5692aaf14513619d5658f33d1b0f55","name":"ros-noetic-image-view2","requires":[],"size":413297,"version":"2.2.12","binstar":{"package_id":"65061be5895acd4d895c4188","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"7f7d5eb3dd042faac54c1cea0bc607d7d63757e22ddfafbe3243736d18c6b6a5"},"ros-noetic-jsk-hark-msgs-4.3.2-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1694898830546,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"dac9967e00b228c030988c84b0852f13","name":"ros-noetic-jsk-hark-msgs","requires":[],"size":26638,"version":"4.3.2","binstar":{"package_id":"65061be64474dd0da5ec7589","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"95f174bd255ca8bd729f5f85df82e9fe3348cbbd1aa8dbe8268f7e474705101b"},"ros-noetic-jsk-hark-msgs-4.3.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498118507,"md5":"ae4080c8da6981c3598ebfb74a5a4f23","name":"ros-noetic-jsk-hark-msgs","requires":[],"size":27169,"version":"4.3.2","binstar":{"package_id":"65061be64474dd0da5ec7589","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c0784b3810753882a90aa809e5e32d8852cbdf16765c050c87b1f623a1a17e4a"},"ros-noetic-view-controller-msgs-0.2.0-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1694898801597,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"7c39637e17950ce966ac5e2110b2afcd","name":"ros-noetic-view-controller-msgs","requires":[],"size":51789,"version":"0.2.0","binstar":{"package_id":"65061be700e045849d60bf23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c98b91e5ccfb2aa250a59944cad2520083cde4b2409f4c19fbee66e91c2a0160"},"ros-noetic-view-controller-msgs-0.2.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498359324,"md5":"886b96e155396c682f8be07e4d0fe5cb","name":"ros-noetic-view-controller-msgs","requires":[],"size":52728,"version":"0.2.0","binstar":{"package_id":"65061be700e045849d60bf23","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"1023449216763226d9a6a0349e27b2a8980f47d69c943445e742e732da47d920"},"ros-noetic-jsk-rqt-plugins-2.1.8-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-image-publisher","ros-noetic-image-view2","ros-noetic-jsk-gui-msgs","ros-noetic-message-runtime","ros-noetic-qt-gui-py-common","ros-noetic-resource-retriever","ros-noetic-rqt-gui","ros-noetic-rqt-gui-py","ros-noetic-rqt-image-view","ros-noetic-rqt-plot","scikit-learn"],"subdir":"linux-64","timestamp":1694899786980,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"02f8d3e76a2aed24f765959fdbd1a0a5","name":"ros-noetic-jsk-rqt-plugins","requires":[],"size":682620,"version":"2.1.8","binstar":{"package_id":"65061e5105a67bfac15a2b6c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"32f868311dbdbf57232e7f69f098a8b457729d125480efb0e0069d87ca3d1dd9"},"ros-noetic-jsk-topic-tools-2.2.12-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libopencv","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","py-opencv","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-diagnostic-aggregator","ros-noetic-diagnostic-msgs","ros-noetic-diagnostic-updater","ros-noetic-dynamic-reconfigure","ros-noetic-dynamic-tf-publisher","ros-noetic-eigen-conversions","ros-noetic-geometry-msgs","ros-noetic-image-transport","ros-noetic-message-runtime","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-roslaunch","ros-noetic-rosnode","ros-noetic-rostime","ros-noetic-rostopic","ros-noetic-sensor-msgs","ros-noetic-sound-play","ros-noetic-std-msgs","ros-noetic-std-srvs","ros-noetic-tf","ros-noetic-topic-tools","scipy"],"subdir":"linux-64","timestamp":1694899616071,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"e447e635c577f8d31509fbc05c77920e","name":"ros-noetic-jsk-topic-tools","requires":[],"size":2643272,"version":"2.2.12","binstar":{"package_id":"65061e544bf3edf1ec233c37","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"614716a9ec4196a13b810ee286e7d82b6a21e42836032e95b94886b0f93e24ba"},"ros-noetic-openni2-launch-1.6.0-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","catkin_pkg","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-depth-image-proc","ros-noetic-image-proc","ros-noetic-nodelet","ros-noetic-rgbd-launch","ros-noetic-rospy","ros-noetic-roswtf","ros-noetic-tf"],"subdir":"linux-64","timestamp":1694899682216,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"6c805ff8a2dcc9522bdb071c0b093255","name":"ros-noetic-openni2-launch","requires":[],"size":23131,"version":"1.6.0","binstar":{"package_id":"65061e576ef80d618196c5bc","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0acac171fdd41b9d88c8da641fc945d3c3b3d44ad41d6f45a666d771905c576e"},"ros-noetic-jsk-data-2.2.12-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","click","gdown","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","paramiko","python","python_abi 3.9.* *_cp39","pyyaml","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-depth-image-proc","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-jsk-topic-tools","ros-noetic-message-runtime","ros-noetic-nodelet","ros-noetic-rosbag","ros-noetic-rqt-bag","ros-noetic-rviz","ros-noetic-tf2-ros","ros-noetic-xacro"],"subdir":"linux-64","timestamp":1694917781490,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"bfb1ce66008f18b49dd21d94fbf58aac","name":"ros-noetic-jsk-data","requires":[],"size":1746525,"version":"2.2.12","binstar":{"package_id":"6506649bd50c68f21fa9b4c0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"af095338e7f784ec6015f6f454ac211a65a6daf6b3e16efdf3eadaa5b9c38965"},"ros-noetic-jsk-tools-2.2.12-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","colorama","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pygithub","python","python_abi 3.9.* *_cp39","requests","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-diagnostic-aggregator","ros-noetic-diagnostic-msgs","ros-noetic-diagnostic-updater","ros-noetic-jsk-gui-msgs","ros-noetic-jsk-network-tools","ros-noetic-jsk-topic-tools","ros-noetic-rosbag","ros-noetic-rosemacs","ros-noetic-rosgraph-msgs","ros-noetic-rospy","ros-noetic-rqt-reconfigure","rosdep","slacker","tabulate","texttable"],"subdir":"linux-64","timestamp":1694917706482,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"3e2c2c58e29f7160ea0ff8e688f0b240","name":"ros-noetic-jsk-tools","requires":[],"size":154552,"version":"2.2.12","binstar":{"package_id":"6506649ebf2d4f558a642fe0","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ab0cf9c8d56c05d5033d03b00b996f94686b32c461beb09a53bf9c5ab72779f6"},"ros-noetic-jsk-recognition-utils-1.2.15-py39hc7ead1d_16.tar.bz2":{"build_number":16,"has_prefix":true,"machine":"x86_64","platform":"linux","depends":["chainer","glew >=2.1.0,<2.2.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","qt-main >=5.15.6,<5.16.0a0","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-eigen-conversions","ros-noetic-geometry-msgs","ros-noetic-image-geometry","ros-noetic-image-view","ros-noetic-jsk-recognition-msgs","ros-noetic-jsk-topic-tools","ros-noetic-message-runtime","ros-noetic-pcl-msgs","ros-noetic-pcl-ros","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf","ros-noetic-tf-conversions","ros-noetic-tf2-ros","ros-noetic-visualization-msgs","scikit-image","xorg-libx11","xorg-libxext","yaml-cpp >=0.7.0,<0.8.0a0"],"build":"py39hc7ead1d_16","timestamp":1694752664940,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","subdir":"linux-64","md5":"927d001b85e5e5629dafcf5073e80b35","name":"ros-noetic-jsk-recognition-utils","requires":[],"size":577118,"version":"1.2.15","binstar":{"package_id":"650667e1cf3a8df18754a756","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4886492f96ccd3f653a3d8f798e6bf7080a692ac7f30cb5af918b27f67b73769"},"ros-noetic-jsk-interactive-2.1.8-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-dynamic-tf-publisher","ros-noetic-geometry-msgs","ros-noetic-jsk-interactive-marker","ros-noetic-rospy","ros-noetic-visualization-msgs"],"subdir":"linux-64","timestamp":1694920164924,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"b5e757f76c09836d279229977ce6d671","name":"ros-noetic-jsk-interactive","requires":[],"size":28381,"version":"2.1.8","binstar":{"package_id":"65066e3c895acd4d8964e2b3","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c35c9d7735d6db9539058ae33c98759107d1bc241d0b680264e4b8fbaee034c6"},"ros-noetic-jsk-interactive-marker-2.1.8-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-dynamic-reconfigure","ros-noetic-dynamic-tf-publisher","ros-noetic-eigen-conversions","ros-noetic-geometry-msgs","ros-noetic-interactive-markers","ros-noetic-jsk-footstep-msgs","ros-noetic-jsk-recognition-msgs","ros-noetic-jsk-recognition-utils","ros-noetic-jsk-rviz-plugins","ros-noetic-jsk-topic-tools","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-moveit-msgs","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-rviz","ros-noetic-sensor-msgs","ros-noetic-tf","ros-noetic-tf-conversions","ros-noetic-urdf","ros-noetic-visualization-msgs","tinyxml","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0","yaml-cpp >=0.7.0,<0.8.0a0"],"subdir":"linux-64","timestamp":1694920024833,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"d20e6c46166b14db8dfee07453a39144","name":"ros-noetic-jsk-interactive-marker","requires":[],"size":37033163,"version":"2.1.8","binstar":{"package_id":"65066e499b086777d47a0317","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"eb02d21da57395f30afa887e652f05e3382fae6336e1774a909365c16203e7a3"},"ros-noetic-jsk-interactive-test-2.1.8-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-jsk-interactive","ros-noetic-jsk-interactive-marker","ros-noetic-rospy","ros-noetic-rviz","ros-noetic-visualization-msgs"],"subdir":"linux-64","timestamp":1694920246496,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"611cdf69c8993c823442d070619d6f14","name":"ros-noetic-jsk-interactive-test","requires":[],"size":243111,"version":"2.1.8","binstar":{"package_id":"65066e4b8a9b7fe6f901e70a","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"319d96ac73c524fba70ccc127a0156f89bde6e5af990c8431ebeafe94ac0bb3d"},"ros-noetic-jsk-rviz-plugins-2.1.8-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-diagnostic-msgs","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-image-geometry","ros-noetic-image-publisher","ros-noetic-jsk-footstep-msgs","ros-noetic-jsk-gui-msgs","ros-noetic-jsk-hark-msgs","ros-noetic-jsk-recognition-msgs","ros-noetic-jsk-recognition-utils","ros-noetic-jsk-topic-tools","ros-noetic-message-generation","ros-noetic-people-msgs","ros-noetic-posedetection-msgs","ros-noetic-rviz","ros-noetic-std-msgs","ros-noetic-urdfdom-py","ros-noetic-view-controller-msgs","scipy","xorg-libx11 >=1.8.4,<2.0a0","xorg-libxext >=1.3.4,<2.0a0"],"subdir":"linux-64","timestamp":1694919628661,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"737a693ba79ba1783bdc9951e4d7c41a","name":"ros-noetic-jsk-rviz-plugins","requires":[],"size":58609894,"version":"2.1.8","binstar":{"package_id":"65066e5b00e045849d834108","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e802af8c0f3ae55b5ad0b9b2da1976ae70774e2b3d8586961d96f476a75e006f"},"ros-noetic-jsk-visualization-2.1.8-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":false,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-jsk-interactive","ros-noetic-jsk-interactive-marker","ros-noetic-jsk-interactive-test","ros-noetic-jsk-rqt-plugins","ros-noetic-jsk-rviz-plugins"],"subdir":"linux-64","timestamp":1694920702233,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"4b2da6f3efaf92239e30d72183f48107","name":"ros-noetic-jsk-visualization","requires":[],"size":13108,"version":"2.1.8","binstar":{"package_id":"6506700537d54d83f03bee8d","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"53e51c5cfdf35468a699648c74f7821719ab7946715713b6a13399e7e0260026"},"ros-noetic-pr2-controllers-msgs-1.10.18-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-trajectory-msgs"],"subdir":"linux-64","timestamp":1696424431741,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"d1967a817934a0c09d3c222a80080208","name":"ros-noetic-pr2-controllers-msgs","requires":[],"size":157382,"version":"1.10.18","binstar":{"package_id":"651d627088a9f6c5edbe9c3e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f27729de7deeaf0725e472e1e27948681963f6fb0a9a181acdf377f51de061a0"},"ros-noetic-pr2-controllers-msgs-1.10.18-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-trajectory-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498644983,"md5":"b1585619ad4e4b7ba9178c7d8af002bd","name":"ros-noetic-pr2-controllers-msgs","requires":[],"size":166130,"version":"1.10.18","binstar":{"package_id":"651d627088a9f6c5edbe9c3e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"21346a651030d2f62eb23649b97a8f87bf62e6c6d40eeeb62b98a548ed6dae19"},"ros-noetic-pr2-teleop-0.6.2-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib","ros-noetic-geometry-msgs","ros-noetic-pr2-controllers-msgs","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-tf","ros-noetic-topic-tools"],"subdir":"linux-64","timestamp":1696424554964,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"8b5fd682bae8510565f7900856ae58ec","name":"ros-noetic-pr2-teleop","requires":[],"size":131412,"version":"0.6.2","binstar":{"package_id":"651d6273678eb82f46a48f3c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c09a3ccdaf3d522476df27b543fc254d28df4b17564695520890466264c6698a"},"ros-noetic-slam-gmapping-1.4.2-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":false,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-gmapping","ros-noetic-openslam-gmapping"],"subdir":"linux-64","timestamp":1696424504371,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"24226ec30af7605d56a1c140eadc3e2d","name":"ros-noetic-slam-gmapping","requires":[],"size":14385,"version":"1.4.2","binstar":{"package_id":"651d62766ef59ef5ce483706","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"66bdbab77d7ac946a26b0d34bc7c8f1cb3112a03a4cb6ff73971adb77ff9013c"},"ros-noetic-compass-msgs-1.0.3-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1698187835012,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"3baa5e5cf9d4b2f24a24111b0c024d3b","name":"ros-noetic-compass-msgs","requires":[],"size":27240,"version":"1.0.3","binstar":{"package_id":"65384a3fda06bb550586ccf7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2946c5db64ba3c51d6ca923b4a7db767827b1e3b6412ecca716232b868804e86"},"ros-noetic-compass-msgs-1.0.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498108178,"md5":"051f2b910c7b97bad64e617fd14abfb5","name":"ros-noetic-compass-msgs","requires":[],"size":27774,"version":"1.0.3","binstar":{"package_id":"65384a3fda06bb550586ccf7","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"ce34ef4dec57640a2a7bf9f74b0dab233ae6c975ad0d249b32235a8871a42bbf"},"ros-noetic-imu-transformer-0.3.1-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-tf2-sensor-msgs","ros-noetic-topic-tools"],"subdir":"linux-64","timestamp":1698187804719,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"35badbdf5de422abd40f6a225977aea6","name":"ros-noetic-imu-transformer","requires":[],"size":143138,"version":"0.3.1","binstar":{"package_id":"65384a42c015a21af7c20096","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b540be02dcfbc3f801595f3946622a79d7f1baa531f4f681adeefc574dd02290"},"ros-noetic-rosbash-params-1.1.0-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosbash","ros-noetic-rospy"],"subdir":"linux-64","timestamp":1698187728730,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"725a4296fcb707de1b02a35f76044146","name":"ros-noetic-rosbash-params","requires":[],"size":13211,"version":"1.1.0","binstar":{"package_id":"65384a45a78bcd2d7fc55bf4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"a99092b6a6cf49e41e22d6879807bc46ff1b68666b18885952fa119d411685c9"},"ros-noetic-snmp-ros-1.0.2-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pysnmp","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1698187869668,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"0de815b01be618273487fdb165ab8649","name":"ros-noetic-snmp-ros","requires":[],"size":13824,"version":"1.0.2","binstar":{"package_id":"65384a62deda3cbfe46f192f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c97f5f361e4ac61611435a8ebb5658d34c1b32970e155413f70308b697ceb49f"},"ros-noetic-static-transform-mux-1.1.1-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rospy","ros-noetic-tf2-msgs"],"subdir":"linux-64","timestamp":1698187836688,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"443667c15aa361722a6d167da3a00a11","name":"ros-noetic-static-transform-mux","requires":[],"size":12210,"version":"1.1.1","binstar":{"package_id":"65384a6505ccb2c53caa33f5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"151e6873ca562b88e2d9da3bd18c4822ddb8c8741802f37a8ad6335325ba729e"},"ros-noetic-tf-remapper-cpp-1.1.1-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-tf2-msgs","ros-noetic-xmlrpcpp"],"subdir":"linux-64","timestamp":1698187696097,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"58963cf0955b74601e5f8e2d9793d0cd","name":"ros-noetic-tf-remapper-cpp","requires":[],"size":72423,"version":"1.1.1","binstar":{"package_id":"65384a68deda3cbfe46f194c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"c1002f51567b789bb57470ac1cac4cb0b7f8699de3c5fa71a3031e4f3103a141"},"ros-noetic-tf2-client-1.0.0-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-tf2","ros-noetic-tf2-ros"],"subdir":"linux-64","timestamp":1698187810387,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"ee060801567fb6c182392bfdbc40a00a","name":"ros-noetic-tf2-client","requires":[],"size":55215,"version":"1.0.0","binstar":{"package_id":"65384a6bf4590c2b64982062","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"70f915df21978b124ccd9370f9381f815de0ae1ea5be29b2818eda908bdc0d33"},"ros-noetic-tf2-server-1.1.2-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","gtest >=1.14.0,<1.14.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-tf2-msgs","ros-noetic-tf2-ros"],"subdir":"linux-64","timestamp":1698187766223,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"cd0772206472e0c3eaa9441d808462ee","name":"ros-noetic-tf2-server","requires":[],"size":305625,"version":"1.1.2","binstar":{"package_id":"65384a6e036b6f413e13a60b","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"263dd67b16c3aabd5663d440ba125d9d36dd98ed26bc24ece43668b49a299489"},"draco-1.5.6-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":false,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-catkin"],"subdir":"linux-64","timestamp":1698187882406,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"c8405858a429926f9c0d7529b715ff14","name":"draco","requires":[],"size":1575147,"version":"1.5.6","binstar":{"package_id":"65384a7007c1552907c470b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"fdc268910aefe1f144e98c5bcfda376a7231167a1e8754634a046f3ebee09d1a"},"draco-1.5.6-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":false,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706524844596,"md5":"2ea0ac7d4e4186252478c1ce29f66ef1","name":"draco","requires":[],"size":1526171,"version":"1.5.6","binstar":{"package_id":"65384a7007c1552907c470b4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"742fc152de5fa14d1853bc17a5161a19738d5e3b514cdb99cde5cc90c8400746"},"ros-noetic-dynamic-robot-state-publisher-1.2.0-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-kdl-parser","ros-noetic-robot-state-publisher","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"subdir":"linux-64","timestamp":1698187752398,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"46b26eb37dcf5a3710e17abdda2b0bff","name":"ros-noetic-dynamic-robot-state-publisher","requires":[],"size":106604,"version":"1.2.0","binstar":{"package_id":"65384a734e508981b6985555","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"718ad48f80d127e793598f64029789ecf721b0aa4da9940c7444ff371df35066"},"ros-noetic-rosmsg-cpp-1.0.2-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cpp-common","ros-noetic-message-runtime","ros-noetic-roslib"],"subdir":"linux-64","timestamp":1698187656224,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"bca6d4241e531683eae6b3b5b485214a","name":"ros-noetic-rosmsg-cpp","requires":[],"size":35060,"version":"1.0.2","binstar":{"package_id":"65384a75f4590c2b64982086","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"bd57798344492c44079852188f57420c6814d0fd9cf30244a4d8f5127f528c37"},"ros-noetic-rosmsg-cpp-1.0.2-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-cpp-common","ros-noetic-message-runtime","ros-noetic-roslib"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498361993,"md5":"700cc6d645f75a65a393f4e776d85701","name":"ros-noetic-rosmsg-cpp","requires":[],"size":31163,"version":"1.0.2","binstar":{"package_id":"65384a75f4590c2b64982086","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"190477bad58538e0282e73919582d06f38c29569671f869782bbf1a2a1086c3e"},"ros-noetic-cras-docs-common-2.3.3-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-rosdoc-lite"],"subdir":"linux-64","timestamp":1698188106064,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"a4c15f32bd7f8c5570305f3324145c90","name":"ros-noetic-cras-docs-common","requires":[],"size":55550,"version":"2.3.3","binstar":{"package_id":"65384b59c00a353ecc932292","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"62d2090012b4688ed316da6266203f49bab4fe85d291b0950a0544115156c79f"},"ros-noetic-cras-docs-common-2.3.8-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-rosdoc-lite"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706497288834,"md5":"a4f8b954d275b7abd551204b8a238fcf","name":"ros-noetic-cras-docs-common","requires":[],"size":56352,"version":"2.3.8","binstar":{"package_id":"65384b59c00a353ecc932292","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"84f0a2da4a79b31b03daf983ba971eb6c226f67bed0337ee39824b05c248a06b"},"ros-noetic-cras-relative-positional-controller-2.0.0-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1698188056323,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"e6fec83e97844fac9ca65e454541e0f9","name":"ros-noetic-cras-relative-positional-controller","requires":[],"size":58485,"version":"2.0.0","binstar":{"package_id":"65384b62716c4026ed87e6aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"9612c8041aa9d117bf775eadb0d30e6a1cc8f6848213137884c10dbeab646da4"},"ros-noetic-cras-relative-positional-controller-2.0.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-actionlib-msgs","ros-noetic-geometry-msgs","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498335838,"md5":"405ab686e395a6e42a67190d8e8462cd","name":"ros-noetic-cras-relative-positional-controller","requires":[],"size":61537,"version":"2.0.0","binstar":{"package_id":"65384b62716c4026ed87e6aa","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"30a5d0900b5afd09a4c7a1fac9f56ab5a6ed6ede2224d25d7947fdcc97d74f9d"},"ros-noetic-movie-publisher-1.4.0-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","ffmpeg","imageio","libgcc-ng >=12","libgcc-ng >=12","libopencv","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","py-opencv","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-rosbash-params","ros-noetic-rospy","ros-noetic-sensor-msgs"],"subdir":"linux-64","timestamp":1698188583420,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"15f5464cf69cae72fc92ae7edb54e802","name":"ros-noetic-movie-publisher","requires":[],"size":20745,"version":"1.4.0","binstar":{"package_id":"65384d28f4590c2b64982fd5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"60477b594b7879b786c335a7ad67f164328d8816b0422aff0784ce8aa7e4899b"},"ros-noetic-cras-cpp-common-2.3.3-py39h30ed1c1_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","boost >=1.78.0,<1.78.1.0a0","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-bondcpp","ros-noetic-class-loader","ros-noetic-diagnostic-msgs","ros-noetic-diagnostic-updater","ros-noetic-dynamic-reconfigure","ros-noetic-filters","ros-noetic-geometry-msgs","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-rosconsole","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-topic-tools","urdfdom_headers"],"subdir":"linux-64","timestamp":1698188199555,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39h30ed1c1_16","md5":"6d8ed6223471cb31d6721aa5381cb1db","name":"ros-noetic-cras-cpp-common","requires":[],"size":648915,"version":"2.3.3","binstar":{"package_id":"65384d2c54e47f2b8fe04016","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"09ea06bffd1755d666956dd84d45737046c7b95f63951a5716019bb334074a11"},"ros-noetic-cras-msgs-1.1.1-py39h1b3bcce_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1698188246901,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39h1b3bcce_16","md5":"caec0b0556cc73f77d8a374ff9862a90","name":"ros-noetic-cras-msgs","requires":[],"size":69656,"version":"1.1.1","binstar":{"package_id":"65384d3083c33372c7a92cf4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"4750eb41352f59f14a5b75e199f21d32905c84b8501337a69a650c2c1fc557b6"},"ros-noetic-electronic-io-msgs-1.0.3-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-message-runtime","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1698188289568,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"72eea0ef919017866fc63d32cb830664","name":"ros-noetic-electronic-io-msgs","requires":[],"size":85185,"version":"1.0.3","binstar":{"package_id":"65384d33e1025f6c3bbb83c5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"715f7ef5ce15e206c0faa61b2cb3a1a5205b473604df5d84b7f1a58303837491"},"ros-noetic-electronic-io-msgs-1.0.3-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498133641,"md5":"660c05b8931d9e65ddcb7d0221ec05da","name":"ros-noetic-electronic-io-msgs","requires":[],"size":93846,"version":"1.0.3","binstar":{"package_id":"65384d33e1025f6c3bbb83c5","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2489f8d30a59ad473f0b8fbf8f9eab4a87051e15d4265089925eb3b41f3095c8"},"ros-noetic-robot-body-filter-1.3.1-py39h0e9f60e_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","pcl >=1.12.1,<1.12.2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-fcl","ros-noetic-filters","ros-noetic-geometric-shapes","ros-noetic-geometry-msgs","ros-noetic-laser-geometry","ros-noetic-message-runtime","ros-noetic-moveit-core","ros-noetic-moveit-ros-perception","ros-noetic-pcl-conversions","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-std-msgs","ros-noetic-tf2","ros-noetic-tf2-ros","ros-noetic-urdf","ros-noetic-visualization-msgs"],"subdir":"linux-64","timestamp":1698188540651,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39h0e9f60e_16","md5":"b30ec86a933a1b11d9208d959d29e749","name":"ros-noetic-robot-body-filter","requires":[],"size":389731,"version":"1.3.1","binstar":{"package_id":"65384d3961cf36dcb286d3b8","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"58ccacb2370e3d50238fe7c956d3ff8e93394b53e26dee31149686e47db3cbde"},"ros-noetic-cras-py-common-2.3.3-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-dynamic-reconfigure","ros-noetic-geometry-msgs","ros-noetic-rosgraph","ros-noetic-rosgraph-msgs","ros-noetic-rospy","ros-noetic-tf","ros-noetic-tf2-msgs","ros-noetic-tf2-ros"],"subdir":"linux-64","timestamp":1698188821488,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"393462d9b6769aa420fd716dd56a7028","name":"ros-noetic-cras-py-common","requires":[],"size":73969,"version":"2.3.3","binstar":{"package_id":"65384f1f05ccb2c53caa48da","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d05b2f72eec2cee77d2326ad292d35d5d6bec6364f0c62352b32d6570edac910"},"ros-noetic-cras-topic-tools-2.3.3-py39h30ed1c1_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","boost >=1.78.0,<1.78.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cras-cpp-common","ros-noetic-cras-msgs","ros-noetic-cras-py-common","ros-noetic-nodelet","ros-noetic-rosbag","ros-noetic-roscpp","ros-noetic-rospy","ros-noetic-std-msgs","ros-noetic-topic-tools"],"subdir":"linux-64","timestamp":1698189081452,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39h30ed1c1_16","md5":"2133b1586b995ce6f7fdc3bc4727fe5f","name":"ros-noetic-cras-topic-tools","requires":[],"size":692122,"version":"2.3.3","binstar":{"package_id":"65384f23036b6f413e13c4cb","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"3e185ffc52122f1dfea81750301c8017bd96f042e32eec7a12d2a6c525cc2d71"},"ros-noetic-electronic-io-1.0.3-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cras-msgs","ros-noetic-electronic-io-msgs","ros-noetic-rospy","ros-noetic-sensor-msgs","ros-noetic-std-srvs"],"subdir":"linux-64","timestamp":1698188929644,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"d7ce7e28a1fd3112de44a52f7c756874","name":"ros-noetic-electronic-io","requires":[],"size":68730,"version":"1.0.3","binstar":{"package_id":"65384f26deda3cbfe46f2fc1","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"8ec2f09ab162506474eba085d25b80cc8116d9ad8e5a1ec07a834bfb1a015937"},"ros-noetic-magnetometer-compass-1.0.3-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","geographiclib-cpp >=2.3,<2.4.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-compass-msgs","ros-noetic-geometry-msgs","ros-noetic-imu-transformer","ros-noetic-message-filters","ros-noetic-nodelet","ros-noetic-roscpp","ros-noetic-roslib","ros-noetic-sensor-msgs","ros-noetic-tf2","ros-noetic-tf2-geometry-msgs","ros-noetic-tf2-ros"],"subdir":"linux-64","timestamp":1698188896982,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"c3f6e1734249b76e7cb3d3dde91758fd","name":"ros-noetic-magnetometer-compass","requires":[],"size":169484,"version":"1.0.3","binstar":{"package_id":"65384f28e1025f6c3bbb8e65","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"f4d801a256e9336077fdef7862dd5e3654be24e0ba31578a9039808486b4c67c"},"ros-noetic-image-transport-codecs-2.3.3-py39h7a02771_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libjpeg-turbo >=2.1.4,<3.0a0","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-class-loader","ros-noetic-compressed-depth-image-transport","ros-noetic-compressed-image-transport","ros-noetic-cras-cpp-common","ros-noetic-cras-topic-tools","ros-noetic-dynamic-reconfigure","ros-noetic-image-transport","ros-noetic-pluginlib","ros-noetic-sensor-msgs","ros-noetic-theora-image-transport","ros-noetic-topic-tools"],"subdir":"linux-64","timestamp":1698189608508,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39h7a02771_16","md5":"c9f341cf999d1406d4d79254d9958e5e","name":"ros-noetic-image-transport-codecs","requires":[],"size":334507,"version":"2.3.3","binstar":{"package_id":"653851306da766c0df88d10f","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"05850dfd425788145acec7e0f733d6bc7ef5d7242282da1593288558034c9a85"},"ros-noetic-point-cloud-transport-1.0.11-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cras-cpp-common","ros-noetic-cras-py-common","ros-noetic-cras-topic-tools","ros-noetic-dynamic-reconfigure","ros-noetic-message-filters","ros-noetic-message-runtime","ros-noetic-nodelet","ros-noetic-pluginlib","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-topic-tools"],"subdir":"linux-64","timestamp":1698189439135,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"4dd3935c9c9577712ddd2114d51f87bd","name":"ros-noetic-point-cloud-transport","requires":[],"size":478211,"version":"1.0.11","binstar":{"package_id":"65385134e1e99f3c47ce1e1c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"d46b9df7ed0e06346d60414f083cca8dbe6defe12d67e3c61ba7d043c030aff3"},"ros-noetic-draco-point-cloud-transport-1.0.5-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","draco","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cras-cpp-common","ros-noetic-dynamic-reconfigure","ros-noetic-message-runtime","ros-noetic-pluginlib","ros-noetic-point-cloud-transport","ros-noetic-sensor-msgs","ros-noetic-std-msgs"],"subdir":"linux-64","timestamp":1698189848760,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"dc85fb9876e19aa5898c8363be279d0f","name":"ros-noetic-draco-point-cloud-transport","requires":[],"size":342721,"version":"1.0.5","binstar":{"package_id":"653853668eccc7ce65bf5cd4","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"e4b0f2f38f9bd55b2e309f1b1589aecafac178008679f8e73e19b11530d299da"},"ros-noetic-point-cloud-color-1.2.1-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-cv-bridge","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-point-cloud-transport","ros-noetic-roscpp","ros-noetic-sensor-msgs","ros-noetic-tf2-eigen","ros-noetic-tf2-ros"],"subdir":"linux-64","timestamp":1698190152154,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"505202dbb76e8e21151653830348c226","name":"ros-noetic-point-cloud-color","requires":[],"size":86314,"version":"1.2.1","binstar":{"package_id":"65385369e1025f6c3bbbaf55","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"882fed948b66fcbbd432d1e0f9fb81d5bdd97d545be7a64c92fc504075120ef3"},"ros-noetic-point-cloud-transport-plugins-1.0.5-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":false,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-draco-point-cloud-transport"],"subdir":"linux-64","timestamp":1698190178805,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"6c1ff9c7a196f97efd772a7b2d4ff71b","name":"ros-noetic-point-cloud-transport-plugins","requires":[],"size":9091,"version":"1.0.5","binstar":{"package_id":"6538536e07c1552907c481ec","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"19a7bb064cc97d5007fe20ce56f2524cc6e3089fbd2a24ecd612980995e36ed7"},"ros-noetic-sensor-filters-1.1.1-py39hadd303b_16.tar.bz2":{"build_number":16,"license":"BSD-3-Clause","has_prefix":true,"machine":"x86_64","platform":"linux","depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.20.3,<2.0a0","python","python_abi 3.9.* *_cp39","ros-distro-mutex 0.4.*","ros-distro-mutex 0.4.* noetic","ros-noetic-filters","ros-noetic-image-transport","ros-noetic-nodelet","ros-noetic-point-cloud-transport","ros-noetic-roscpp","ros-noetic-sensor-msgs"],"subdir":"linux-64","timestamp":1698190041685,"arch":"x86_64","operatingsystem":"linux","target-triplet":"x86_64-any-linux","build":"py39hadd303b_16","md5":"6c265c63eae17f60e9fc0dbb94c8aff8","name":"ros-noetic-sensor-filters","requires":[],"size":1851019,"version":"1.1.1","binstar":{"package_id":"6538537134a6e3a34894c87c","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"2610999e0ea29ec84a497ec7af8efb6a71d8f599cf566c7eff67db1363089e1d"},"ros-noetic-pinocchio-2.6.20-h6f875b6_21.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":false,"subdir":"linux-64","arch":"x86_64","build":"h6f875b6_21","build_number":21,"depends":["pinocchio 2.6.20*"],"platform":"linux","timestamp":1706523556878,"md5":"cb0eaefd21eb971fbe88eecc2a0d5c5f","name":"ros-noetic-pinocchio","requires":[],"size":3632,"version":"2.6.20","binstar":{"package_id":"65b70b5aee8d8b5e0ccb253e","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"0cd26e329d1a5e25722981b754461258e5f2263fbd6f8df78ee4456c99fcf7fa"},"ros-noetic-gtsam-4.2.0-py311hb3d35ac_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb3d35ac_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706524312757,"md5":"ca4ef381d91a65fd06729295343ce482","name":"ros-noetic-gtsam","requires":[],"size":4127414,"version":"4.2.0","binstar":{"package_id":"65b710b7a61890c2250bf2ab","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"6ba282c21765f38aa57cea44b88cee8196d5f07c8f4bfaf98d4bcae683553c03"},"ros-noetic-libnabo-1.0.7-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","boost","eigen","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-catkin"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706573327301,"md5":"158d7e69948dd5d99bd7da4102723d14","name":"ros-noetic-libnabo","requires":[],"size":238117,"version":"1.0.7","binstar":{"package_id":"65b711916df9609650720043","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"34a8b29d45c96745caeef614745af85139b9e874b49a3594bb6cbdfa779c93a6"},"ros-noetic-grid-map-core-1.6.4-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","eigen","gtest >=1.14.0,<1.14.1.0a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706573317029,"md5":"4f761b036d23f236c6acf85b1f64c87b","name":"ros-noetic-grid-map-core","requires":[],"size":1927187,"version":"1.6.4","binstar":{"package_id":"65b7132241285cc2499ba806","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"248f5fccfa773923111c4c96997a5e305c3b8a4a2faf8adeff4a6da846bcc935"},"ros-noetic-p2os-msgs-2.2.1-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498155027,"md5":"f6b91b71a78f4683229d47b9a08d9465","name":"ros-noetic-p2os-msgs","requires":[],"size":57870,"version":"2.2.1","binstar":{"package_id":"65b7189bb1faa8abccb21c94","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"94fe5e74fa2a37cbfc919ca2be0db944b4afc0e6210e5b8e42b0a2c123fadf61"},"ros-noetic-velodyne-msgs-1.7.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","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":"linux","timestamp":1706498107270,"md5":"0db020700981b0c738507a690a1edf3e","name":"ros-noetic-velodyne-msgs","requires":[],"size":31767,"version":"1.7.0","binstar":{"package_id":"65b7189da679b36b22b67bff","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"5d66780676bba87cb5b655bb8cef444ea233b96fddce1d6c35332b7b4c902bc8"},"ros-noetic-grid-map-msgs-1.6.4-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-geometry-msgs","ros-noetic-message-generation","ros-noetic-message-runtime","ros-noetic-roscpp","ros-noetic-std-msgs"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498613371,"md5":"1b0bfda80a5c67e14299a7ac9b6d3065","name":"ros-noetic-grid-map-msgs","requires":[],"size":70651,"version":"1.6.4","binstar":{"package_id":"65b71ad0acb988573bb67c27","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"b76ca4c5bab1b5bc022ccf0aea68faaa85ff4d0041a45d4a703a2c185a37ce1f"},"ros-noetic-ros-type-introspection-2.1.0-py311hb335429_17.tar.bz2":{"operatingsystem":"linux","machine":"x86_64","target-triplet":"x86_64-any-linux","has_prefix":true,"subdir":"linux-64","arch":"x86_64","build":"py311hb335429_17","build_number":17,"depends":["__glibc >=2.17,<3.0.a0","libgcc-ng >=12","libgcc-ng >=12","libstdcxx-ng >=12","numpy >=1.23.5,<2.0a0","python","python_abi 3.11.* *_cp311","ros-distro-mutex 0.5.*","ros-distro-mutex 0.5.* noetic","ros-noetic-roscpp","ros-noetic-roscpp-serialization","ros-noetic-rostime"],"license":"BSD-3-Clause","platform":"linux","timestamp":1706498742362,"md5":"bbc1e2f4f028df6ca733eac99b49ce60","name":"ros-noetic-ros-type-introspection","requires":[],"size":182892,"version":"2.1.0","binstar":{"package_id":"65b71c2125559064479ba7af","owner_id":"635d3643e1086c90009c5005","channel":"main"},"sha256":"31ce82569e0bb0b59db9d9d38c27e924d7c52e045ec0ec38d4947cd84e4138d1"}},"packages.conda":{},"info":{"default_numpy_version":"1.7","default_python_version":"2.7","platform":"linux","arch":"x86_64","subdir":"linux-64"}} \ No newline at end of file