From 06a720a8ff9ad16a4b6c376da7635858f4d5af9f Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Sun, 5 Jan 2025 10:09:26 +0000 Subject: [PATCH] Add build files 2025-01-05-1009 --- .github/workflows/win.yml | 7521 +++++++++++++++++ activate.bat | 15 + activate.ps1 | 16 + activate.sh | 26 + bld_ament_cmake.bat | 52 + bld_ament_python.bat | 25 + bld_catkin.bat | 81 + bld_catkin_merge.bat | 34 + bld_colcon_merge.bat | 38 + build_ament_cmake.sh | 84 + build_ament_python.sh | 19 + build_catkin.sh | 132 + buildorder.txt | 348 + deactivate.bat | 18 + deactivate.ps1 | 18 + deactivate.sh | 21 + .../ros-jazzy-action-msgs/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-action-msgs/recipe.yaml | 94 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 94 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 88 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../ros-jazzy-action-tutorials-py/recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-actionlib-msgs/recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-actuator-msgs/recipe.yaml | 90 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../ros-jazzy-ament-clang-format/recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ament-cmake-auto/recipe.yaml | 89 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 89 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ament-cmake-core/recipe.yaml | 85 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ament-cmake-cpplint/recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 85 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 87 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 85 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 87 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 85 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 85 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 87 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ament-cmake-flake8/recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 87 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ament-cmake-gmock/recipe.yaml | 92 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 88 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ament-cmake-gtest/recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 85 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 85 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 88 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ament-cmake-pep257/recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ament-cmake-pytest/recipe.yaml | 89 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ament-cmake-python/recipe.yaml | 85 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-ament-cmake-ros/recipe.yaml | 95 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 89 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ament-cmake-test/recipe.yaml | 86 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + ...ros-jazzy-ament-cmake-vendor-package.patch | 64 + .../recipe.yaml | 93 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ament-cmake-version/recipe.yaml | 85 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ament-cmake-xmllint/recipe.yaml | 90 + .../ros-jazzy-ament-cmake/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-ament-cmake/recipe.yaml | 112 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ament-copyright/recipe.yaml | 89 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ament-cppcheck/recipe.yaml | 90 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ament-cpplint/recipe.yaml | 91 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ament-flake8/recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-ament-index-cpp/recipe.yaml | 87 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../ros-jazzy-ament-index-python/recipe.yaml | 88 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-ament-lint-auto/recipe.yaml | 87 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../ros-jazzy-ament-lint-cmake/recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ament-lint-common/recipe.yaml | 94 + .../ros-jazzy-ament-lint/bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ament-lint/recipe.yaml | 85 + .../ros-jazzy-ament-mypy/bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ament-mypy/recipe.yaml | 88 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ament-package/recipe.yaml | 87 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ament-pep257/recipe.yaml | 88 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../ros-jazzy-ament-pycodestyle/recipe.yaml | 85 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../ros-jazzy-ament-uncrustify/recipe.yaml | 90 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ament-xmllint/recipe.yaml | 93 + recipes/ros-jazzy-angles/bld_ament_cmake.bat | 52 + recipes/ros-jazzy-angles/build_ament_cmake.sh | 84 + recipes/ros-jazzy-angles/recipe.yaml | 87 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-builtin-interfaces/recipe.yaml | 87 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-class-loader/recipe.yaml | 94 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-common-interfaces/recipe.yaml | 98 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 89 + .../ros-jazzy-composition/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-composition/recipe.yaml | 103 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 90 + .../ros-jazzy-cv-bridge/bld_ament_cmake.bat | 52 + .../ros-jazzy-cv-bridge/build_ament_cmake.sh | 84 + recipes/ros-jazzy-cv-bridge/recipe.yaml | 116 + recipes/ros-jazzy-cyclonedds/bld_catkin.bat | 81 + recipes/ros-jazzy-cyclonedds/build_catkin.sh | 132 + recipes/ros-jazzy-cyclonedds/recipe.yaml | 94 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 99 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-demo-nodes-cpp/recipe.yaml | 111 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-demo-nodes-py/recipe.yaml | 93 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 111 + recipes/ros-jazzy-desktop/bld_ament_cmake.bat | 52 + .../ros-jazzy-desktop/build_ament_cmake.sh | 84 + recipes/ros-jazzy-desktop/recipe.yaml | 128 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-diagnostic-msgs/recipe.yaml | 93 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../ros-jazzy-domain-coordinator/recipe.yaml | 88 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-dummy-map-server/recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-dummy-robot-bringup/recipe.yaml | 93 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-dummy-sensors/recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-eigen3-cmake-module/recipe.yaml | 86 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-example-interfaces/recipe.yaml | 86 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 92 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 92 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 92 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 92 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 88 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 90 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../recipe.yaml | 90 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../recipe.yaml | 91 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../recipe.yaml | 90 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../recipe.yaml | 91 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../recipe.yaml | 90 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../recipe.yaml | 91 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../recipe.yaml | 90 + recipes/ros-jazzy-fastcdr/bld_catkin.bat | 81 + recipes/ros-jazzy-fastcdr/build_catkin.sh | 132 + recipes/ros-jazzy-fastcdr/recipe.yaml | 85 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 86 + recipes/ros-jazzy-fastrtps/bld_catkin.bat | 81 + recipes/ros-jazzy-fastrtps/build_catkin.sh | 132 + .../patch/ros-jazzy-fastrtps.patch | 30 + recipes/ros-jazzy-fastrtps/recipe.yaml | 94 + .../bld_catkin.bat | 81 + .../build_catkin.sh | 132 + .../recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-geometry-msgs/recipe.yaml | 89 + .../ros-jazzy-geometry2/bld_ament_cmake.bat | 52 + .../ros-jazzy-geometry2/build_ament_cmake.sh | 84 + recipes/ros-jazzy-geometry2/recipe.yaml | 95 + recipes/ros-jazzy-gmock-vendor/bld_catkin.bat | 81 + .../ros-jazzy-gmock-vendor/build_catkin.sh | 132 + recipes/ros-jazzy-gmock-vendor/recipe.yaml | 85 + .../bld_catkin.bat | 81 + .../build_catkin.sh | 132 + .../recipe.yaml | 85 + .../ros-jazzy-gps-msgs/bld_ament_cmake.bat | 52 + .../ros-jazzy-gps-msgs/build_ament_cmake.sh | 84 + recipes/ros-jazzy-gps-msgs/recipe.yaml | 88 + recipes/ros-jazzy-gtest-vendor/bld_catkin.bat | 81 + .../ros-jazzy-gtest-vendor/build_catkin.sh | 132 + recipes/ros-jazzy-gtest-vendor/recipe.yaml | 83 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-cmake-vendor.patch | 8 + recipes/ros-jazzy-gz-cmake-vendor/recipe.yaml | 94 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-common-vendor.patch | 13 + .../ros-jazzy-gz-common-vendor/recipe.yaml | 112 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-dartsim-vendor.patch | 23 + .../ros-jazzy-gz-dartsim-vendor/recipe.yaml | 111 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-gz-fuel-tools-vendor.patch | 15 + .../recipe.yaml | 117 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-gui-vendor.patch | 15 + recipes/ros-jazzy-gz-gui-vendor/recipe.yaml | 134 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-math-vendor.patch | 13 + recipes/ros-jazzy-gz-math-vendor/recipe.yaml | 104 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-msgs-vendor.patch | 13 + recipes/ros-jazzy-gz-msgs-vendor/recipe.yaml | 106 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-ogre-next-vendor.patch | 233 + .../ros-jazzy-gz-ogre-next-vendor/recipe.yaml | 135 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-physics-vendor.patch | 13 + .../ros-jazzy-gz-physics-vendor/recipe.yaml | 113 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-plugin-vendor.patch | 13 + .../ros-jazzy-gz-plugin-vendor/recipe.yaml | 99 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-rendering-vendor.patch | 13 + .../ros-jazzy-gz-rendering-vendor/recipe.yaml | 123 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-sensors-vendor.patch | 13 + .../ros-jazzy-gz-sensors-vendor/recipe.yaml | 109 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-sim-vendor.patch | 13 + recipes/ros-jazzy-gz-sim-vendor/recipe.yaml | 162 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-gz-tools-vendor/recipe.yaml | 94 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-transport-vendor.patch | 13 + .../ros-jazzy-gz-transport-vendor/recipe.yaml | 124 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-gz-utils-vendor.patch | 13 + recipes/ros-jazzy-gz-utils-vendor/recipe.yaml | 95 + .../bld_catkin.bat | 81 + .../build_catkin.sh | 132 + .../ros-jazzy-iceoryx-binding-c/recipe.yaml | 85 + .../ros-jazzy-iceoryx-hoofs/bld_catkin.bat | 81 + .../ros-jazzy-iceoryx-hoofs/build_catkin.sh | 132 + recipes/ros-jazzy-iceoryx-hoofs/recipe.yaml | 83 + recipes/ros-jazzy-iceoryx-posh/bld_catkin.bat | 81 + .../ros-jazzy-iceoryx-posh/build_catkin.sh | 132 + recipes/ros-jazzy-iceoryx-posh/recipe.yaml | 85 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-image-geometry/recipe.yaml | 107 + .../ros-jazzy-image-tools/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-image-tools/recipe.yaml | 117 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 88 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-image-transport/recipe.yaml | 97 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-interactive-markers/recipe.yaml | 107 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-intra-process-demo/recipe.yaml | 112 + recipes/ros-jazzy-joy/bld_ament_cmake.bat | 52 + recipes/ros-jazzy-joy/build_ament_cmake.sh | 84 + recipes/ros-jazzy-joy/recipe.yaml | 94 + .../ros-jazzy-kdl-parser/bld_ament_cmake.bat | 52 + .../ros-jazzy-kdl-parser/build_ament_cmake.sh | 84 + recipes/ros-jazzy-kdl-parser/recipe.yaml | 95 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-keyboard-handler/recipe.yaml | 87 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-laser-geometry/recipe.yaml | 104 + .../ros-jazzy-launch-ros/bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-launch-ros/recipe.yaml | 104 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 91 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../ros-jazzy-launch-testing-ros/recipe.yaml | 93 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-launch-testing/recipe.yaml | 96 + .../ros-jazzy-launch-xml/bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-launch-xml/recipe.yaml | 90 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-launch-yaml/recipe.yaml | 90 + recipes/ros-jazzy-launch/bld_ament_python.bat | 25 + .../ros-jazzy-launch/build_ament_python.sh | 19 + recipes/ros-jazzy-launch/recipe.yaml | 95 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-libcurl-vendor/recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-liblz4-vendor/recipe.yaml | 87 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 102 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-libyaml-vendor/recipe.yaml | 95 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-lifecycle-msgs/recipe.yaml | 88 + .../ros-jazzy-lifecycle/bld_ament_cmake.bat | 52 + .../ros-jazzy-lifecycle/build_ament_cmake.sh | 84 + recipes/ros-jazzy-lifecycle/recipe.yaml | 95 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-logging-demo/recipe.yaml | 102 + .../ros-jazzy-map-msgs/bld_ament_cmake.bat | 52 + .../ros-jazzy-map-msgs/build_ament_cmake.sh | 84 + recipes/ros-jazzy-map-msgs/recipe.yaml | 93 + .../ros-jazzy-mcap-vendor/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-mcap-vendor/recipe.yaml | 88 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-message-filters/recipe.yaml | 99 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-mimick-vendor/recipe.yaml | 88 + .../ros-jazzy-nav-msgs/bld_ament_cmake.bat | 52 + .../ros-jazzy-nav-msgs/build_ament_cmake.sh | 84 + recipes/ros-jazzy-nav-msgs/recipe.yaml | 93 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-orocos-kdl-vendor/recipe.yaml | 93 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-osrf-pycommon/recipe.yaml | 85 + .../bld_catkin.bat | 81 + .../build_catkin.sh | 132 + .../recipe.yaml | 83 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-pendulum-msgs/recipe.yaml | 88 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 95 + .../ros-jazzy-pluginlib/bld_ament_cmake.bat | 52 + .../ros-jazzy-pluginlib/build_ament_cmake.sh | 84 + recipes/ros-jazzy-pluginlib/recipe.yaml | 95 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 100 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-pybind11-vendor/recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-python-cmake-module/recipe.yaml | 86 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-python-qt-binding.patch | 254 + .../ros-jazzy-python-qt-binding/recipe.yaml | 114 + .../ros-jazzy-qt-dotgraph/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-qt-dotgraph/recipe.yaml | 90 + .../ros-jazzy-qt-gui-cpp/bld_ament_cmake.bat | 52 + .../ros-jazzy-qt-gui-cpp/build_ament_cmake.sh | 84 + .../patch/ros-jazzy-qt-gui-cpp.patch | 61 + recipes/ros-jazzy-qt-gui-cpp/recipe.yaml | 122 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-qt-gui-py-common/recipe.yaml | 88 + recipes/ros-jazzy-qt-gui/bld_ament_cmake.bat | 52 + recipes/ros-jazzy-qt-gui/build_ament_cmake.sh | 84 + recipes/ros-jazzy-qt-gui/recipe.yaml | 113 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 104 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../recipe.yaml | 91 + .../ros-jazzy-rcl-action/bld_ament_cmake.bat | 52 + .../ros-jazzy-rcl-action/build_ament_cmake.sh | 84 + recipes/ros-jazzy-rcl-action/recipe.yaml | 101 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rcl-interfaces/recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rcl-lifecycle/recipe.yaml | 101 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 89 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rcl-logging-spdlog/recipe.yaml | 97 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 101 + recipes/ros-jazzy-rcl/bld_ament_cmake.bat | 52 + recipes/ros-jazzy-rcl/build_ament_cmake.sh | 84 + recipes/ros-jazzy-rcl/recipe.yaml | 124 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rclcpp-action/recipe.yaml | 104 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rclcpp-components/recipe.yaml | 99 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rclcpp-lifecycle/recipe.yaml | 107 + recipes/ros-jazzy-rclcpp/bld_ament_cmake.bat | 52 + recipes/ros-jazzy-rclcpp/build_ament_cmake.sh | 84 + recipes/ros-jazzy-rclcpp/recipe.yaml | 131 + recipes/ros-jazzy-rclpy/bld_ament_cmake.bat | 52 + recipes/ros-jazzy-rclpy/build_ament_cmake.sh | 84 + recipes/ros-jazzy-rclpy/recipe.yaml | 133 + .../ros-jazzy-rcpputils/bld_ament_cmake.bat | 52 + .../ros-jazzy-rcpputils/build_ament_cmake.sh | 84 + recipes/ros-jazzy-rcpputils/recipe.yaml | 97 + recipes/ros-jazzy-rcutils/bld_ament_cmake.bat | 52 + .../ros-jazzy-rcutils/build_ament_cmake.sh | 84 + recipes/ros-jazzy-rcutils/recipe.yaml | 96 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-resource-retriever/recipe.yaml | 96 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 114 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rmw-connextdds/recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rmw-cyclonedds-cpp/recipe.yaml | 109 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rmw-dds-common/recipe.yaml | 101 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rmw-fastrtps-cpp/recipe.yaml | 121 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 113 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 112 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 87 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rmw-implementation/recipe.yaml | 105 + recipes/ros-jazzy-rmw/bld_ament_cmake.bat | 52 + recipes/ros-jazzy-rmw/build_ament_cmake.sh | 84 + recipes/ros-jazzy-rmw/recipe.yaml | 95 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 111 + .../ros-jazzy-ros-base/bld_ament_cmake.bat | 52 + .../ros-jazzy-ros-base/build_ament_cmake.sh | 84 + recipes/ros-jazzy-ros-base/recipe.yaml | 90 + .../ros-jazzy-ros-core/bld_ament_cmake.bat | 52 + .../ros-jazzy-ros-core/build_ament_cmake.sh | 84 + recipes/ros-jazzy-ros-core/recipe.yaml | 116 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-ros-environment/recipe.yaml | 81 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-ros-gz-bridge/recipe.yaml | 128 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-ros-gz-image.patch | 14 + recipes/ros-jazzy-ros-gz-image/recipe.yaml | 101 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ros-gz-interfaces/recipe.yaml | 95 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-ros-gz-sim-demos/recipe.yaml | 99 + .../ros-jazzy-ros-gz-sim/bld_ament_cmake.bat | 52 + .../ros-jazzy-ros-gz-sim/build_ament_cmake.sh | 84 + recipes/ros-jazzy-ros-gz-sim/recipe.yaml | 124 + recipes/ros-jazzy-ros-gz/bld_ament_cmake.bat | 52 + recipes/ros-jazzy-ros-gz/build_ament_cmake.sh | 84 + recipes/ros-jazzy-ros-gz/recipe.yaml | 90 + .../ros-jazzy-ros-testing/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-ros-testing/recipe.yaml | 94 + recipes/ros-jazzy-ros-workspace/activate.bat | 15 + recipes/ros-jazzy-ros-workspace/activate.ps1 | 16 + recipes/ros-jazzy-ros-workspace/activate.sh | 26 + .../ros-jazzy-ros-workspace/bld_catkin.bat | 81 + .../ros-jazzy-ros-workspace/build_catkin.sh | 132 + .../ros-jazzy-ros-workspace/deactivate.bat | 18 + .../ros-jazzy-ros-workspace/deactivate.ps1 | 18 + recipes/ros-jazzy-ros-workspace/deactivate.sh | 21 + recipes/ros-jazzy-ros-workspace/recipe.yaml | 82 + .../ros-jazzy-ros2action/bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ros2action/recipe.yaml | 99 + .../ros-jazzy-ros2bag/bld_ament_python.bat | 25 + .../ros-jazzy-ros2bag/build_ament_python.sh | 19 + recipes/ros-jazzy-ros2bag/recipe.yaml | 97 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 103 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 87 + .../ros-jazzy-ros2cli/bld_ament_python.bat | 25 + .../ros-jazzy-ros2cli/build_ament_python.sh | 19 + recipes/ros-jazzy-ros2cli/recipe.yaml | 96 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ros2component/recipe.yaml | 99 + .../ros-jazzy-ros2doctor/bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ros2doctor/recipe.yaml | 104 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ros2interface/recipe.yaml | 99 + .../ros-jazzy-ros2launch/bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ros2launch/recipe.yaml | 102 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 90 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ros2lifecycle/recipe.yaml | 100 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ros2multicast/recipe.yaml | 91 + .../ros-jazzy-ros2node/bld_ament_python.bat | 25 + .../ros-jazzy-ros2node/build_ament_python.sh | 19 + recipes/ros-jazzy-ros2node/recipe.yaml | 98 + .../ros-jazzy-ros2param/bld_ament_python.bat | 25 + .../ros-jazzy-ros2param/build_ament_python.sh | 19 + recipes/ros-jazzy-ros2param/recipe.yaml | 99 + .../ros-jazzy-ros2pkg/bld_ament_python.bat | 25 + .../ros-jazzy-ros2pkg/build_ament_python.sh | 19 + recipes/ros-jazzy-ros2pkg/recipe.yaml | 98 + .../ros-jazzy-ros2run/bld_ament_python.bat | 25 + .../ros-jazzy-ros2run/build_ament_python.sh | 19 + recipes/ros-jazzy-ros2run/recipe.yaml | 92 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-ros2service/recipe.yaml | 99 + .../ros-jazzy-ros2test/bld_ament_python.bat | 25 + .../ros-jazzy-ros2test/build_ament_python.sh | 19 + recipes/ros-jazzy-ros2test/recipe.yaml | 99 + .../ros-jazzy-ros2topic/bld_ament_python.bat | 25 + .../ros-jazzy-ros2topic/build_ament_python.sh | 19 + recipes/ros-jazzy-ros2topic/recipe.yaml | 103 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 97 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rosbag2-compression/recipe.yaml | 98 + .../ros-jazzy-rosbag2-cpp/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rosbag2-cpp/recipe.yaml | 117 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rosbag2-interfaces/recipe.yaml | 90 + .../ros-jazzy-rosbag2-py/bld_ament_cmake.bat | 52 + .../ros-jazzy-rosbag2-py/build_ament_cmake.sh | 84 + recipes/ros-jazzy-rosbag2-py/recipe.yaml | 112 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 86 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 103 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 102 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rosbag2-storage/recipe.yaml | 99 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rosbag2-test-common/recipe.yaml | 94 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 87 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rosbag2-tests/recipe.yaml | 102 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rosbag2-transport/recipe.yaml | 116 + recipes/ros-jazzy-rosbag2/bld_ament_cmake.bat | 52 + .../ros-jazzy-rosbag2/build_ament_cmake.sh | 84 + recipes/ros-jazzy-rosbag2/recipe.yaml | 94 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rosgraph-msgs/recipe.yaml | 89 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rosidl-adapter/recipe.yaml | 91 + .../ros-jazzy-rosidl-cli/bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-rosidl-cli/recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rosidl-cmake/recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 110 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rosidl-core-runtime/recipe.yaml | 104 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 94 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 93 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 88 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rosidl-generator-c/recipe.yaml | 102 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 100 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rosidl-generator-py/recipe.yaml | 121 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 92 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rosidl-parser/recipe.yaml | 90 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-rosidl-pycommon/recipe.yaml | 89 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rosidl-runtime-c/recipe.yaml | 93 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rosidl-runtime-cpp/recipe.yaml | 91 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../ros-jazzy-rosidl-runtime-py/recipe.yaml | 95 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 105 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 109 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 114 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 114 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 87 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 101 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 106 + .../ros-jazzy-rpyutils/bld_ament_python.bat | 25 + .../ros-jazzy-rpyutils/build_ament_python.sh | 19 + recipes/ros-jazzy-rpyutils/recipe.yaml | 89 + .../ros-jazzy-rqt-action/bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-action/recipe.yaml | 90 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-bag-plugins/recipe.yaml | 96 + .../ros-jazzy-rqt-bag/bld_ament_python.bat | 25 + .../ros-jazzy-rqt-bag/build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-bag/recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rqt-common-plugins/recipe.yaml | 100 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-console/recipe.yaml | 92 + .../ros-jazzy-rqt-graph/bld_ament_python.bat | 25 + .../ros-jazzy-rqt-graph/build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-graph/recipe.yaml | 90 + .../ros-jazzy-rqt-gui-cpp/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rqt-gui-cpp/recipe.yaml | 106 + .../ros-jazzy-rqt-gui-py/bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-gui-py/recipe.yaml | 90 + .../ros-jazzy-rqt-gui/bld_ament_python.bat | 25 + .../ros-jazzy-rqt-gui/build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-gui/recipe.yaml | 92 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rqt-image-view/recipe.yaml | 116 + .../ros-jazzy-rqt-msg/bld_ament_python.bat | 25 + .../ros-jazzy-rqt-msg/build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-msg/recipe.yaml | 95 + .../ros-jazzy-rqt-plot/bld_ament_python.bat | 25 + .../ros-jazzy-rqt-plot/build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-plot/recipe.yaml | 96 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-publisher/recipe.yaml | 94 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rqt-py-common/recipe.yaml | 109 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-py-console/recipe.yaml | 92 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-reconfigure/recipe.yaml | 97 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../ros-jazzy-rqt-service-caller/recipe.yaml | 88 + .../ros-jazzy-rqt-shell/bld_ament_python.bat | 25 + .../ros-jazzy-rqt-shell/build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-shell/recipe.yaml | 91 + .../ros-jazzy-rqt-srv/bld_ament_python.bat | 25 + .../ros-jazzy-rqt-srv/build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-srv/recipe.yaml | 90 + .../ros-jazzy-rqt-topic/bld_ament_python.bat | 25 + .../ros-jazzy-rqt-topic/build_ament_python.sh | 19 + recipes/ros-jazzy-rqt-topic/recipe.yaml | 93 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 87 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-rviz-assimp-vendor/recipe.yaml | 90 + .../ros-jazzy-rviz-common/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rviz-common/recipe.yaml | 139 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 150 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-rviz-ogre-vendor.patch | 65 + .../ros-jazzy-rviz-ogre-vendor/recipe.yaml | 116 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 113 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-rviz-rendering/recipe.yaml | 122 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 127 + recipes/ros-jazzy-rviz2/bld_ament_cmake.bat | 52 + recipes/ros-jazzy-rviz2/build_ament_cmake.sh | 84 + recipes/ros-jazzy-rviz2/recipe.yaml | 116 + .../bld_catkin.bat | 81 + .../build_catkin.sh | 132 + .../ros-jazzy-sdformat-test-files/recipe.yaml | 84 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-sdformat-urdf/recipe.yaml | 103 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../patch/ros-jazzy-sdformat-vendor.patch | 13 + recipes/ros-jazzy-sdformat-vendor/recipe.yaml | 113 + .../ros-jazzy-sdl2-vendor/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-sdl2-vendor/recipe.yaml | 86 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-sensor-msgs-py/recipe.yaml | 91 + .../ros-jazzy-sensor-msgs/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-sensor-msgs/recipe.yaml | 96 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-service-msgs/recipe.yaml | 90 + .../ros-jazzy-shape-msgs/bld_ament_cmake.bat | 52 + .../ros-jazzy-shape-msgs/build_ament_cmake.sh | 84 + recipes/ros-jazzy-shape-msgs/recipe.yaml | 89 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-spdlog-vendor/recipe.yaml | 89 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-sqlite3-vendor/recipe.yaml | 88 + .../ros-jazzy-sros2-cmake/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-sros2-cmake/recipe.yaml | 91 + recipes/ros-jazzy-sros2/bld_ament_python.bat | 25 + recipes/ros-jazzy-sros2/build_ament_python.sh | 19 + recipes/ros-jazzy-sros2/recipe.yaml | 98 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-statistics-msgs/recipe.yaml | 89 + .../ros-jazzy-std-msgs/bld_ament_cmake.bat | 52 + .../ros-jazzy-std-msgs/build_ament_cmake.sh | 84 + recipes/ros-jazzy-std-msgs/recipe.yaml | 89 + .../ros-jazzy-std-srvs/bld_ament_cmake.bat | 52 + .../ros-jazzy-std-srvs/build_ament_cmake.sh | 84 + recipes/ros-jazzy-std-srvs/recipe.yaml | 87 + .../ros-jazzy-stereo-msgs/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-stereo-msgs/recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-tango-icons-vendor/recipe.yaml | 86 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-teleop-twist-joy/recipe.yaml | 98 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + .../recipe.yaml | 89 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 84 + .../ros-jazzy-test-msgs/bld_ament_cmake.bat | 52 + .../ros-jazzy-test-msgs/build_ament_cmake.sh | 84 + recipes/ros-jazzy-test-msgs/recipe.yaml | 92 + .../ros-jazzy-tf2-bullet/bld_ament_cmake.bat | 52 + .../ros-jazzy-tf2-bullet/build_ament_cmake.sh | 84 + recipes/ros-jazzy-tf2-bullet/recipe.yaml | 95 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-tf2-eigen-kdl/recipe.yaml | 93 + .../ros-jazzy-tf2-eigen/bld_ament_cmake.bat | 52 + .../ros-jazzy-tf2-eigen/build_ament_cmake.sh | 84 + recipes/ros-jazzy-tf2-eigen/recipe.yaml | 95 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-tf2-geometry-msgs/recipe.yaml | 100 + recipes/ros-jazzy-tf2-kdl/bld_ament_cmake.bat | 52 + .../ros-jazzy-tf2-kdl/build_ament_cmake.sh | 84 + recipes/ros-jazzy-tf2-kdl/recipe.yaml | 98 + .../ros-jazzy-tf2-msgs/bld_ament_cmake.bat | 52 + .../ros-jazzy-tf2-msgs/build_ament_cmake.sh | 84 + recipes/ros-jazzy-tf2-msgs/recipe.yaml | 91 + recipes/ros-jazzy-tf2-py/bld_ament_cmake.bat | 52 + recipes/ros-jazzy-tf2-py/build_ament_cmake.sh | 84 + recipes/ros-jazzy-tf2-py/recipe.yaml | 95 + .../ros-jazzy-tf2-ros-py/bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-tf2-ros-py/recipe.yaml | 93 + recipes/ros-jazzy-tf2-ros/bld_ament_cmake.bat | 52 + .../ros-jazzy-tf2-ros/build_ament_cmake.sh | 84 + recipes/ros-jazzy-tf2-ros/recipe.yaml | 106 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-tf2-sensor-msgs/recipe.yaml | 106 + .../ros-jazzy-tf2-tools/bld_ament_python.bat | 25 + .../ros-jazzy-tf2-tools/build_ament_python.sh | 19 + recipes/ros-jazzy-tf2-tools/recipe.yaml | 94 + recipes/ros-jazzy-tf2/bld_ament_cmake.bat | 52 + recipes/ros-jazzy-tf2/build_ament_cmake.sh | 84 + recipes/ros-jazzy-tf2/recipe.yaml | 101 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 123 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-tinyxml2-vendor/recipe.yaml | 86 + .../bld_ament_python.bat | 25 + .../build_ament_python.sh | 19 + recipes/ros-jazzy-topic-monitor/recipe.yaml | 92 + .../ros-jazzy-tracetools/bld_ament_cmake.bat | 52 + .../ros-jazzy-tracetools/build_ament_cmake.sh | 84 + recipes/ros-jazzy-tracetools/recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-trajectory-msgs/recipe.yaml | 93 + .../ros-jazzy-turtlesim/bld_ament_cmake.bat | 52 + .../ros-jazzy-turtlesim/build_ament_cmake.sh | 84 + recipes/ros-jazzy-turtlesim/recipe.yaml | 119 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 90 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-uncrustify-vendor/recipe.yaml | 88 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 88 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-urdf-parser-plugin/recipe.yaml | 88 + recipes/ros-jazzy-urdf/bld_ament_cmake.bat | 52 + recipes/ros-jazzy-urdf/build_ament_cmake.sh | 84 + recipes/ros-jazzy-urdf/recipe.yaml | 97 + recipes/ros-jazzy-urdfdom-headers/recipe.yaml | 20 + recipes/ros-jazzy-urdfdom-py/recipe.yaml | 20 + recipes/ros-jazzy-urdfdom/recipe.yaml | 20 + .../ros-jazzy-vision-msgs/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-vision-msgs/recipe.yaml | 93 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../ros-jazzy-visualization-msgs/recipe.yaml | 95 + recipes/ros-jazzy-xacro/bld_ament_cmake.bat | 52 + recipes/ros-jazzy-xacro/build_ament_cmake.sh | 84 + recipes/ros-jazzy-xacro/recipe.yaml | 91 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-yaml-cpp-vendor/recipe.yaml | 87 + .../bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + .../recipe.yaml | 90 + .../ros-jazzy-zstd-vendor/bld_ament_cmake.bat | 52 + .../build_ament_cmake.sh | 84 + recipes/ros-jazzy-zstd-vendor/recipe.yaml | 88 + recipes/ros2-distro-mutex/recipe.yaml | 52 + vinca.yaml | 51 + vinca_ab9d5091c9.json | 1 + 1082 files changed, 83853 insertions(+) create mode 100644 .github/workflows/win.yml create mode 100755 activate.bat create mode 100755 activate.ps1 create mode 100755 activate.sh create mode 100755 bld_ament_cmake.bat create mode 100755 bld_ament_python.bat create mode 100755 bld_catkin.bat create mode 100755 bld_catkin_merge.bat create mode 100755 bld_colcon_merge.bat create mode 100755 build_ament_cmake.sh create mode 100755 build_ament_python.sh create mode 100755 build_catkin.sh create mode 100644 buildorder.txt create mode 100755 deactivate.bat create mode 100755 deactivate.ps1 create mode 100755 deactivate.sh create mode 100755 recipes/ros-jazzy-action-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-action-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-action-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-action-tutorials-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-action-tutorials-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-action-tutorials-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-action-tutorials-interfaces/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-action-tutorials-interfaces/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-action-tutorials-interfaces/recipe.yaml create mode 100755 recipes/ros-jazzy-action-tutorials-py/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-action-tutorials-py/build_ament_python.sh create mode 100644 recipes/ros-jazzy-action-tutorials-py/recipe.yaml create mode 100755 recipes/ros-jazzy-actionlib-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-actionlib-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-actionlib-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-actuator-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-actuator-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-actuator-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-clang-format/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-clang-format/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-clang-format/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-auto/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-auto/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-auto/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-clang-format/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-clang-format/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-clang-format/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-copyright/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-copyright/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-copyright/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-core/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-core/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-core/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-cppcheck/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-cppcheck/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-cppcheck/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-cpplint/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-cpplint/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-cpplint/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-export-definitions/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-export-definitions/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-export-definitions/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-export-dependencies/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-export-dependencies/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-export-dependencies/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-export-include-directories/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-export-include-directories/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-export-include-directories/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-export-interfaces/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-export-interfaces/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-export-interfaces/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-export-libraries/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-export-libraries/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-export-libraries/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-export-link-flags/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-export-link-flags/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-export-link-flags/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-export-targets/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-export-targets/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-export-targets/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-flake8/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-flake8/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-flake8/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-gen-version-h/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-gen-version-h/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-gen-version-h/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-gmock/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-gmock/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-gmock/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-google-benchmark/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-google-benchmark/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-google-benchmark/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-gtest/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-gtest/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-gtest/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-include-directories/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-include-directories/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-include-directories/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-libraries/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-libraries/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-libraries/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-lint-cmake/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-lint-cmake/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-lint-cmake/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-pep257/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-pep257/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-pep257/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-pytest/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-pytest/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-pytest/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-python/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-python/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-python/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-ros/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-ros/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-ros/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-target-dependencies/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-target-dependencies/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-target-dependencies/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-test/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-test/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-test/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-uncrustify/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-uncrustify/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-uncrustify/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-vendor-package/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-vendor-package/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-vendor-package/patch/ros-jazzy-ament-cmake-vendor-package.patch create mode 100644 recipes/ros-jazzy-ament-cmake-vendor-package/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-version/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-version/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-version/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake-xmllint/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake-xmllint/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake-xmllint/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cmake/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-cmake/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-cmake/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-copyright/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-copyright/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-copyright/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cppcheck/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-cppcheck/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-cppcheck/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-cpplint/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-cpplint/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-cpplint/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-flake8/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-flake8/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-flake8/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-index-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-index-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-index-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-index-python/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-index-python/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-index-python/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-lint-auto/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-lint-auto/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-lint-auto/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-lint-cmake/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-lint-cmake/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-lint-cmake/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-lint-common/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ament-lint-common/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ament-lint-common/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-lint/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-lint/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-lint/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-mypy/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-mypy/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-mypy/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-package/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-package/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-package/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-pep257/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-pep257/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-pep257/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-pycodestyle/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-pycodestyle/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-pycodestyle/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-uncrustify/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-uncrustify/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-uncrustify/recipe.yaml create mode 100755 recipes/ros-jazzy-ament-xmllint/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ament-xmllint/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ament-xmllint/recipe.yaml create mode 100755 recipes/ros-jazzy-angles/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-angles/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-angles/recipe.yaml create mode 100755 recipes/ros-jazzy-builtin-interfaces/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-builtin-interfaces/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-builtin-interfaces/recipe.yaml create mode 100755 recipes/ros-jazzy-class-loader/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-class-loader/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-class-loader/recipe.yaml create mode 100755 recipes/ros-jazzy-common-interfaces/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-common-interfaces/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-common-interfaces/recipe.yaml create mode 100755 recipes/ros-jazzy-composition-interfaces/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-composition-interfaces/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-composition-interfaces/recipe.yaml create mode 100755 recipes/ros-jazzy-composition/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-composition/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-composition/recipe.yaml create mode 100755 recipes/ros-jazzy-compressed-depth-image-transport/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-compressed-depth-image-transport/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-compressed-depth-image-transport/recipe.yaml create mode 100755 recipes/ros-jazzy-compressed-image-transport/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-compressed-image-transport/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-compressed-image-transport/recipe.yaml create mode 100755 recipes/ros-jazzy-console-bridge-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-console-bridge-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-console-bridge-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-cv-bridge/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-cv-bridge/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-cv-bridge/recipe.yaml create mode 100755 recipes/ros-jazzy-cyclonedds/bld_catkin.bat create mode 100755 recipes/ros-jazzy-cyclonedds/build_catkin.sh create mode 100644 recipes/ros-jazzy-cyclonedds/recipe.yaml create mode 100755 recipes/ros-jazzy-demo-nodes-cpp-native/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-demo-nodes-cpp-native/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-demo-nodes-cpp-native/recipe.yaml create mode 100755 recipes/ros-jazzy-demo-nodes-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-demo-nodes-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-demo-nodes-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-demo-nodes-py/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-demo-nodes-py/build_ament_python.sh create mode 100644 recipes/ros-jazzy-demo-nodes-py/recipe.yaml create mode 100755 recipes/ros-jazzy-depthimage-to-laserscan/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-depthimage-to-laserscan/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-depthimage-to-laserscan/recipe.yaml create mode 100755 recipes/ros-jazzy-desktop/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-desktop/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-desktop/recipe.yaml create mode 100755 recipes/ros-jazzy-diagnostic-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-diagnostic-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-diagnostic-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-domain-coordinator/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-domain-coordinator/build_ament_python.sh create mode 100644 recipes/ros-jazzy-domain-coordinator/recipe.yaml create mode 100755 recipes/ros-jazzy-dummy-map-server/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-dummy-map-server/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-dummy-map-server/recipe.yaml create mode 100755 recipes/ros-jazzy-dummy-robot-bringup/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-dummy-robot-bringup/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-dummy-robot-bringup/recipe.yaml create mode 100755 recipes/ros-jazzy-dummy-sensors/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-dummy-sensors/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-dummy-sensors/recipe.yaml create mode 100755 recipes/ros-jazzy-eigen3-cmake-module/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-eigen3-cmake-module/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-eigen3-cmake-module/recipe.yaml create mode 100755 recipes/ros-jazzy-example-interfaces/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-example-interfaces/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-example-interfaces/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-action-client/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-action-client/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-examples-rclcpp-minimal-action-client/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-action-server/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-action-server/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-examples-rclcpp-minimal-action-server/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-client/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-client/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-examples-rclcpp-minimal-client/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-composition/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-composition/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-examples-rclcpp-minimal-composition/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-publisher/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-publisher/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-examples-rclcpp-minimal-publisher/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-service/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-service/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-examples-rclcpp-minimal-service/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-subscriber/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-subscriber/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-examples-rclcpp-minimal-subscriber/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-timer/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-examples-rclcpp-minimal-timer/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-examples-rclcpp-minimal-timer/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclcpp-multithreaded-executor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-examples-rclcpp-multithreaded-executor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-examples-rclcpp-multithreaded-executor/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclpy-executors/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-examples-rclpy-executors/build_ament_python.sh create mode 100644 recipes/ros-jazzy-examples-rclpy-executors/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclpy-minimal-action-client/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-examples-rclpy-minimal-action-client/build_ament_python.sh create mode 100644 recipes/ros-jazzy-examples-rclpy-minimal-action-client/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclpy-minimal-action-server/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-examples-rclpy-minimal-action-server/build_ament_python.sh create mode 100644 recipes/ros-jazzy-examples-rclpy-minimal-action-server/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclpy-minimal-client/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-examples-rclpy-minimal-client/build_ament_python.sh create mode 100644 recipes/ros-jazzy-examples-rclpy-minimal-client/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclpy-minimal-publisher/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-examples-rclpy-minimal-publisher/build_ament_python.sh create mode 100644 recipes/ros-jazzy-examples-rclpy-minimal-publisher/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclpy-minimal-service/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-examples-rclpy-minimal-service/build_ament_python.sh create mode 100644 recipes/ros-jazzy-examples-rclpy-minimal-service/recipe.yaml create mode 100755 recipes/ros-jazzy-examples-rclpy-minimal-subscriber/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-examples-rclpy-minimal-subscriber/build_ament_python.sh create mode 100644 recipes/ros-jazzy-examples-rclpy-minimal-subscriber/recipe.yaml create mode 100755 recipes/ros-jazzy-fastcdr/bld_catkin.bat create mode 100755 recipes/ros-jazzy-fastcdr/build_catkin.sh create mode 100644 recipes/ros-jazzy-fastcdr/recipe.yaml create mode 100755 recipes/ros-jazzy-fastrtps-cmake-module/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-fastrtps-cmake-module/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-fastrtps-cmake-module/recipe.yaml create mode 100755 recipes/ros-jazzy-fastrtps/bld_catkin.bat create mode 100755 recipes/ros-jazzy-fastrtps/build_catkin.sh create mode 100644 recipes/ros-jazzy-fastrtps/patch/ros-jazzy-fastrtps.patch create mode 100644 recipes/ros-jazzy-fastrtps/recipe.yaml create mode 100755 recipes/ros-jazzy-foonathan-memory-vendor/bld_catkin.bat create mode 100755 recipes/ros-jazzy-foonathan-memory-vendor/build_catkin.sh create mode 100644 recipes/ros-jazzy-foonathan-memory-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-geometry-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-geometry-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-geometry-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-geometry2/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-geometry2/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-geometry2/recipe.yaml create mode 100755 recipes/ros-jazzy-gmock-vendor/bld_catkin.bat create mode 100755 recipes/ros-jazzy-gmock-vendor/build_catkin.sh create mode 100644 recipes/ros-jazzy-gmock-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-google-benchmark-vendor/bld_catkin.bat create mode 100755 recipes/ros-jazzy-google-benchmark-vendor/build_catkin.sh create mode 100644 recipes/ros-jazzy-google-benchmark-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gps-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gps-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gps-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-gtest-vendor/bld_catkin.bat create mode 100755 recipes/ros-jazzy-gtest-vendor/build_catkin.sh create mode 100644 recipes/ros-jazzy-gtest-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-cmake-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-cmake-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-cmake-vendor/patch/ros-jazzy-gz-cmake-vendor.patch create mode 100644 recipes/ros-jazzy-gz-cmake-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-common-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-common-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-common-vendor/patch/ros-jazzy-gz-common-vendor.patch create mode 100644 recipes/ros-jazzy-gz-common-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-dartsim-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-dartsim-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-dartsim-vendor/patch/ros-jazzy-gz-dartsim-vendor.patch create mode 100644 recipes/ros-jazzy-gz-dartsim-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-fuel-tools-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-fuel-tools-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-fuel-tools-vendor/patch/ros-jazzy-gz-fuel-tools-vendor.patch create mode 100644 recipes/ros-jazzy-gz-fuel-tools-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-gui-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-gui-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-gui-vendor/patch/ros-jazzy-gz-gui-vendor.patch create mode 100644 recipes/ros-jazzy-gz-gui-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-math-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-math-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-math-vendor/patch/ros-jazzy-gz-math-vendor.patch create mode 100644 recipes/ros-jazzy-gz-math-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-msgs-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-msgs-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-msgs-vendor/patch/ros-jazzy-gz-msgs-vendor.patch create mode 100644 recipes/ros-jazzy-gz-msgs-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-ogre-next-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-ogre-next-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-ogre-next-vendor/patch/ros-jazzy-gz-ogre-next-vendor.patch create mode 100644 recipes/ros-jazzy-gz-ogre-next-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-physics-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-physics-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-physics-vendor/patch/ros-jazzy-gz-physics-vendor.patch create mode 100644 recipes/ros-jazzy-gz-physics-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-plugin-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-plugin-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-plugin-vendor/patch/ros-jazzy-gz-plugin-vendor.patch create mode 100644 recipes/ros-jazzy-gz-plugin-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-rendering-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-rendering-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-rendering-vendor/patch/ros-jazzy-gz-rendering-vendor.patch create mode 100644 recipes/ros-jazzy-gz-rendering-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-sensors-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-sensors-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-sensors-vendor/patch/ros-jazzy-gz-sensors-vendor.patch create mode 100644 recipes/ros-jazzy-gz-sensors-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-sim-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-sim-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-sim-vendor/patch/ros-jazzy-gz-sim-vendor.patch create mode 100644 recipes/ros-jazzy-gz-sim-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-tools-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-tools-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-tools-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-transport-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-transport-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-transport-vendor/patch/ros-jazzy-gz-transport-vendor.patch create mode 100644 recipes/ros-jazzy-gz-transport-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-gz-utils-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-gz-utils-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-gz-utils-vendor/patch/ros-jazzy-gz-utils-vendor.patch create mode 100644 recipes/ros-jazzy-gz-utils-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-iceoryx-binding-c/bld_catkin.bat create mode 100755 recipes/ros-jazzy-iceoryx-binding-c/build_catkin.sh create mode 100644 recipes/ros-jazzy-iceoryx-binding-c/recipe.yaml create mode 100755 recipes/ros-jazzy-iceoryx-hoofs/bld_catkin.bat create mode 100755 recipes/ros-jazzy-iceoryx-hoofs/build_catkin.sh create mode 100644 recipes/ros-jazzy-iceoryx-hoofs/recipe.yaml create mode 100755 recipes/ros-jazzy-iceoryx-posh/bld_catkin.bat create mode 100755 recipes/ros-jazzy-iceoryx-posh/build_catkin.sh create mode 100644 recipes/ros-jazzy-iceoryx-posh/recipe.yaml create mode 100755 recipes/ros-jazzy-image-geometry/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-image-geometry/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-image-geometry/recipe.yaml create mode 100755 recipes/ros-jazzy-image-tools/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-image-tools/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-image-tools/recipe.yaml create mode 100755 recipes/ros-jazzy-image-transport-plugins/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-image-transport-plugins/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-image-transport-plugins/recipe.yaml create mode 100755 recipes/ros-jazzy-image-transport/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-image-transport/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-image-transport/recipe.yaml create mode 100755 recipes/ros-jazzy-interactive-markers/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-interactive-markers/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-interactive-markers/recipe.yaml create mode 100755 recipes/ros-jazzy-intra-process-demo/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-intra-process-demo/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-intra-process-demo/recipe.yaml create mode 100755 recipes/ros-jazzy-joy/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-joy/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-joy/recipe.yaml create mode 100755 recipes/ros-jazzy-kdl-parser/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-kdl-parser/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-kdl-parser/recipe.yaml create mode 100755 recipes/ros-jazzy-keyboard-handler/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-keyboard-handler/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-keyboard-handler/recipe.yaml create mode 100755 recipes/ros-jazzy-laser-geometry/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-laser-geometry/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-laser-geometry/recipe.yaml create mode 100755 recipes/ros-jazzy-launch-ros/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-launch-ros/build_ament_python.sh create mode 100644 recipes/ros-jazzy-launch-ros/recipe.yaml create mode 100755 recipes/ros-jazzy-launch-testing-ament-cmake/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-launch-testing-ament-cmake/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-launch-testing-ament-cmake/recipe.yaml create mode 100755 recipes/ros-jazzy-launch-testing-ros/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-launch-testing-ros/build_ament_python.sh create mode 100644 recipes/ros-jazzy-launch-testing-ros/recipe.yaml create mode 100755 recipes/ros-jazzy-launch-testing/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-launch-testing/build_ament_python.sh create mode 100644 recipes/ros-jazzy-launch-testing/recipe.yaml create mode 100755 recipes/ros-jazzy-launch-xml/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-launch-xml/build_ament_python.sh create mode 100644 recipes/ros-jazzy-launch-xml/recipe.yaml create mode 100755 recipes/ros-jazzy-launch-yaml/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-launch-yaml/build_ament_python.sh create mode 100644 recipes/ros-jazzy-launch-yaml/recipe.yaml create mode 100755 recipes/ros-jazzy-launch/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-launch/build_ament_python.sh create mode 100644 recipes/ros-jazzy-launch/recipe.yaml create mode 100755 recipes/ros-jazzy-libcurl-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-libcurl-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-libcurl-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-liblz4-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-liblz4-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-liblz4-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-libstatistics-collector/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-libstatistics-collector/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-libstatistics-collector/recipe.yaml create mode 100755 recipes/ros-jazzy-libyaml-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-libyaml-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-libyaml-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-lifecycle-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-lifecycle-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-lifecycle-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-lifecycle/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-lifecycle/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-lifecycle/recipe.yaml create mode 100755 recipes/ros-jazzy-logging-demo/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-logging-demo/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-logging-demo/recipe.yaml create mode 100755 recipes/ros-jazzy-map-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-map-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-map-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-mcap-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-mcap-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-mcap-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-message-filters/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-message-filters/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-message-filters/recipe.yaml create mode 100755 recipes/ros-jazzy-mimick-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-mimick-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-mimick-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-nav-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-nav-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-nav-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-orocos-kdl-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-orocos-kdl-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-orocos-kdl-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-osrf-pycommon/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-osrf-pycommon/build_ament_python.sh create mode 100644 recipes/ros-jazzy-osrf-pycommon/recipe.yaml create mode 100755 recipes/ros-jazzy-osrf-testing-tools-cpp/bld_catkin.bat create mode 100755 recipes/ros-jazzy-osrf-testing-tools-cpp/build_catkin.sh create mode 100644 recipes/ros-jazzy-osrf-testing-tools-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-pendulum-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-pendulum-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-pendulum-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-performance-test-fixture/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-performance-test-fixture/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-performance-test-fixture/recipe.yaml create mode 100755 recipes/ros-jazzy-pluginlib/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-pluginlib/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-pluginlib/recipe.yaml create mode 100755 recipes/ros-jazzy-point-cloud-transport/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-point-cloud-transport/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-point-cloud-transport/recipe.yaml create mode 100755 recipes/ros-jazzy-pybind11-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-pybind11-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-pybind11-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-python-cmake-module/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-python-cmake-module/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-python-cmake-module/recipe.yaml create mode 100755 recipes/ros-jazzy-python-qt-binding/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-python-qt-binding/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-python-qt-binding/patch/ros-jazzy-python-qt-binding.patch create mode 100644 recipes/ros-jazzy-python-qt-binding/recipe.yaml create mode 100755 recipes/ros-jazzy-qt-dotgraph/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-qt-dotgraph/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-qt-dotgraph/recipe.yaml create mode 100755 recipes/ros-jazzy-qt-gui-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-qt-gui-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-qt-gui-cpp/patch/ros-jazzy-qt-gui-cpp.patch create mode 100644 recipes/ros-jazzy-qt-gui-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-qt-gui-py-common/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-qt-gui-py-common/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-qt-gui-py-common/recipe.yaml create mode 100755 recipes/ros-jazzy-qt-gui/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-qt-gui/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-qt-gui/recipe.yaml create mode 100755 recipes/ros-jazzy-quality-of-service-demo-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-quality-of-service-demo-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-quality-of-service-demo-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-quality-of-service-demo-py/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-quality-of-service-demo-py/build_ament_python.sh create mode 100644 recipes/ros-jazzy-quality-of-service-demo-py/recipe.yaml create mode 100755 recipes/ros-jazzy-rcl-action/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rcl-action/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rcl-action/recipe.yaml create mode 100755 recipes/ros-jazzy-rcl-interfaces/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rcl-interfaces/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rcl-interfaces/recipe.yaml create mode 100755 recipes/ros-jazzy-rcl-lifecycle/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rcl-lifecycle/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rcl-lifecycle/recipe.yaml create mode 100755 recipes/ros-jazzy-rcl-logging-interface/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rcl-logging-interface/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rcl-logging-interface/recipe.yaml create mode 100755 recipes/ros-jazzy-rcl-logging-spdlog/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rcl-logging-spdlog/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rcl-logging-spdlog/recipe.yaml create mode 100755 recipes/ros-jazzy-rcl-yaml-param-parser/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rcl-yaml-param-parser/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rcl-yaml-param-parser/recipe.yaml create mode 100755 recipes/ros-jazzy-rcl/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rcl/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rcl/recipe.yaml create mode 100755 recipes/ros-jazzy-rclcpp-action/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rclcpp-action/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rclcpp-action/recipe.yaml create mode 100755 recipes/ros-jazzy-rclcpp-components/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rclcpp-components/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rclcpp-components/recipe.yaml create mode 100755 recipes/ros-jazzy-rclcpp-lifecycle/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rclcpp-lifecycle/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rclcpp-lifecycle/recipe.yaml create mode 100755 recipes/ros-jazzy-rclcpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rclcpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rclcpp/recipe.yaml create mode 100755 recipes/ros-jazzy-rclpy/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rclpy/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rclpy/recipe.yaml create mode 100755 recipes/ros-jazzy-rcpputils/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rcpputils/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rcpputils/recipe.yaml create mode 100755 recipes/ros-jazzy-rcutils/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rcutils/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rcutils/recipe.yaml create mode 100755 recipes/ros-jazzy-resource-retriever/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-resource-retriever/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-resource-retriever/recipe.yaml create mode 100755 recipes/ros-jazzy-rmw-connextdds-common/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rmw-connextdds-common/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rmw-connextdds-common/recipe.yaml create mode 100755 recipes/ros-jazzy-rmw-connextdds/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rmw-connextdds/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rmw-connextdds/recipe.yaml create mode 100755 recipes/ros-jazzy-rmw-cyclonedds-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rmw-cyclonedds-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rmw-cyclonedds-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-rmw-dds-common/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rmw-dds-common/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rmw-dds-common/recipe.yaml create mode 100755 recipes/ros-jazzy-rmw-fastrtps-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rmw-fastrtps-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rmw-fastrtps-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-rmw-fastrtps-dynamic-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rmw-fastrtps-dynamic-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rmw-fastrtps-dynamic-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-rmw-fastrtps-shared-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rmw-fastrtps-shared-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rmw-fastrtps-shared-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-rmw-implementation-cmake/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rmw-implementation-cmake/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rmw-implementation-cmake/recipe.yaml create mode 100755 recipes/ros-jazzy-rmw-implementation/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rmw-implementation/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rmw-implementation/recipe.yaml create mode 100755 recipes/ros-jazzy-rmw/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rmw/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rmw/recipe.yaml create mode 100755 recipes/ros-jazzy-robot-state-publisher/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-robot-state-publisher/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-robot-state-publisher/recipe.yaml create mode 100755 recipes/ros-jazzy-ros-base/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ros-base/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ros-base/recipe.yaml create mode 100755 recipes/ros-jazzy-ros-core/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ros-core/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ros-core/recipe.yaml create mode 100755 recipes/ros-jazzy-ros-environment/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ros-environment/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ros-environment/recipe.yaml create mode 100755 recipes/ros-jazzy-ros-gz-bridge/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ros-gz-bridge/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ros-gz-bridge/recipe.yaml create mode 100755 recipes/ros-jazzy-ros-gz-image/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ros-gz-image/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ros-gz-image/patch/ros-jazzy-ros-gz-image.patch create mode 100644 recipes/ros-jazzy-ros-gz-image/recipe.yaml create mode 100755 recipes/ros-jazzy-ros-gz-interfaces/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ros-gz-interfaces/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ros-gz-interfaces/recipe.yaml create mode 100755 recipes/ros-jazzy-ros-gz-sim-demos/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ros-gz-sim-demos/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ros-gz-sim-demos/recipe.yaml create mode 100755 recipes/ros-jazzy-ros-gz-sim/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ros-gz-sim/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ros-gz-sim/recipe.yaml create mode 100755 recipes/ros-jazzy-ros-gz/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ros-gz/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ros-gz/recipe.yaml create mode 100755 recipes/ros-jazzy-ros-testing/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ros-testing/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ros-testing/recipe.yaml create mode 100644 recipes/ros-jazzy-ros-workspace/activate.bat create mode 100644 recipes/ros-jazzy-ros-workspace/activate.ps1 create mode 100644 recipes/ros-jazzy-ros-workspace/activate.sh create mode 100755 recipes/ros-jazzy-ros-workspace/bld_catkin.bat create mode 100755 recipes/ros-jazzy-ros-workspace/build_catkin.sh create mode 100644 recipes/ros-jazzy-ros-workspace/deactivate.bat create mode 100644 recipes/ros-jazzy-ros-workspace/deactivate.ps1 create mode 100644 recipes/ros-jazzy-ros-workspace/deactivate.sh create mode 100644 recipes/ros-jazzy-ros-workspace/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2action/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2action/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2action/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2bag/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2bag/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2bag/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2cli-common-extensions/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ros2cli-common-extensions/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ros2cli-common-extensions/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2cli-test-interfaces/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ros2cli-test-interfaces/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ros2cli-test-interfaces/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2cli/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2cli/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2cli/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2component/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2component/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2component/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2doctor/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2doctor/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2doctor/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2interface/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2interface/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2interface/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2launch/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2launch/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2launch/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2lifecycle-test-fixtures/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-ros2lifecycle-test-fixtures/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-ros2lifecycle-test-fixtures/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2lifecycle/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2lifecycle/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2lifecycle/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2multicast/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2multicast/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2multicast/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2node/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2node/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2node/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2param/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2param/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2param/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2pkg/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2pkg/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2pkg/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2run/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2run/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2run/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2service/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2service/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2service/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2test/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2test/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2test/recipe.yaml create mode 100755 recipes/ros-jazzy-ros2topic/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-ros2topic/build_ament_python.sh create mode 100644 recipes/ros-jazzy-ros2topic/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2-compression-zstd/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2-compression-zstd/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2-compression-zstd/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2-compression/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2-compression/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2-compression/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2-interfaces/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2-interfaces/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2-interfaces/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2-py/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2-py/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2-py/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2-storage-default-plugins/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2-storage-default-plugins/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2-storage-default-plugins/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2-storage-mcap/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2-storage-mcap/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2-storage-mcap/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2-storage-sqlite3/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2-storage-sqlite3/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2-storage-sqlite3/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2-storage/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2-storage/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2-storage/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2-test-common/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2-test-common/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2-test-common/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2-test-msgdefs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2-test-msgdefs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2-test-msgdefs/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2-tests/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2-tests/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2-tests/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2-transport/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2-transport/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2-transport/recipe.yaml create mode 100755 recipes/ros-jazzy-rosbag2/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosbag2/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosbag2/recipe.yaml create mode 100755 recipes/ros-jazzy-rosgraph-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosgraph-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosgraph-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-adapter/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-adapter/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-adapter/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-cli/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rosidl-cli/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rosidl-cli/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-cmake/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-cmake/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-cmake/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-core-generators/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-core-generators/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-core-generators/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-core-runtime/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-core-runtime/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-core-runtime/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-default-generators/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-default-generators/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-default-generators/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-default-runtime/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-default-runtime/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-default-runtime/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-dynamic-typesupport-fastrtps/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-dynamic-typesupport-fastrtps/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-dynamic-typesupport-fastrtps/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-dynamic-typesupport/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-dynamic-typesupport/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-dynamic-typesupport/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-generator-c/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-generator-c/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-generator-c/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-generator-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-generator-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-generator-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-generator-py/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-generator-py/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-generator-py/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-generator-type-description/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-generator-type-description/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-generator-type-description/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-parser/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-parser/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-parser/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-pycommon/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rosidl-pycommon/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rosidl-pycommon/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-runtime-c/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-runtime-c/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-runtime-c/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-runtime-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-runtime-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-runtime-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-runtime-py/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rosidl-runtime-py/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rosidl-runtime-py/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-typesupport-c/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-typesupport-c/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-typesupport-c/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-typesupport-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-typesupport-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-typesupport-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-typesupport-fastrtps-c/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-typesupport-fastrtps-c/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-typesupport-fastrtps-c/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-typesupport-fastrtps-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-typesupport-fastrtps-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-typesupport-fastrtps-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-typesupport-interface/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-typesupport-interface/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-typesupport-interface/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-typesupport-introspection-c/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-typesupport-introspection-c/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-typesupport-introspection-c/recipe.yaml create mode 100755 recipes/ros-jazzy-rosidl-typesupport-introspection-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rosidl-typesupport-introspection-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rosidl-typesupport-introspection-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-rpyutils/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rpyutils/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rpyutils/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-action/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-action/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-action/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-bag-plugins/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-bag-plugins/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-bag-plugins/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-bag/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-bag/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-bag/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-common-plugins/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rqt-common-plugins/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rqt-common-plugins/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-console/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-console/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-console/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-graph/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-graph/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-graph/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-gui-cpp/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rqt-gui-cpp/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rqt-gui-cpp/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-gui-py/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-gui-py/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-gui-py/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-gui/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-gui/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-gui/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-image-view/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rqt-image-view/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rqt-image-view/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-msg/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-msg/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-msg/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-plot/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-plot/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-plot/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-publisher/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-publisher/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-publisher/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-py-common/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rqt-py-common/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rqt-py-common/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-py-console/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-py-console/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-py-console/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-reconfigure/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-reconfigure/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-reconfigure/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-service-caller/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-service-caller/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-service-caller/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-shell/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-shell/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-shell/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-srv/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-srv/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-srv/recipe.yaml create mode 100755 recipes/ros-jazzy-rqt-topic/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-rqt-topic/build_ament_python.sh create mode 100644 recipes/ros-jazzy-rqt-topic/recipe.yaml create mode 100755 recipes/ros-jazzy-rti-connext-dds-cmake-module/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rti-connext-dds-cmake-module/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rti-connext-dds-cmake-module/recipe.yaml create mode 100755 recipes/ros-jazzy-rviz-assimp-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rviz-assimp-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rviz-assimp-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-rviz-common/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rviz-common/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rviz-common/recipe.yaml create mode 100755 recipes/ros-jazzy-rviz-default-plugins/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rviz-default-plugins/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rviz-default-plugins/recipe.yaml create mode 100755 recipes/ros-jazzy-rviz-ogre-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rviz-ogre-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rviz-ogre-vendor/patch/ros-jazzy-rviz-ogre-vendor.patch create mode 100644 recipes/ros-jazzy-rviz-ogre-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-rviz-rendering-tests/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rviz-rendering-tests/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rviz-rendering-tests/recipe.yaml create mode 100755 recipes/ros-jazzy-rviz-rendering/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rviz-rendering/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rviz-rendering/recipe.yaml create mode 100755 recipes/ros-jazzy-rviz-visual-testing-framework/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rviz-visual-testing-framework/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rviz-visual-testing-framework/recipe.yaml create mode 100755 recipes/ros-jazzy-rviz2/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-rviz2/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-rviz2/recipe.yaml create mode 100755 recipes/ros-jazzy-sdformat-test-files/bld_catkin.bat create mode 100755 recipes/ros-jazzy-sdformat-test-files/build_catkin.sh create mode 100644 recipes/ros-jazzy-sdformat-test-files/recipe.yaml create mode 100755 recipes/ros-jazzy-sdformat-urdf/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-sdformat-urdf/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-sdformat-urdf/recipe.yaml create mode 100755 recipes/ros-jazzy-sdformat-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-sdformat-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-sdformat-vendor/patch/ros-jazzy-sdformat-vendor.patch create mode 100644 recipes/ros-jazzy-sdformat-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-sdl2-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-sdl2-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-sdl2-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-sensor-msgs-py/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-sensor-msgs-py/build_ament_python.sh create mode 100644 recipes/ros-jazzy-sensor-msgs-py/recipe.yaml create mode 100755 recipes/ros-jazzy-sensor-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-sensor-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-sensor-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-service-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-service-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-service-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-shape-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-shape-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-shape-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-spdlog-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-spdlog-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-spdlog-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-sqlite3-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-sqlite3-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-sqlite3-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-sros2-cmake/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-sros2-cmake/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-sros2-cmake/recipe.yaml create mode 100755 recipes/ros-jazzy-sros2/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-sros2/build_ament_python.sh create mode 100644 recipes/ros-jazzy-sros2/recipe.yaml create mode 100755 recipes/ros-jazzy-statistics-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-statistics-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-statistics-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-std-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-std-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-std-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-std-srvs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-std-srvs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-std-srvs/recipe.yaml create mode 100755 recipes/ros-jazzy-stereo-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-stereo-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-stereo-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-tango-icons-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-tango-icons-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-tango-icons-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-teleop-twist-joy/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-teleop-twist-joy/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-teleop-twist-joy/recipe.yaml create mode 100755 recipes/ros-jazzy-teleop-twist-keyboard/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-teleop-twist-keyboard/build_ament_python.sh create mode 100644 recipes/ros-jazzy-teleop-twist-keyboard/recipe.yaml create mode 100755 recipes/ros-jazzy-test-interface-files/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-test-interface-files/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-test-interface-files/recipe.yaml create mode 100755 recipes/ros-jazzy-test-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-test-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-test-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-tf2-bullet/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-tf2-bullet/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-tf2-bullet/recipe.yaml create mode 100755 recipes/ros-jazzy-tf2-eigen-kdl/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-tf2-eigen-kdl/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-tf2-eigen-kdl/recipe.yaml create mode 100755 recipes/ros-jazzy-tf2-eigen/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-tf2-eigen/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-tf2-eigen/recipe.yaml create mode 100755 recipes/ros-jazzy-tf2-geometry-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-tf2-geometry-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-tf2-geometry-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-tf2-kdl/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-tf2-kdl/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-tf2-kdl/recipe.yaml create mode 100755 recipes/ros-jazzy-tf2-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-tf2-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-tf2-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-tf2-py/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-tf2-py/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-tf2-py/recipe.yaml create mode 100755 recipes/ros-jazzy-tf2-ros-py/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-tf2-ros-py/build_ament_python.sh create mode 100644 recipes/ros-jazzy-tf2-ros-py/recipe.yaml create mode 100755 recipes/ros-jazzy-tf2-ros/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-tf2-ros/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-tf2-ros/recipe.yaml create mode 100755 recipes/ros-jazzy-tf2-sensor-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-tf2-sensor-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-tf2-sensor-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-tf2-tools/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-tf2-tools/build_ament_python.sh create mode 100644 recipes/ros-jazzy-tf2-tools/recipe.yaml create mode 100755 recipes/ros-jazzy-tf2/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-tf2/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-tf2/recipe.yaml create mode 100755 recipes/ros-jazzy-theora-image-transport/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-theora-image-transport/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-theora-image-transport/recipe.yaml create mode 100755 recipes/ros-jazzy-tinyxml2-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-tinyxml2-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-tinyxml2-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-topic-monitor/bld_ament_python.bat create mode 100755 recipes/ros-jazzy-topic-monitor/build_ament_python.sh create mode 100644 recipes/ros-jazzy-topic-monitor/recipe.yaml create mode 100755 recipes/ros-jazzy-tracetools/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-tracetools/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-tracetools/recipe.yaml create mode 100755 recipes/ros-jazzy-trajectory-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-trajectory-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-trajectory-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-turtlesim/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-turtlesim/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-turtlesim/recipe.yaml create mode 100755 recipes/ros-jazzy-type-description-interfaces/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-type-description-interfaces/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-type-description-interfaces/recipe.yaml create mode 100755 recipes/ros-jazzy-uncrustify-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-uncrustify-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-uncrustify-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-unique-identifier-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-unique-identifier-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-unique-identifier-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-urdf-parser-plugin/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-urdf-parser-plugin/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-urdf-parser-plugin/recipe.yaml create mode 100755 recipes/ros-jazzy-urdf/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-urdf/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-urdf/recipe.yaml create mode 100644 recipes/ros-jazzy-urdfdom-headers/recipe.yaml create mode 100644 recipes/ros-jazzy-urdfdom-py/recipe.yaml create mode 100644 recipes/ros-jazzy-urdfdom/recipe.yaml create mode 100755 recipes/ros-jazzy-vision-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-vision-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-vision-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-visualization-msgs/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-visualization-msgs/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-visualization-msgs/recipe.yaml create mode 100755 recipes/ros-jazzy-xacro/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-xacro/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-xacro/recipe.yaml create mode 100755 recipes/ros-jazzy-yaml-cpp-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-yaml-cpp-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-yaml-cpp-vendor/recipe.yaml create mode 100755 recipes/ros-jazzy-zstd-image-transport/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-zstd-image-transport/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-zstd-image-transport/recipe.yaml create mode 100755 recipes/ros-jazzy-zstd-vendor/bld_ament_cmake.bat create mode 100755 recipes/ros-jazzy-zstd-vendor/build_ament_cmake.sh create mode 100644 recipes/ros-jazzy-zstd-vendor/recipe.yaml create mode 100644 recipes/ros2-distro-mutex/recipe.yaml create mode 100644 vinca.yaml create mode 100644 vinca_ab9d5091c9.json diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml new file mode 100644 index 00000000..689d86c3 --- /dev/null +++ b/.github/workflows/win.yml @@ -0,0 +1,7521 @@ +jobs: + stage_0_job_0: + name: mutex urdfdom-headers urdfdom urdfdom-py + runs-on: windows-2019 + strategy: + fail-fast: false + needs: [] + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros2-distro-mutex ros-jazzy-urdfdom-headers ros-jazzy-urdfdom + ros-jazzy-urdfdom-py + PYTHONUNBUFFERED: 1 + name: Build ros2-distro-mutex ros-jazzy-urdfdom-headers ros-jazzy-urdfdom ros-jazzy-urdfdom-py + stage_1_job_1: + name: ament-package ament-cmake-core ros-workspace ros-environment + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_0_job_0 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-package ros-jazzy-ament-cmake-core ros-jazzy-ros-workspace + ros-jazzy-ros-environment + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-package ros-jazzy-ament-cmake-core ros-jazzy-ros-workspace + ros-jazzy-ros-environment + stage_2_job_2: + name: ament-lint ament-cmake-python gtest-vendor ament-cmake-libraries ament-cmake-include-directories + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_1_job_1 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-lint ros-jazzy-ament-cmake-python ros-jazzy-gtest-vendor + ros-jazzy-ament-cmake-libraries ros-jazzy-ament-cmake-include-directories + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-lint ros-jazzy-ament-cmake-python ros-jazzy-gtest-vendor + ros-jazzy-ament-cmake-libraries ros-jazzy-ament-cmake-include-directories + stage_2_job_3: + name: ament-cmake-export-libraries ament-cmake-version ament-cmake-export-link-flags + ament-cmake-export-include-directories ament-cmake-export-definitions + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_1_job_1 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-cmake-export-libraries ros-jazzy-ament-cmake-version + ros-jazzy-ament-cmake-export-link-flags ros-jazzy-ament-cmake-export-include-directories + ros-jazzy-ament-cmake-export-definitions + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-cmake-export-libraries ros-jazzy-ament-cmake-version + ros-jazzy-ament-cmake-export-link-flags ros-jazzy-ament-cmake-export-include-directories + ros-jazzy-ament-cmake-export-definitions + stage_2_job_4: + name: ament-pycodestyle osrf-pycommon google-benchmark-vendor osrf-testing-tools-cpp + test-interface-files + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_1_job_1 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-pycodestyle ros-jazzy-osrf-pycommon ros-jazzy-google-benchmark-vendor + ros-jazzy-osrf-testing-tools-cpp ros-jazzy-test-interface-files + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-pycodestyle ros-jazzy-osrf-pycommon ros-jazzy-google-benchmark-vendor + ros-jazzy-osrf-testing-tools-cpp ros-jazzy-test-interface-files + stage_2_job_5: + name: iceoryx-hoofs sdformat-test-files + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_1_job_1 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-iceoryx-hoofs ros-jazzy-sdformat-test-files + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-iceoryx-hoofs ros-jazzy-sdformat-test-files + stage_3_job_6: + name: ament-flake8 ament-cmake-test ament-cmake-export-dependencies ament-cmake-target-dependencies + ament-cmake-export-targets + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_2_job_2 + - stage_2_job_3 + - stage_2_job_4 + - stage_2_job_5 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-flake8 ros-jazzy-ament-cmake-test ros-jazzy-ament-cmake-export-dependencies + ros-jazzy-ament-cmake-target-dependencies ros-jazzy-ament-cmake-export-targets + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-flake8 ros-jazzy-ament-cmake-test ros-jazzy-ament-cmake-export-dependencies + ros-jazzy-ament-cmake-target-dependencies ros-jazzy-ament-cmake-export-targets + stage_3_job_7: + name: ament-cmake-export-interfaces gmock-vendor iceoryx-posh + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_2_job_2 + - stage_2_job_3 + - stage_2_job_4 + - stage_2_job_5 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-cmake-export-interfaces ros-jazzy-gmock-vendor + ros-jazzy-iceoryx-posh + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-cmake-export-interfaces ros-jazzy-gmock-vendor ros-jazzy-iceoryx-posh + stage_4_job_8: + name: ament-pep257 ament-cmake-gtest ament-cmake-vendor-package ament-mypy ament-lint-auto + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_3_job_6 + - stage_3_job_7 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-pep257 ros-jazzy-ament-cmake-gtest ros-jazzy-ament-cmake-vendor-package + ros-jazzy-ament-mypy ros-jazzy-ament-lint-auto + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-pep257 ros-jazzy-ament-cmake-gtest ros-jazzy-ament-cmake-vendor-package + ros-jazzy-ament-mypy ros-jazzy-ament-lint-auto + stage_4_job_9: + name: ament-cmake-pytest ament-cmake-google-benchmark iceoryx-binding-c + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_3_job_6 + - stage_3_job_7 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-cmake-pytest ros-jazzy-ament-cmake-google-benchmark + ros-jazzy-iceoryx-binding-c + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-cmake-pytest ros-jazzy-ament-cmake-google-benchmark + ros-jazzy-iceoryx-binding-c + stage_5_job_10: + name: ament-copyright ament-cmake-gen-version-h ament-cmake-gmock cyclonedds + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_4_job_8 + - stage_4_job_9 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-copyright ros-jazzy-ament-cmake-gen-version-h + ros-jazzy-ament-cmake-gmock ros-jazzy-cyclonedds + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-copyright ros-jazzy-ament-cmake-gen-version-h ros-jazzy-ament-cmake-gmock + ros-jazzy-cyclonedds + stage_6_job_11: + name: ament-lint-cmake ament-cmake ament-xmllint ament-cpplint ament-cppcheck + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_5_job_10 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-lint-cmake ros-jazzy-ament-cmake ros-jazzy-ament-xmllint + ros-jazzy-ament-cpplint ros-jazzy-ament-cppcheck + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-lint-cmake ros-jazzy-ament-cmake ros-jazzy-ament-xmllint + ros-jazzy-ament-cpplint ros-jazzy-ament-cppcheck + stage_6_job_12: + name: ament-index-python domain-coordinator ament-clang-format + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_5_job_10 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-index-python ros-jazzy-domain-coordinator + ros-jazzy-ament-clang-format + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-index-python ros-jazzy-domain-coordinator ros-jazzy-ament-clang-format + stage_7_job_13: + name: ament-cmake-lint-cmake uncrustify-vendor launch rosidl-cli fastcdr + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_6_job_11 + - stage_6_job_12 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-cmake-lint-cmake ros-jazzy-uncrustify-vendor + ros-jazzy-launch ros-jazzy-rosidl-cli ros-jazzy-fastcdr + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-cmake-lint-cmake ros-jazzy-uncrustify-vendor ros-jazzy-launch + ros-jazzy-rosidl-cli ros-jazzy-fastcdr + stage_7_job_14: + name: rpyutils pybind11-vendor tinyxml2-vendor yaml-cpp-vendor zstd-vendor + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_6_job_11 + - stage_6_job_12 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rpyutils ros-jazzy-pybind11-vendor ros-jazzy-tinyxml2-vendor + ros-jazzy-yaml-cpp-vendor ros-jazzy-zstd-vendor + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rpyutils ros-jazzy-pybind11-vendor ros-jazzy-tinyxml2-vendor + ros-jazzy-yaml-cpp-vendor ros-jazzy-zstd-vendor + stage_7_job_15: + name: liblz4-vendor sqlite3-vendor libcurl-vendor xacro angles + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_6_job_11 + - stage_6_job_12 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-liblz4-vendor ros-jazzy-sqlite3-vendor ros-jazzy-libcurl-vendor + ros-jazzy-xacro ros-jazzy-angles + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-liblz4-vendor ros-jazzy-sqlite3-vendor ros-jazzy-libcurl-vendor + ros-jazzy-xacro ros-jazzy-angles + stage_7_job_16: + name: ament-cmake-auto sdl2-vendor + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_6_job_11 + - stage_6_job_12 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-cmake-auto ros-jazzy-sdl2-vendor + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-cmake-auto ros-jazzy-sdl2-vendor + stage_8_job_17: + name: ament-cmake-copyright ament-uncrustify launch-yaml launch-xml mcap-vendor + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_7_job_13 + - stage_7_job_14 + - stage_7_job_15 + - stage_7_job_16 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-cmake-copyright ros-jazzy-ament-uncrustify + ros-jazzy-launch-yaml ros-jazzy-launch-xml ros-jazzy-mcap-vendor + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-cmake-copyright ros-jazzy-ament-uncrustify ros-jazzy-launch-yaml + ros-jazzy-launch-xml ros-jazzy-mcap-vendor + stage_9_job_18: + name: ament-cmake-xmllint ament-cmake-uncrustify ament-cmake-pep257 ament-cmake-flake8 + ament-cmake-cpplint + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_8_job_17 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-cmake-xmllint ros-jazzy-ament-cmake-uncrustify + ros-jazzy-ament-cmake-pep257 ros-jazzy-ament-cmake-flake8 ros-jazzy-ament-cmake-cpplint + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-cmake-xmllint ros-jazzy-ament-cmake-uncrustify ros-jazzy-ament-cmake-pep257 + ros-jazzy-ament-cmake-flake8 ros-jazzy-ament-cmake-cpplint + stage_9_job_19: + name: ament-cmake-cppcheck launch-testing eigen3-cmake-module ament-cmake-clang-format + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_8_job_17 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-cmake-cppcheck ros-jazzy-launch-testing ros-jazzy-eigen3-cmake-module + ros-jazzy-ament-cmake-clang-format + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-cmake-cppcheck ros-jazzy-launch-testing ros-jazzy-eigen3-cmake-module + ros-jazzy-ament-cmake-clang-format + stage_10_job_20: + name: ament-lint-common foonathan-memory-vendor gz-cmake-vendor rviz-ogre-vendor + rviz-assimp-vendor + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_9_job_18 + - stage_9_job_19 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-lint-common ros-jazzy-foonathan-memory-vendor + ros-jazzy-gz-cmake-vendor ros-jazzy-rviz-ogre-vendor ros-jazzy-rviz-assimp-vendor + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-lint-common ros-jazzy-foonathan-memory-vendor ros-jazzy-gz-cmake-vendor + ros-jazzy-rviz-ogre-vendor ros-jazzy-rviz-assimp-vendor + stage_10_job_21: + name: gz-ogre-next-vendor gz-dartsim-vendor + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_9_job_18 + - stage_9_job_19 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-gz-ogre-next-vendor ros-jazzy-gz-dartsim-vendor + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-gz-ogre-next-vendor ros-jazzy-gz-dartsim-vendor + stage_11_job_22: + name: python-cmake-module rosidl-adapter performance-test-fixture mimick-vendor + ament-cmake-ros + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_10_job_20 + - stage_10_job_21 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-python-cmake-module ros-jazzy-rosidl-adapter ros-jazzy-performance-test-fixture + ros-jazzy-mimick-vendor ros-jazzy-ament-cmake-ros + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-python-cmake-module ros-jazzy-rosidl-adapter ros-jazzy-performance-test-fixture + ros-jazzy-mimick-vendor ros-jazzy-ament-cmake-ros + stage_11_job_23: + name: rosidl-typesupport-interface fastrtps-cmake-module fastrtps rti-connext-dds-cmake-module + rmw-implementation-cmake + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_10_job_20 + - stage_10_job_21 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosidl-typesupport-interface ros-jazzy-fastrtps-cmake-module + ros-jazzy-fastrtps ros-jazzy-rti-connext-dds-cmake-module ros-jazzy-rmw-implementation-cmake + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosidl-typesupport-interface ros-jazzy-fastrtps-cmake-module + ros-jazzy-fastrtps ros-jazzy-rti-connext-dds-cmake-module ros-jazzy-rmw-implementation-cmake + stage_11_job_24: + name: ament-index-cpp spdlog-vendor gz-utils-vendor gz-tools-vendor orocos-kdl-vendor + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_10_job_20 + - stage_10_job_21 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-index-cpp ros-jazzy-spdlog-vendor ros-jazzy-gz-utils-vendor + ros-jazzy-gz-tools-vendor ros-jazzy-orocos-kdl-vendor + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ament-index-cpp ros-jazzy-spdlog-vendor ros-jazzy-gz-utils-vendor + ros-jazzy-gz-tools-vendor ros-jazzy-orocos-kdl-vendor + stage_11_job_25: + name: python-qt-binding tango-icons-vendor keyboard-handler + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_10_job_20 + - stage_10_job_21 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-python-qt-binding ros-jazzy-tango-icons-vendor + ros-jazzy-keyboard-handler + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-python-qt-binding ros-jazzy-tango-icons-vendor ros-jazzy-keyboard-handler + stage_12_job_26: + name: launch-testing-ament-cmake rosidl-parser tracetools libyaml-vendor console-bridge-vendor + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_11_job_22 + - stage_11_job_23 + - stage_11_job_24 + - stage_11_job_25 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-launch-testing-ament-cmake ros-jazzy-rosidl-parser + ros-jazzy-tracetools ros-jazzy-libyaml-vendor ros-jazzy-console-bridge-vendor + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-launch-testing-ament-cmake ros-jazzy-rosidl-parser ros-jazzy-tracetools + ros-jazzy-libyaml-vendor ros-jazzy-console-bridge-vendor + stage_12_job_27: + name: urdf-parser-plugin gz-math-vendor resource-retriever gz-plugin-vendor qt-gui + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_11_job_22 + - stage_11_job_23 + - stage_11_job_24 + - stage_11_job_25 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-urdf-parser-plugin ros-jazzy-gz-math-vendor ros-jazzy-resource-retriever + ros-jazzy-gz-plugin-vendor ros-jazzy-qt-gui + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-urdf-parser-plugin ros-jazzy-gz-math-vendor ros-jazzy-resource-retriever + ros-jazzy-gz-plugin-vendor ros-jazzy-qt-gui + stage_12_job_28: + name: qt-gui-py-common qt-dotgraph + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_11_job_22 + - stage_11_job_23 + - stage_11_job_24 + - stage_11_job_25 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-qt-gui-py-common ros-jazzy-qt-dotgraph + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-qt-gui-py-common ros-jazzy-qt-dotgraph + stage_13_job_29: + name: rcutils rosidl-pycommon rosidl-generator-type-description sdformat-vendor + rviz-rendering + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_12_job_26 + - stage_12_job_27 + - stage_12_job_28 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rcutils ros-jazzy-rosidl-pycommon ros-jazzy-rosidl-generator-type-description + ros-jazzy-sdformat-vendor ros-jazzy-rviz-rendering + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rcutils ros-jazzy-rosidl-pycommon ros-jazzy-rosidl-generator-type-description + ros-jazzy-sdformat-vendor ros-jazzy-rviz-rendering + stage_13_job_30: + name: gz-msgs-vendor gz-common-vendor + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_12_job_26 + - stage_12_job_27 + - stage_12_job_28 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-gz-msgs-vendor ros-jazzy-gz-common-vendor + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-gz-msgs-vendor ros-jazzy-gz-common-vendor + stage_14_job_31: + name: rosidl-runtime-c rosidl-cmake rcpputils rviz-rendering-tests gz-transport-vendor + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_13_job_29 + - stage_13_job_30 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosidl-runtime-c ros-jazzy-rosidl-cmake ros-jazzy-rcpputils + ros-jazzy-rviz-rendering-tests ros-jazzy-gz-transport-vendor + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosidl-runtime-c ros-jazzy-rosidl-cmake ros-jazzy-rcpputils + ros-jazzy-rviz-rendering-tests ros-jazzy-gz-transport-vendor + stage_14_job_32: + name: gz-rendering-vendor gz-physics-vendor gz-fuel-tools-vendor + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_13_job_29 + - stage_13_job_30 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-gz-rendering-vendor ros-jazzy-gz-physics-vendor + ros-jazzy-gz-fuel-tools-vendor + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-gz-rendering-vendor ros-jazzy-gz-physics-vendor ros-jazzy-gz-fuel-tools-vendor + stage_15_job_33: + name: rosidl-runtime-cpp rosidl-generator-c rosidl-dynamic-typesupport rcl-logging-interface + class-loader + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_14_job_31 + - stage_14_job_32 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosidl-runtime-cpp ros-jazzy-rosidl-generator-c + ros-jazzy-rosidl-dynamic-typesupport ros-jazzy-rcl-logging-interface ros-jazzy-class-loader + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosidl-runtime-cpp ros-jazzy-rosidl-generator-c ros-jazzy-rosidl-dynamic-typesupport + ros-jazzy-rcl-logging-interface ros-jazzy-class-loader + stage_15_job_34: + name: gz-sensors-vendor gz-gui-vendor + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_14_job_31 + - stage_14_job_32 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-gz-sensors-vendor ros-jazzy-gz-gui-vendor + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-gz-sensors-vendor ros-jazzy-gz-gui-vendor + stage_16_job_35: + name: rosidl-generator-cpp rmw rosidl-typesupport-introspection-c rosidl-dynamic-typesupport-fastrtps + rcl-logging-spdlog + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_15_job_33 + - stage_15_job_34 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosidl-generator-cpp ros-jazzy-rmw ros-jazzy-rosidl-typesupport-introspection-c + ros-jazzy-rosidl-dynamic-typesupport-fastrtps ros-jazzy-rcl-logging-spdlog + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosidl-generator-cpp ros-jazzy-rmw ros-jazzy-rosidl-typesupport-introspection-c + ros-jazzy-rosidl-dynamic-typesupport-fastrtps ros-jazzy-rcl-logging-spdlog + stage_16_job_36: + name: pluginlib gz-sim-vendor + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_15_job_33 + - stage_15_job_34 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-pluginlib ros-jazzy-gz-sim-vendor + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-pluginlib ros-jazzy-gz-sim-vendor + stage_17_job_37: + name: rosidl-typesupport-fastrtps-cpp rosidl-typesupport-introspection-cpp rcl-yaml-param-parser + urdf qt-gui-cpp + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_16_job_35 + - stage_16_job_36 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosidl-typesupport-fastrtps-cpp ros-jazzy-rosidl-typesupport-introspection-cpp + ros-jazzy-rcl-yaml-param-parser ros-jazzy-urdf ros-jazzy-qt-gui-cpp + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosidl-typesupport-fastrtps-cpp ros-jazzy-rosidl-typesupport-introspection-cpp + ros-jazzy-rcl-yaml-param-parser ros-jazzy-urdf ros-jazzy-qt-gui-cpp + stage_18_job_38: + name: rosidl-typesupport-fastrtps-c sdformat-urdf kdl-parser rosidl-typesupport-c + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_17_job_37 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosidl-typesupport-fastrtps-c ros-jazzy-sdformat-urdf + ros-jazzy-kdl-parser ros-jazzy-rosidl-typesupport-c + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosidl-typesupport-fastrtps-c ros-jazzy-sdformat-urdf + ros-jazzy-kdl-parser ros-jazzy-rosidl-typesupport-c + stage_19_job_39: + name: rosidl-typesupport-cpp rosidl-generator-py rosidl-core-runtime rosidl-core-generators + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_18_job_38 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosidl-typesupport-cpp ros-jazzy-rosidl-generator-py + ros-jazzy-rosidl-core-runtime ros-jazzy-rosidl-core-generators + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosidl-typesupport-cpp ros-jazzy-rosidl-generator-py ros-jazzy-rosidl-core-runtime + ros-jazzy-rosidl-core-generators + stage_20_job_40: + name: builtin-interfaces unique-identifier-msgs service-msgs + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_19_job_39 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-builtin-interfaces ros-jazzy-unique-identifier-msgs + ros-jazzy-service-msgs + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-builtin-interfaces ros-jazzy-unique-identifier-msgs ros-jazzy-service-msgs + stage_21_job_41: + name: action-msgs type-description-interfaces rosidl-default-runtime rosidl-default-generators + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_20_job_40 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-action-msgs ros-jazzy-type-description-interfaces + ros-jazzy-rosidl-default-runtime ros-jazzy-rosidl-default-generators + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-action-msgs ros-jazzy-type-description-interfaces ros-jazzy-rosidl-default-runtime + ros-jazzy-rosidl-default-generators + stage_22_job_42: + name: rmw-dds-common test-msgs rcl-interfaces std-msgs statistics-msgs + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_21_job_41 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rmw-dds-common ros-jazzy-test-msgs ros-jazzy-rcl-interfaces + ros-jazzy-std-msgs ros-jazzy-statistics-msgs + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rmw-dds-common ros-jazzy-test-msgs ros-jazzy-rcl-interfaces + ros-jazzy-std-msgs ros-jazzy-statistics-msgs + stage_22_job_43: + name: rosgraph-msgs lifecycle-msgs std-srvs example-interfaces ros2cli-test-interfaces + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_21_job_41 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosgraph-msgs ros-jazzy-lifecycle-msgs ros-jazzy-std-srvs + ros-jazzy-example-interfaces ros-jazzy-ros2cli-test-interfaces + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosgraph-msgs ros-jazzy-lifecycle-msgs ros-jazzy-std-srvs + ros-jazzy-example-interfaces ros-jazzy-ros2cli-test-interfaces + stage_22_job_44: + name: rosbag2-test-msgdefs rosbag2-interfaces action-tutorials-interfaces pendulum-msgs + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_21_job_41 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosbag2-test-msgdefs ros-jazzy-rosbag2-interfaces + ros-jazzy-action-tutorials-interfaces ros-jazzy-pendulum-msgs + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosbag2-test-msgdefs ros-jazzy-rosbag2-interfaces ros-jazzy-action-tutorials-interfaces + ros-jazzy-pendulum-msgs + stage_23_job_45: + name: rmw-fastrtps-shared-cpp rmw-connextdds-common rmw-cyclonedds-cpp composition-interfaces + geometry-msgs + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_22_job_42 + - stage_22_job_43 + - stage_22_job_44 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rmw-fastrtps-shared-cpp ros-jazzy-rmw-connextdds-common + ros-jazzy-rmw-cyclonedds-cpp ros-jazzy-composition-interfaces ros-jazzy-geometry-msgs + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rmw-fastrtps-shared-cpp ros-jazzy-rmw-connextdds-common + ros-jazzy-rmw-cyclonedds-cpp ros-jazzy-composition-interfaces ros-jazzy-geometry-msgs + stage_23_job_46: + name: rosidl-runtime-py actionlib-msgs gps-msgs actuator-msgs + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_22_job_42 + - stage_22_job_43 + - stage_22_job_44 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosidl-runtime-py ros-jazzy-actionlib-msgs ros-jazzy-gps-msgs + ros-jazzy-actuator-msgs + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosidl-runtime-py ros-jazzy-actionlib-msgs ros-jazzy-gps-msgs + ros-jazzy-actuator-msgs + stage_24_job_47: + name: rmw-fastrtps-dynamic-cpp rmw-fastrtps-cpp rmw-connextdds sensor-msgs trajectory-msgs + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_23_job_45 + - stage_23_job_46 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rmw-fastrtps-dynamic-cpp ros-jazzy-rmw-fastrtps-cpp + ros-jazzy-rmw-connextdds ros-jazzy-sensor-msgs ros-jazzy-trajectory-msgs + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rmw-fastrtps-dynamic-cpp ros-jazzy-rmw-fastrtps-cpp ros-jazzy-rmw-connextdds + ros-jazzy-sensor-msgs ros-jazzy-trajectory-msgs + stage_24_job_48: + name: tf2-msgs tf2 diagnostic-msgs shape-msgs nav-msgs + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_23_job_45 + - stage_23_job_46 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-tf2-msgs ros-jazzy-tf2 ros-jazzy-diagnostic-msgs + ros-jazzy-shape-msgs ros-jazzy-nav-msgs + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-tf2-msgs ros-jazzy-tf2 ros-jazzy-diagnostic-msgs ros-jazzy-shape-msgs + ros-jazzy-nav-msgs + stage_24_job_49: + name: vision-msgs ros-gz-interfaces + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_23_job_45 + - stage_23_job_46 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-vision-msgs ros-jazzy-ros-gz-interfaces + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-vision-msgs ros-jazzy-ros-gz-interfaces + stage_25_job_50: + name: rmw-implementation visualization-msgs stereo-msgs sensor-msgs-py map-msgs + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_24_job_47 + - stage_24_job_48 + - stage_24_job_49 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rmw-implementation ros-jazzy-visualization-msgs + ros-jazzy-stereo-msgs ros-jazzy-sensor-msgs-py ros-jazzy-map-msgs + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rmw-implementation ros-jazzy-visualization-msgs ros-jazzy-stereo-msgs + ros-jazzy-sensor-msgs-py ros-jazzy-map-msgs + stage_25_job_51: + name: tf2-eigen-kdl image-geometry + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_24_job_47 + - stage_24_job_48 + - stage_24_job_49 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-tf2-eigen-kdl ros-jazzy-image-geometry + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-tf2-eigen-kdl ros-jazzy-image-geometry + stage_26_job_52: + name: rcl common-interfaces + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_25_job_50 + - stage_25_job_51 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rcl ros-jazzy-common-interfaces + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rcl ros-jazzy-common-interfaces + stage_27_job_53: + name: libstatistics-collector rcl-lifecycle rcl-action + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_26_job_52 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-libstatistics-collector ros-jazzy-rcl-lifecycle + ros-jazzy-rcl-action + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-libstatistics-collector ros-jazzy-rcl-lifecycle ros-jazzy-rcl-action + stage_28_job_54: + name: rclcpp rclpy + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_27_job_53 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rclcpp ros-jazzy-rclpy + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rclcpp ros-jazzy-rclpy + stage_29_job_55: + name: rclcpp-lifecycle rclcpp-action launch-ros ros2cli rclcpp-components + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_28_job_54 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rclcpp-lifecycle ros-jazzy-rclcpp-action ros-jazzy-launch-ros + ros-jazzy-ros2cli ros-jazzy-rclcpp-components + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rclcpp-lifecycle ros-jazzy-rclcpp-action ros-jazzy-launch-ros + ros-jazzy-ros2cli ros-jazzy-rclcpp-components + stage_29_job_56: + name: rosbag2-test-common tf2-py cv-bridge laser-geometry rqt-gui + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_28_job_54 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosbag2-test-common ros-jazzy-tf2-py ros-jazzy-cv-bridge + ros-jazzy-laser-geometry ros-jazzy-rqt-gui + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosbag2-test-common ros-jazzy-tf2-py ros-jazzy-cv-bridge + ros-jazzy-laser-geometry ros-jazzy-rqt-gui + stage_29_job_57: + name: rqt-py-common rqt-gui-cpp teleop-twist-keyboard dummy-sensors dummy-map-server + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_28_job_54 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rqt-py-common ros-jazzy-rqt-gui-cpp ros-jazzy-teleop-twist-keyboard + ros-jazzy-dummy-sensors ros-jazzy-dummy-map-server + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rqt-py-common ros-jazzy-rqt-gui-cpp ros-jazzy-teleop-twist-keyboard + ros-jazzy-dummy-sensors ros-jazzy-dummy-map-server + stage_29_job_58: + name: demo-nodes-py quality-of-service-demo-py intra-process-demo examples-rclpy-minimal-subscriber + examples-rclpy-minimal-service + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_28_job_54 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-demo-nodes-py ros-jazzy-quality-of-service-demo-py + ros-jazzy-intra-process-demo ros-jazzy-examples-rclpy-minimal-subscriber + ros-jazzy-examples-rclpy-minimal-service + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-demo-nodes-py ros-jazzy-quality-of-service-demo-py ros-jazzy-intra-process-demo + ros-jazzy-examples-rclpy-minimal-subscriber ros-jazzy-examples-rclpy-minimal-service + stage_29_job_59: + name: examples-rclpy-minimal-publisher examples-rclpy-minimal-client examples-rclpy-minimal-action-server + examples-rclpy-minimal-action-client examples-rclpy-executors + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_28_job_54 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-examples-rclpy-minimal-publisher ros-jazzy-examples-rclpy-minimal-client + ros-jazzy-examples-rclpy-minimal-action-server ros-jazzy-examples-rclpy-minimal-action-client + ros-jazzy-examples-rclpy-executors + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-examples-rclpy-minimal-publisher ros-jazzy-examples-rclpy-minimal-client + ros-jazzy-examples-rclpy-minimal-action-server ros-jazzy-examples-rclpy-minimal-action-client + ros-jazzy-examples-rclpy-executors + stage_29_job_60: + name: examples-rclcpp-multithreaded-executor examples-rclcpp-minimal-timer examples-rclcpp-minimal-service + examples-rclcpp-minimal-publisher examples-rclcpp-minimal-client + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_28_job_54 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-examples-rclcpp-multithreaded-executor ros-jazzy-examples-rclcpp-minimal-timer + ros-jazzy-examples-rclcpp-minimal-service ros-jazzy-examples-rclcpp-minimal-publisher + ros-jazzy-examples-rclcpp-minimal-client + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-examples-rclcpp-multithreaded-executor ros-jazzy-examples-rclcpp-minimal-timer + ros-jazzy-examples-rclcpp-minimal-service ros-jazzy-examples-rclcpp-minimal-publisher + ros-jazzy-examples-rclcpp-minimal-client + stage_29_job_61: + name: action-tutorials-py + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_28_job_54 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-action-tutorials-py + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-action-tutorials-py + stage_30_job_62: + name: launch-testing-ros message-filters ros2lifecycle-test-fixtures rosbag2-storage + ros2multicast + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_29_job_55 + - stage_29_job_56 + - stage_29_job_57 + - stage_29_job_58 + - stage_29_job_59 + - stage_29_job_60 + - stage_29_job_61 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-launch-testing-ros ros-jazzy-message-filters ros-jazzy-ros2lifecycle-test-fixtures + ros-jazzy-rosbag2-storage ros-jazzy-ros2multicast + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-launch-testing-ros ros-jazzy-message-filters ros-jazzy-ros2lifecycle-test-fixtures + ros-jazzy-rosbag2-storage ros-jazzy-ros2multicast + stage_30_job_63: + name: tf2-ros-py ros-gz-bridge rqt-gui-py ros-gz-sim joy + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_29_job_55 + - stage_29_job_56 + - stage_29_job_57 + - stage_29_job_58 + - stage_29_job_59 + - stage_29_job_60 + - stage_29_job_61 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-tf2-ros-py ros-jazzy-ros-gz-bridge ros-jazzy-rqt-gui-py + ros-jazzy-ros-gz-sim ros-jazzy-joy + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-tf2-ros-py ros-jazzy-ros-gz-bridge ros-jazzy-rqt-gui-py + ros-jazzy-ros-gz-sim ros-jazzy-joy + stage_30_job_64: + name: turtlesim topic-monitor quality-of-service-demo-cpp examples-rclcpp-minimal-subscriber + examples-rclcpp-minimal-composition + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_29_job_55 + - stage_29_job_56 + - stage_29_job_57 + - stage_29_job_58 + - stage_29_job_59 + - stage_29_job_60 + - stage_29_job_61 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-turtlesim ros-jazzy-topic-monitor ros-jazzy-quality-of-service-demo-cpp + ros-jazzy-examples-rclcpp-minimal-subscriber ros-jazzy-examples-rclcpp-minimal-composition + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-turtlesim ros-jazzy-topic-monitor ros-jazzy-quality-of-service-demo-cpp + ros-jazzy-examples-rclcpp-minimal-subscriber ros-jazzy-examples-rclcpp-minimal-composition + stage_30_job_65: + name: examples-rclcpp-minimal-action-server examples-rclcpp-minimal-action-client + depthimage-to-laserscan action-tutorials-cpp + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_29_job_55 + - stage_29_job_56 + - stage_29_job_57 + - stage_29_job_58 + - stage_29_job_59 + - stage_29_job_60 + - stage_29_job_61 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-examples-rclcpp-minimal-action-server ros-jazzy-examples-rclcpp-minimal-action-client + ros-jazzy-depthimage-to-laserscan ros-jazzy-action-tutorials-cpp + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-examples-rclcpp-minimal-action-server ros-jazzy-examples-rclcpp-minimal-action-client + ros-jazzy-depthimage-to-laserscan ros-jazzy-action-tutorials-cpp + stage_31_job_66: + name: ros2pkg ros2service ros2node tf2-ros ros2test + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_30_job_62 + - stage_30_job_63 + - stage_30_job_64 + - stage_30_job_65 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros2pkg ros-jazzy-ros2service ros-jazzy-ros2node + ros-jazzy-tf2-ros ros-jazzy-ros2test + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ros2pkg ros-jazzy-ros2service ros-jazzy-ros2node ros-jazzy-tf2-ros + ros-jazzy-ros2test + stage_31_job_67: + name: ros2topic ros2interface ros2doctor ros2action rosbag2-storage-sqlite3 + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_30_job_62 + - stage_30_job_63 + - stage_30_job_64 + - stage_30_job_65 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros2topic ros-jazzy-ros2interface ros-jazzy-ros2doctor + ros-jazzy-ros2action ros-jazzy-rosbag2-storage-sqlite3 + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ros2topic ros-jazzy-ros2interface ros-jazzy-ros2doctor + ros-jazzy-ros2action ros-jazzy-rosbag2-storage-sqlite3 + stage_31_job_68: + name: rosbag2-storage-mcap point-cloud-transport image-transport rqt-plot rqt-console + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_30_job_62 + - stage_30_job_63 + - stage_30_job_64 + - stage_30_job_65 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosbag2-storage-mcap ros-jazzy-point-cloud-transport + ros-jazzy-image-transport ros-jazzy-rqt-plot ros-jazzy-rqt-console + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosbag2-storage-mcap ros-jazzy-point-cloud-transport ros-jazzy-image-transport + ros-jazzy-rqt-plot ros-jazzy-rqt-console + stage_31_job_69: + name: tf2-tools teleop-twist-joy rqt-shell rqt-service-caller rqt-py-console + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_30_job_62 + - stage_30_job_63 + - stage_30_job_64 + - stage_30_job_65 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-tf2-tools ros-jazzy-teleop-twist-joy ros-jazzy-rqt-shell + ros-jazzy-rqt-service-caller ros-jazzy-rqt-py-console + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-tf2-tools ros-jazzy-teleop-twist-joy ros-jazzy-rqt-shell + ros-jazzy-rqt-service-caller ros-jazzy-rqt-py-console + stage_31_job_70: + name: rqt-publisher rqt-graph logging-demo image-tools demo-nodes-cpp-native + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_30_job_62 + - stage_30_job_63 + - stage_30_job_64 + - stage_30_job_65 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rqt-publisher ros-jazzy-rqt-graph ros-jazzy-logging-demo + ros-jazzy-image-tools ros-jazzy-demo-nodes-cpp-native + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rqt-publisher ros-jazzy-rqt-graph ros-jazzy-logging-demo + ros-jazzy-image-tools ros-jazzy-demo-nodes-cpp-native + stage_31_job_71: + name: demo-nodes-cpp composition + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_30_job_62 + - stage_30_job_63 + - stage_30_job_64 + - stage_30_job_65 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-demo-nodes-cpp ros-jazzy-composition + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-demo-nodes-cpp ros-jazzy-composition + stage_32_job_72: + name: ros2run ros2param robot-state-publisher ros-testing ros2lifecycle + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_31_job_66 + - stage_31_job_67 + - stage_31_job_68 + - stage_31_job_69 + - stage_31_job_70 + - stage_31_job_71 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros2run ros-jazzy-ros2param ros-jazzy-robot-state-publisher + ros-jazzy-ros-testing ros-jazzy-ros2lifecycle + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ros2run ros-jazzy-ros2param ros-jazzy-robot-state-publisher + ros-jazzy-ros-testing ros-jazzy-ros2lifecycle + stage_32_job_73: + name: ros2launch tf2-geometry-msgs rosbag2-storage-default-plugins tf2-kdl tf2-eigen + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_31_job_66 + - stage_31_job_67 + - stage_31_job_68 + - stage_31_job_69 + - stage_31_job_70 + - stage_31_job_71 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros2launch ros-jazzy-tf2-geometry-msgs ros-jazzy-rosbag2-storage-default-plugins + ros-jazzy-tf2-kdl ros-jazzy-tf2-eigen + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ros2launch ros-jazzy-tf2-geometry-msgs ros-jazzy-rosbag2-storage-default-plugins + ros-jazzy-tf2-kdl ros-jazzy-tf2-eigen + stage_32_job_74: + name: tf2-sensor-msgs rviz-common zstd-image-transport theora-image-transport + compressed-image-transport + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_31_job_66 + - stage_31_job_67 + - stage_31_job_68 + - stage_31_job_69 + - stage_31_job_70 + - stage_31_job_71 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-tf2-sensor-msgs ros-jazzy-rviz-common ros-jazzy-zstd-image-transport + ros-jazzy-theora-image-transport ros-jazzy-compressed-image-transport + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-tf2-sensor-msgs ros-jazzy-rviz-common ros-jazzy-zstd-image-transport + ros-jazzy-theora-image-transport ros-jazzy-compressed-image-transport + stage_32_job_75: + name: compressed-depth-image-transport ros-gz-image rqt-topic rqt-image-view tf2-bullet + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_31_job_66 + - stage_31_job_67 + - stage_31_job_68 + - stage_31_job_69 + - stage_31_job_70 + - stage_31_job_71 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-compressed-depth-image-transport ros-jazzy-ros-gz-image + ros-jazzy-rqt-topic ros-jazzy-rqt-image-view ros-jazzy-tf2-bullet + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-compressed-depth-image-transport ros-jazzy-ros-gz-image + ros-jazzy-rqt-topic ros-jazzy-rqt-image-view ros-jazzy-tf2-bullet + stage_32_job_76: + name: rqt-msg rqt-reconfigure + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_31_job_66 + - stage_31_job_67 + - stage_31_job_68 + - stage_31_job_69 + - stage_31_job_70 + - stage_31_job_71 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rqt-msg ros-jazzy-rqt-reconfigure + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rqt-msg ros-jazzy-rqt-reconfigure + stage_33_job_77: + name: sros2 ros2component rosbag2-cpp rviz-visual-testing-framework interactive-markers + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_32_job_72 + - stage_32_job_73 + - stage_32_job_74 + - stage_32_job_75 + - stage_32_job_76 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-sros2 ros-jazzy-ros2component ros-jazzy-rosbag2-cpp + ros-jazzy-rviz-visual-testing-framework ros-jazzy-interactive-markers + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-sros2 ros-jazzy-ros2component ros-jazzy-rosbag2-cpp ros-jazzy-rviz-visual-testing-framework + ros-jazzy-interactive-markers + stage_33_job_78: + name: image-transport-plugins geometry2 rqt-srv rqt-action lifecycle + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_32_job_72 + - stage_32_job_73 + - stage_32_job_74 + - stage_32_job_75 + - stage_32_job_76 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-image-transport-plugins ros-jazzy-geometry2 ros-jazzy-rqt-srv + ros-jazzy-rqt-action ros-jazzy-lifecycle + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-image-transport-plugins ros-jazzy-geometry2 ros-jazzy-rqt-srv + ros-jazzy-rqt-action ros-jazzy-lifecycle + stage_33_job_79: + name: dummy-robot-bringup + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_32_job_72 + - stage_32_job_73 + - stage_32_job_74 + - stage_32_job_75 + - stage_32_job_76 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-dummy-robot-bringup + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-dummy-robot-bringup + stage_34_job_80: + name: ros2cli-common-extensions rosbag2-compression rviz-default-plugins sros2-cmake + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_33_job_77 + - stage_33_job_78 + - stage_33_job_79 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros2cli-common-extensions ros-jazzy-rosbag2-compression + ros-jazzy-rviz-default-plugins ros-jazzy-sros2-cmake + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ros2cli-common-extensions ros-jazzy-rosbag2-compression + ros-jazzy-rviz-default-plugins ros-jazzy-sros2-cmake + stage_35_job_81: + name: rosbag2-compression-zstd rviz2 ros-core + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_34_job_80 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosbag2-compression-zstd ros-jazzy-rviz2 ros-jazzy-ros-core + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosbag2-compression-zstd ros-jazzy-rviz2 ros-jazzy-ros-core + stage_36_job_82: + name: rosbag2-transport ros-gz-sim-demos rosbag2-py ros-gz + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_35_job_81 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosbag2-transport ros-jazzy-ros-gz-sim-demos ros-jazzy-rosbag2-py + ros-jazzy-ros-gz + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rosbag2-transport ros-jazzy-ros-gz-sim-demos ros-jazzy-rosbag2-py + ros-jazzy-ros-gz + stage_37_job_83: + name: ros2bag rqt-bag rosbag2-tests rosbag2 + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_36_job_82 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros2bag ros-jazzy-rqt-bag ros-jazzy-rosbag2-tests + ros-jazzy-rosbag2 + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-ros2bag ros-jazzy-rqt-bag ros-jazzy-rosbag2-tests ros-jazzy-rosbag2 + stage_38_job_84: + name: rqt-bag-plugins ros-base rqt-common-plugins desktop + runs-on: windows-2019 + strategy: + fail-fast: false + needs: + - stage_37_job_83 + env: + CONDA_BLD_PATH: C:\\bld\\ + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.8.1 + with: + pixi-version: conda-forge + cache: 'true' + - uses: egor-tensin/cleanup-path@v4 + with: + dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program + Files\Git\mingw64\bin + - shell: cmd + run: | + set "CI=true" + + :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners + :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149 + set CPU_COUNT=4 + + set PYTHONUNBUFFERED=1 + + call setup_x64 + + :: Set the conda-build working directory to a smaller path + if "%CONDA_BLD_PATH%" == "" ( + set "CONDA_BLD_PATH=C:\\bld\\" + ) + + :: On azure, there are libcrypto*.dll & libssl*.dll under + :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder). + :: They would be found before the openssl libs of the conda environment, so we delete them. + if defined CI ( + DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll) + DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll) + ) + + :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage + set "PATH=%PATH:ostedtoolcache=%" + name: conda-forge build setup + - shell: cmd + run: | + setlocal EnableExtensions EnableDelayedExpansion + + set CONDA_BLD_PATH=C:\bld + echo "PATH is %PATH%" + + rmdir /Q/S C:\Strawberry\ + rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\" + + set "FEEDSTOCK_ROOT=%cd%" + + mkdir %CONDA_BLD_PATH% + + :: Enable long path names on Windows + reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f + + for %%X in (%CURRENT_RECIPES%) do ( + echo "BUILDING RECIPE %%X" + cd %FEEDSTOCK_ROOT%\recipes\%%X\ + pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^ + -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^ + -c robostack-jazzy -c conda-forge ^ + --output-dir %CONDA_BLD_PATH% + + if errorlevel 1 exit 1 + rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml + ) + + pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force + if errorlevel 1 exit 1 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rqt-bag-plugins ros-jazzy-ros-base ros-jazzy-rqt-common-plugins + ros-jazzy-desktop + PYTHONUNBUFFERED: 1 + name: Build ros-jazzy-rqt-bag-plugins ros-jazzy-ros-base ros-jazzy-rqt-common-plugins + ros-jazzy-desktop +name: build_win +on: + push: + branches: + - buildbranch_win diff --git a/activate.bat b/activate.bat new file mode 100755 index 00000000..48ff1d71 --- /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 100755 index 00000000..137e67ae --- /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 100755 index 00000000..aece9708 --- /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 100755 index 00000000..823afff1 --- /dev/null +++ b/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/bld_ament_python.bat b/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/bld_catkin.bat b/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\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 100755 index 00000000..0c8cef7c --- /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-jazzy-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 100755 index 00000000..b795d97d --- /dev/null +++ b/bld_colcon_merge.bat @@ -0,0 +1,38 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +colcon build ^ + --event-handlers console_cohesion+ ^ + --merge-install ^ + --install-base %LIBRARY_PREFIX% ^ + --cmake-args ^ + --compile-no-warning-as-error ^ + -G Ninja ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DBUILD_TESTING=OFF ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + -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 100755 index 00000000..34df1a72 --- /dev/null +++ b/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $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 100755 index 00000000..e95680de --- /dev/null +++ b/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/build_catkin.sh b/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${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 00000000..f337aa68 --- /dev/null +++ b/buildorder.txt @@ -0,0 +1,348 @@ +ros2-distro-mutex +ros-jazzy-urdfdom-headers +ros-jazzy-urdfdom +ros-jazzy-urdfdom-py +ros-jazzy-ament-package +ros-jazzy-ament-cmake-core +ros-jazzy-ros-workspace +ros-jazzy-ros-environment +ros-jazzy-ament-lint +ros-jazzy-ament-cmake-python +ros-jazzy-gtest-vendor +ros-jazzy-ament-cmake-libraries +ros-jazzy-ament-cmake-include-directories +ros-jazzy-ament-cmake-export-libraries +ros-jazzy-ament-cmake-version +ros-jazzy-ament-cmake-export-link-flags +ros-jazzy-ament-cmake-export-include-directories +ros-jazzy-ament-cmake-export-definitions +ros-jazzy-ament-pycodestyle +ros-jazzy-osrf-pycommon +ros-jazzy-google-benchmark-vendor +ros-jazzy-osrf-testing-tools-cpp +ros-jazzy-test-interface-files +ros-jazzy-iceoryx-hoofs +ros-jazzy-sdformat-test-files +ros-jazzy-ament-flake8 +ros-jazzy-ament-cmake-test +ros-jazzy-ament-cmake-export-dependencies +ros-jazzy-ament-cmake-target-dependencies +ros-jazzy-ament-cmake-export-targets +ros-jazzy-ament-cmake-export-interfaces +ros-jazzy-gmock-vendor +ros-jazzy-iceoryx-posh +ros-jazzy-ament-pep257 +ros-jazzy-ament-cmake-gtest +ros-jazzy-ament-cmake-vendor-package +ros-jazzy-ament-mypy +ros-jazzy-ament-lint-auto +ros-jazzy-ament-cmake-pytest +ros-jazzy-ament-cmake-google-benchmark +ros-jazzy-iceoryx-binding-c +ros-jazzy-ament-copyright +ros-jazzy-ament-cmake-gen-version-h +ros-jazzy-ament-cmake-gmock +ros-jazzy-cyclonedds +ros-jazzy-ament-lint-cmake +ros-jazzy-ament-cmake +ros-jazzy-ament-xmllint +ros-jazzy-ament-cpplint +ros-jazzy-ament-cppcheck +ros-jazzy-ament-index-python +ros-jazzy-domain-coordinator +ros-jazzy-ament-clang-format +ros-jazzy-ament-cmake-lint-cmake +ros-jazzy-uncrustify-vendor +ros-jazzy-launch +ros-jazzy-rosidl-cli +ros-jazzy-fastcdr +ros-jazzy-rpyutils +ros-jazzy-pybind11-vendor +ros-jazzy-tinyxml2-vendor +ros-jazzy-yaml-cpp-vendor +ros-jazzy-zstd-vendor +ros-jazzy-liblz4-vendor +ros-jazzy-sqlite3-vendor +ros-jazzy-libcurl-vendor +ros-jazzy-xacro +ros-jazzy-angles +ros-jazzy-ament-cmake-auto +ros-jazzy-sdl2-vendor +ros-jazzy-ament-cmake-copyright +ros-jazzy-ament-uncrustify +ros-jazzy-launch-yaml +ros-jazzy-launch-xml +ros-jazzy-mcap-vendor +ros-jazzy-ament-cmake-xmllint +ros-jazzy-ament-cmake-uncrustify +ros-jazzy-ament-cmake-pep257 +ros-jazzy-ament-cmake-flake8 +ros-jazzy-ament-cmake-cpplint +ros-jazzy-ament-cmake-cppcheck +ros-jazzy-launch-testing +ros-jazzy-eigen3-cmake-module +ros-jazzy-ament-cmake-clang-format +ros-jazzy-ament-lint-common +ros-jazzy-foonathan-memory-vendor +ros-jazzy-gz-cmake-vendor +ros-jazzy-rviz-ogre-vendor +ros-jazzy-rviz-assimp-vendor +ros-jazzy-gz-ogre-next-vendor +ros-jazzy-gz-dartsim-vendor +ros-jazzy-python-cmake-module +ros-jazzy-rosidl-adapter +ros-jazzy-performance-test-fixture +ros-jazzy-mimick-vendor +ros-jazzy-ament-cmake-ros +ros-jazzy-rosidl-typesupport-interface +ros-jazzy-fastrtps-cmake-module +ros-jazzy-fastrtps +ros-jazzy-rti-connext-dds-cmake-module +ros-jazzy-rmw-implementation-cmake +ros-jazzy-ament-index-cpp +ros-jazzy-spdlog-vendor +ros-jazzy-gz-utils-vendor +ros-jazzy-gz-tools-vendor +ros-jazzy-orocos-kdl-vendor +ros-jazzy-python-qt-binding +ros-jazzy-tango-icons-vendor +ros-jazzy-keyboard-handler +ros-jazzy-launch-testing-ament-cmake +ros-jazzy-rosidl-parser +ros-jazzy-tracetools +ros-jazzy-libyaml-vendor +ros-jazzy-console-bridge-vendor +ros-jazzy-urdf-parser-plugin +ros-jazzy-gz-math-vendor +ros-jazzy-resource-retriever +ros-jazzy-gz-plugin-vendor +ros-jazzy-qt-gui +ros-jazzy-qt-gui-py-common +ros-jazzy-qt-dotgraph +ros-jazzy-rcutils +ros-jazzy-rosidl-pycommon +ros-jazzy-rosidl-generator-type-description +ros-jazzy-sdformat-vendor +ros-jazzy-rviz-rendering +ros-jazzy-gz-msgs-vendor +ros-jazzy-gz-common-vendor +ros-jazzy-rosidl-runtime-c +ros-jazzy-rosidl-cmake +ros-jazzy-rcpputils +ros-jazzy-rviz-rendering-tests +ros-jazzy-gz-transport-vendor +ros-jazzy-gz-rendering-vendor +ros-jazzy-gz-physics-vendor +ros-jazzy-gz-fuel-tools-vendor +ros-jazzy-rosidl-runtime-cpp +ros-jazzy-rosidl-generator-c +ros-jazzy-rosidl-dynamic-typesupport +ros-jazzy-rcl-logging-interface +ros-jazzy-class-loader +ros-jazzy-gz-sensors-vendor +ros-jazzy-gz-gui-vendor +ros-jazzy-rosidl-generator-cpp +ros-jazzy-rmw +ros-jazzy-rosidl-typesupport-introspection-c +ros-jazzy-rosidl-dynamic-typesupport-fastrtps +ros-jazzy-rcl-logging-spdlog +ros-jazzy-pluginlib +ros-jazzy-gz-sim-vendor +ros-jazzy-rosidl-typesupport-fastrtps-cpp +ros-jazzy-rosidl-typesupport-introspection-cpp +ros-jazzy-rcl-yaml-param-parser +ros-jazzy-urdf +ros-jazzy-qt-gui-cpp +ros-jazzy-rosidl-typesupport-fastrtps-c +ros-jazzy-sdformat-urdf +ros-jazzy-kdl-parser +ros-jazzy-rosidl-typesupport-c +ros-jazzy-rosidl-typesupport-cpp +ros-jazzy-rosidl-generator-py +ros-jazzy-rosidl-core-runtime +ros-jazzy-rosidl-core-generators +ros-jazzy-builtin-interfaces +ros-jazzy-unique-identifier-msgs +ros-jazzy-service-msgs +ros-jazzy-action-msgs +ros-jazzy-type-description-interfaces +ros-jazzy-rosidl-default-runtime +ros-jazzy-rosidl-default-generators +ros-jazzy-rmw-dds-common +ros-jazzy-test-msgs +ros-jazzy-rcl-interfaces +ros-jazzy-std-msgs +ros-jazzy-statistics-msgs +ros-jazzy-rosgraph-msgs +ros-jazzy-lifecycle-msgs +ros-jazzy-std-srvs +ros-jazzy-example-interfaces +ros-jazzy-ros2cli-test-interfaces +ros-jazzy-rosbag2-test-msgdefs +ros-jazzy-rosbag2-interfaces +ros-jazzy-action-tutorials-interfaces +ros-jazzy-pendulum-msgs +ros-jazzy-rmw-fastrtps-shared-cpp +ros-jazzy-rmw-connextdds-common +ros-jazzy-rmw-cyclonedds-cpp +ros-jazzy-composition-interfaces +ros-jazzy-geometry-msgs +ros-jazzy-rosidl-runtime-py +ros-jazzy-actionlib-msgs +ros-jazzy-gps-msgs +ros-jazzy-actuator-msgs +ros-jazzy-rmw-fastrtps-dynamic-cpp +ros-jazzy-rmw-fastrtps-cpp +ros-jazzy-rmw-connextdds +ros-jazzy-sensor-msgs +ros-jazzy-trajectory-msgs +ros-jazzy-tf2-msgs +ros-jazzy-tf2 +ros-jazzy-diagnostic-msgs +ros-jazzy-shape-msgs +ros-jazzy-nav-msgs +ros-jazzy-vision-msgs +ros-jazzy-ros-gz-interfaces +ros-jazzy-rmw-implementation +ros-jazzy-visualization-msgs +ros-jazzy-stereo-msgs +ros-jazzy-sensor-msgs-py +ros-jazzy-map-msgs +ros-jazzy-tf2-eigen-kdl +ros-jazzy-image-geometry +ros-jazzy-rcl +ros-jazzy-common-interfaces +ros-jazzy-libstatistics-collector +ros-jazzy-rcl-lifecycle +ros-jazzy-rcl-action +ros-jazzy-rclcpp +ros-jazzy-rclpy +ros-jazzy-rclcpp-lifecycle +ros-jazzy-rclcpp-action +ros-jazzy-launch-ros +ros-jazzy-ros2cli +ros-jazzy-rclcpp-components +ros-jazzy-rosbag2-test-common +ros-jazzy-tf2-py +ros-jazzy-cv-bridge +ros-jazzy-laser-geometry +ros-jazzy-rqt-gui +ros-jazzy-rqt-py-common +ros-jazzy-rqt-gui-cpp +ros-jazzy-teleop-twist-keyboard +ros-jazzy-dummy-sensors +ros-jazzy-dummy-map-server +ros-jazzy-demo-nodes-py +ros-jazzy-quality-of-service-demo-py +ros-jazzy-intra-process-demo +ros-jazzy-examples-rclpy-minimal-subscriber +ros-jazzy-examples-rclpy-minimal-service +ros-jazzy-examples-rclpy-minimal-publisher +ros-jazzy-examples-rclpy-minimal-client +ros-jazzy-examples-rclpy-minimal-action-server +ros-jazzy-examples-rclpy-minimal-action-client +ros-jazzy-examples-rclpy-executors +ros-jazzy-examples-rclcpp-multithreaded-executor +ros-jazzy-examples-rclcpp-minimal-timer +ros-jazzy-examples-rclcpp-minimal-service +ros-jazzy-examples-rclcpp-minimal-publisher +ros-jazzy-examples-rclcpp-minimal-client +ros-jazzy-action-tutorials-py +ros-jazzy-launch-testing-ros +ros-jazzy-message-filters +ros-jazzy-ros2lifecycle-test-fixtures +ros-jazzy-rosbag2-storage +ros-jazzy-ros2multicast +ros-jazzy-tf2-ros-py +ros-jazzy-ros-gz-bridge +ros-jazzy-rqt-gui-py +ros-jazzy-ros-gz-sim +ros-jazzy-joy +ros-jazzy-turtlesim +ros-jazzy-topic-monitor +ros-jazzy-quality-of-service-demo-cpp +ros-jazzy-examples-rclcpp-minimal-subscriber +ros-jazzy-examples-rclcpp-minimal-composition +ros-jazzy-examples-rclcpp-minimal-action-server +ros-jazzy-examples-rclcpp-minimal-action-client +ros-jazzy-depthimage-to-laserscan +ros-jazzy-action-tutorials-cpp +ros-jazzy-ros2pkg +ros-jazzy-ros2service +ros-jazzy-ros2node +ros-jazzy-tf2-ros +ros-jazzy-ros2test +ros-jazzy-ros2topic +ros-jazzy-ros2interface +ros-jazzy-ros2doctor +ros-jazzy-ros2action +ros-jazzy-rosbag2-storage-sqlite3 +ros-jazzy-rosbag2-storage-mcap +ros-jazzy-point-cloud-transport +ros-jazzy-image-transport +ros-jazzy-rqt-plot +ros-jazzy-rqt-console +ros-jazzy-tf2-tools +ros-jazzy-teleop-twist-joy +ros-jazzy-rqt-shell +ros-jazzy-rqt-service-caller +ros-jazzy-rqt-py-console +ros-jazzy-rqt-publisher +ros-jazzy-rqt-graph +ros-jazzy-logging-demo +ros-jazzy-image-tools +ros-jazzy-demo-nodes-cpp-native +ros-jazzy-demo-nodes-cpp +ros-jazzy-composition +ros-jazzy-ros2run +ros-jazzy-ros2param +ros-jazzy-robot-state-publisher +ros-jazzy-ros-testing +ros-jazzy-ros2lifecycle +ros-jazzy-ros2launch +ros-jazzy-tf2-geometry-msgs +ros-jazzy-rosbag2-storage-default-plugins +ros-jazzy-tf2-kdl +ros-jazzy-tf2-eigen +ros-jazzy-tf2-sensor-msgs +ros-jazzy-rviz-common +ros-jazzy-zstd-image-transport +ros-jazzy-theora-image-transport +ros-jazzy-compressed-image-transport +ros-jazzy-compressed-depth-image-transport +ros-jazzy-ros-gz-image +ros-jazzy-rqt-topic +ros-jazzy-rqt-image-view +ros-jazzy-tf2-bullet +ros-jazzy-rqt-msg +ros-jazzy-rqt-reconfigure +ros-jazzy-sros2 +ros-jazzy-ros2component +ros-jazzy-rosbag2-cpp +ros-jazzy-rviz-visual-testing-framework +ros-jazzy-interactive-markers +ros-jazzy-image-transport-plugins +ros-jazzy-geometry2 +ros-jazzy-rqt-srv +ros-jazzy-rqt-action +ros-jazzy-lifecycle +ros-jazzy-dummy-robot-bringup +ros-jazzy-ros2cli-common-extensions +ros-jazzy-rosbag2-compression +ros-jazzy-rviz-default-plugins +ros-jazzy-sros2-cmake +ros-jazzy-rosbag2-compression-zstd +ros-jazzy-rviz2 +ros-jazzy-ros-core +ros-jazzy-rosbag2-transport +ros-jazzy-ros-gz-sim-demos +ros-jazzy-rosbag2-py +ros-jazzy-ros-gz +ros-jazzy-ros2bag +ros-jazzy-rqt-bag +ros-jazzy-rosbag2-tests +ros-jazzy-rosbag2 +ros-jazzy-rqt-bag-plugins +ros-jazzy-ros-base +ros-jazzy-rqt-common-plugins +ros-jazzy-desktop \ No newline at end of file diff --git a/deactivate.bat b/deactivate.bat new file mode 100755 index 00000000..6de79cca --- /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 100755 index 00000000..9db51e1c --- /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 100755 index 00000000..87d4d835 --- /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-jazzy-action-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-action-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-action-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-action-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-action-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-action-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-action-msgs/recipe.yaml b/recipes/ros-jazzy-action-msgs/recipe.yaml new file mode 100644 index 00000000..f276843f --- /dev/null +++ b/recipes/ros-jazzy-action-msgs/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-action-msgs + version: 2.0.2 +source: + git: https://github.com/ros2-gbp/rcl_interfaces-release.git + tag: release/jazzy/action_msgs/2.0.2-2 + target_directory: ros-jazzy-action-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-generators + - ros-jazzy-service-msgs + - ros-jazzy-unique-identifier-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-runtime + - ros-jazzy-service-msgs + - ros-jazzy-unique-identifier-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-action-tutorials-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-action-tutorials-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-action-tutorials-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-action-tutorials-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-action-tutorials-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-action-tutorials-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-action-tutorials-cpp/recipe.yaml b/recipes/ros-jazzy-action-tutorials-cpp/recipe.yaml new file mode 100644 index 00000000..7397a334 --- /dev/null +++ b/recipes/ros-jazzy-action-tutorials-cpp/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-action-tutorials-cpp + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/action_tutorials_cpp/0.33.5-1 + target_directory: ros-jazzy-action-tutorials-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-action-tutorials-interfaces + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-action-tutorials-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-action-tutorials-interfaces/bld_ament_cmake.bat b/recipes/ros-jazzy-action-tutorials-interfaces/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-action-tutorials-interfaces/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-action-tutorials-interfaces/build_ament_cmake.sh b/recipes/ros-jazzy-action-tutorials-interfaces/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-action-tutorials-interfaces/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-action-tutorials-interfaces/recipe.yaml b/recipes/ros-jazzy-action-tutorials-interfaces/recipe.yaml new file mode 100644 index 00000000..b369f3d4 --- /dev/null +++ b/recipes/ros-jazzy-action-tutorials-interfaces/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-action-tutorials-interfaces + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/action_tutorials_interfaces/0.33.5-1 + target_directory: ros-jazzy-action-tutorials-interfaces/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-action-tutorials-py/bld_ament_python.bat b/recipes/ros-jazzy-action-tutorials-py/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-action-tutorials-py/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-action-tutorials-py/build_ament_python.sh b/recipes/ros-jazzy-action-tutorials-py/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-action-tutorials-py/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-action-tutorials-py/recipe.yaml b/recipes/ros-jazzy-action-tutorials-py/recipe.yaml new file mode 100644 index 00000000..491876f7 --- /dev/null +++ b/recipes/ros-jazzy-action-tutorials-py/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-action-tutorials-py + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/action_tutorials_py/0.33.5-1 + target_directory: ros-jazzy-action-tutorials-py/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-action-tutorials-interfaces + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-action-tutorials-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-actionlib-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-actionlib-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-actionlib-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-actionlib-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-actionlib-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-actionlib-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-actionlib-msgs/recipe.yaml b/recipes/ros-jazzy-actionlib-msgs/recipe.yaml new file mode 100644 index 00000000..7d1aa3bf --- /dev/null +++ b/recipes/ros-jazzy-actionlib-msgs/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-actionlib-msgs + version: 5.3.5 +source: + git: https://github.com/ros2-gbp/common_interfaces-release.git + tag: release/jazzy/actionlib_msgs/5.3.5-1 + target_directory: ros-jazzy-actionlib-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-actuator-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-actuator-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-actuator-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-actuator-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-actuator-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-actuator-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-actuator-msgs/recipe.yaml b/recipes/ros-jazzy-actuator-msgs/recipe.yaml new file mode 100644 index 00000000..4b9f40c7 --- /dev/null +++ b/recipes/ros-jazzy-actuator-msgs/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-actuator-msgs + version: 0.0.1 +source: + git: https://github.com/ros2-gbp/actuator_msgs-release.git + tag: release/jazzy/actuator_msgs/0.0.1-4 + target_directory: ros-jazzy-actuator-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-clang-format/bld_ament_python.bat b/recipes/ros-jazzy-ament-clang-format/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-clang-format/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-clang-format/build_ament_python.sh b/recipes/ros-jazzy-ament-clang-format/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-clang-format/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-clang-format/recipe.yaml b/recipes/ros-jazzy-ament-clang-format/recipe.yaml new file mode 100644 index 00000000..a2934d78 --- /dev/null +++ b/recipes/ros-jazzy-ament-clang-format/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-clang-format + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_clang_format/0.17.1-1 + target_directory: ros-jazzy-ament-clang-format/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - clang-format + - python + - pyyaml + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-auto/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-auto/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-auto/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-auto/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-auto/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-auto/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-auto/recipe.yaml b/recipes/ros-jazzy-ament-cmake-auto/recipe.yaml new file mode 100644 index 00000000..c83a6ef7 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-auto/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-auto + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_auto/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-auto/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-clang-format/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-clang-format/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-clang-format/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-clang-format/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-clang-format/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-clang-format/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-clang-format/recipe.yaml b/recipes/ros-jazzy-ament-cmake-clang-format/recipe.yaml new file mode 100644 index 00000000..e2bc9f27 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-clang-format/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-clang-format + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_cmake_clang_format/0.17.1-1 + target_directory: ros-jazzy-ament-cmake-clang-format/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-clang-format + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-clang-format + - ros-jazzy-ament-cmake-test + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-copyright/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-copyright/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-copyright/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-copyright/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-copyright/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-copyright/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-copyright/recipe.yaml b/recipes/ros-jazzy-ament-cmake-copyright/recipe.yaml new file mode 100644 index 00000000..91c2c506 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-copyright/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-copyright + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_cmake_copyright/0.17.1-1 + target_directory: ros-jazzy-ament-cmake-copyright/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-copyright + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-copyright + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-core/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-core/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-core/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-core/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-core/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-core/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-core/recipe.yaml b/recipes/ros-jazzy-ament-cmake-core/recipe.yaml new file mode 100644 index 00000000..6d5a8e8f --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-core/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-core + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_core/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-core/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - catkin_pkg + - numpy + - pip + - python + - ros-jazzy-ament-package + - ros2-distro-mutex 0.6.* jazzy_* + run: + - catkin_pkg + - cmake + - python + - ros-jazzy-ament-package + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-cppcheck/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-cppcheck/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-cppcheck/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-cppcheck/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-cppcheck/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-cppcheck/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-cppcheck/recipe.yaml b/recipes/ros-jazzy-ament-cmake-cppcheck/recipe.yaml new file mode 100644 index 00000000..90f598e2 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-cppcheck/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-cppcheck + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_cmake_cppcheck/0.17.1-1 + target_directory: ros-jazzy-ament-cmake-cppcheck/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cppcheck + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cppcheck + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-cpplint/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-cpplint/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-cpplint/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-cpplint/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-cpplint/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-cpplint/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-cpplint/recipe.yaml b/recipes/ros-jazzy-ament-cmake-cpplint/recipe.yaml new file mode 100644 index 00000000..df6836ad --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-cpplint/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-cpplint + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_cmake_cpplint/0.17.1-1 + target_directory: ros-jazzy-ament-cmake-cpplint/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cpplint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cpplint + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-export-definitions/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-export-definitions/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-definitions/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-export-definitions/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-export-definitions/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-definitions/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-export-definitions/recipe.yaml b/recipes/ros-jazzy-ament-cmake-export-definitions/recipe.yaml new file mode 100644 index 00000000..f7fc15db --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-definitions/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-export-definitions + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_export_definitions/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-export-definitions/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-export-dependencies/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-export-dependencies/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-dependencies/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-export-dependencies/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-export-dependencies/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-dependencies/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-export-dependencies/recipe.yaml b/recipes/ros-jazzy-ament-cmake-export-dependencies/recipe.yaml new file mode 100644 index 00000000..c2ae041c --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-dependencies/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-export-dependencies + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_export_dependencies/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-export-dependencies/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-libraries + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-libraries + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-export-include-directories/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-export-include-directories/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-include-directories/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-export-include-directories/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-export-include-directories/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-include-directories/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-export-include-directories/recipe.yaml b/recipes/ros-jazzy-ament-cmake-export-include-directories/recipe.yaml new file mode 100644 index 00000000..1e542242 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-include-directories/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-export-include-directories + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_export_include_directories/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-export-include-directories/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-export-interfaces/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-export-interfaces/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-interfaces/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-export-interfaces/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-export-interfaces/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-interfaces/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-export-interfaces/recipe.yaml b/recipes/ros-jazzy-ament-cmake-export-interfaces/recipe.yaml new file mode 100644 index 00000000..3f4466d9 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-interfaces/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-export-interfaces + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_export_interfaces/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-export-interfaces/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-libraries + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-libraries + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-export-libraries/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-export-libraries/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-libraries/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-export-libraries/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-export-libraries/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-libraries/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-export-libraries/recipe.yaml b/recipes/ros-jazzy-ament-cmake-export-libraries/recipe.yaml new file mode 100644 index 00000000..bb01a8d1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-libraries/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-export-libraries + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_export_libraries/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-export-libraries/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-export-link-flags/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-export-link-flags/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-link-flags/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-export-link-flags/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-export-link-flags/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-link-flags/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-export-link-flags/recipe.yaml b/recipes/ros-jazzy-ament-cmake-export-link-flags/recipe.yaml new file mode 100644 index 00000000..397ad0e0 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-link-flags/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-export-link-flags + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_export_link_flags/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-export-link-flags/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-export-targets/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-export-targets/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-targets/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-export-targets/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-export-targets/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-targets/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-export-targets/recipe.yaml b/recipes/ros-jazzy-ament-cmake-export-targets/recipe.yaml new file mode 100644 index 00000000..69c8f2f8 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-export-targets/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-export-targets + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_export_targets/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-export-targets/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-libraries + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-libraries + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-flake8/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-flake8/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-flake8/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-flake8/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-flake8/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-flake8/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-flake8/recipe.yaml b/recipes/ros-jazzy-ament-cmake-flake8/recipe.yaml new file mode 100644 index 00000000..9dbe9afd --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-flake8/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-flake8 + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_cmake_flake8/0.17.1-1 + target_directory: ros-jazzy-ament-cmake-flake8/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-flake8 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-flake8 + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-gen-version-h/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-gen-version-h/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-gen-version-h/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-gen-version-h/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-gen-version-h/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-gen-version-h/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-gen-version-h/recipe.yaml b/recipes/ros-jazzy-ament-cmake-gen-version-h/recipe.yaml new file mode 100644 index 00000000..9515c902 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-gen-version-h/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-gen-version-h + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_gen_version_h/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-gen-version-h/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-package + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-gmock/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-gmock/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-gmock/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-gmock/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-gmock/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-gmock/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-gmock/recipe.yaml b/recipes/ros-jazzy-ament-cmake-gmock/recipe.yaml new file mode 100644 index 00000000..a12b92e4 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-gmock/recipe.yaml @@ -0,0 +1,92 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-gmock + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_gmock/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-gmock/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - gmock + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-test + - ros-jazzy-gmock-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - gmock + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-test + - ros-jazzy-gmock-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-google-benchmark/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-google-benchmark/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-google-benchmark/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-google-benchmark/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-google-benchmark/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-google-benchmark/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-google-benchmark/recipe.yaml b/recipes/ros-jazzy-ament-cmake-google-benchmark/recipe.yaml new file mode 100644 index 00000000..977bbd40 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-google-benchmark/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-google-benchmark + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_google_benchmark/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-google-benchmark/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-dependencies + - ros-jazzy-ament-cmake-python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-google-benchmark-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-gtest/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-gtest/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-gtest/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-gtest/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-gtest/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-gtest/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-gtest/recipe.yaml b/recipes/ros-jazzy-ament-cmake-gtest/recipe.yaml new file mode 100644 index 00000000..f64a1578 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-gtest/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-gtest + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_gtest/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-gtest/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - gtest + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-test + - ros-jazzy-gtest-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - gtest + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-gtest-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-include-directories/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-include-directories/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-include-directories/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-include-directories/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-include-directories/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-include-directories/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-include-directories/recipe.yaml b/recipes/ros-jazzy-ament-cmake-include-directories/recipe.yaml new file mode 100644 index 00000000..a6974126 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-include-directories/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-include-directories + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_include_directories/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-include-directories/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-libraries/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-libraries/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-libraries/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-libraries/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-libraries/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-libraries/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-libraries/recipe.yaml b/recipes/ros-jazzy-ament-cmake-libraries/recipe.yaml new file mode 100644 index 00000000..8f1c2ba7 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-libraries/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-libraries + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_libraries/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-libraries/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-lint-cmake/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-lint-cmake/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-lint-cmake/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-lint-cmake/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-lint-cmake/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-lint-cmake/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-lint-cmake/recipe.yaml b/recipes/ros-jazzy-ament-cmake-lint-cmake/recipe.yaml new file mode 100644 index 00000000..3c01c93d --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-lint-cmake/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-lint-cmake + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_cmake_lint_cmake/0.17.1-1 + target_directory: ros-jazzy-ament-cmake-lint-cmake/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-lint-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-lint-cmake + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-pep257/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-pep257/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-pep257/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-pep257/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-pep257/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-pep257/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-pep257/recipe.yaml b/recipes/ros-jazzy-ament-cmake-pep257/recipe.yaml new file mode 100644 index 00000000..9efdb123 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-pep257/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-pep257 + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_cmake_pep257/0.17.1-1 + target_directory: ros-jazzy-ament-cmake-pep257/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-pytest/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-pytest/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-pytest/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-pytest/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-pytest/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-pytest/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-pytest/recipe.yaml b/recipes/ros-jazzy-ament-cmake-pytest/recipe.yaml new file mode 100644 index 00000000..467c82a6 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-pytest/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-pytest + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_pytest/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-pytest/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-test + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - pytest + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-test + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-python/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-python/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-python/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-python/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-python/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-python/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-python/recipe.yaml b/recipes/ros-jazzy-ament-cmake-python/recipe.yaml new file mode 100644 index 00000000..4ff1ee4f --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-python/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-python + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_python/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-python/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-ros/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-ros/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-ros/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-ros/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-ros/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-ros/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-ros/recipe.yaml b/recipes/ros-jazzy-ament-cmake-ros/recipe.yaml new file mode 100644 index 00000000..42246313 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-ros/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-ros + version: 0.12.0 +source: + git: https://github.com/ros2-gbp/ament_cmake_ros-release.git + tag: release/jazzy/ament_cmake_ros/0.12.0-3 + target_directory: ros-jazzy-ament-cmake-ros/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-domain-coordinator + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-domain-coordinator + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-target-dependencies/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-target-dependencies/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-target-dependencies/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-target-dependencies/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-target-dependencies/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-target-dependencies/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-target-dependencies/recipe.yaml b/recipes/ros-jazzy-ament-cmake-target-dependencies/recipe.yaml new file mode 100644 index 00000000..26dc25a0 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-target-dependencies/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-target-dependencies + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_target_dependencies/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-target-dependencies/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-include-directories + - ros-jazzy-ament-cmake-libraries + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-include-directories + - ros-jazzy-ament-cmake-libraries + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-test/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-test/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-test/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-test/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-test/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-test/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-test/recipe.yaml b/recipes/ros-jazzy-ament-cmake-test/recipe.yaml new file mode 100644 index 00000000..05d9eadd --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-test/recipe.yaml @@ -0,0 +1,86 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-test + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_test/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-test/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-uncrustify/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-uncrustify/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-uncrustify/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-uncrustify/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-uncrustify/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-uncrustify/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-uncrustify/recipe.yaml b/recipes/ros-jazzy-ament-cmake-uncrustify/recipe.yaml new file mode 100644 index 00000000..b6acda71 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-uncrustify/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-uncrustify + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_cmake_uncrustify/0.17.1-1 + target_directory: ros-jazzy-ament-cmake-uncrustify/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-uncrustify + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-uncrustify + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-vendor-package/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-vendor-package/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-vendor-package/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-vendor-package/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-vendor-package/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-vendor-package/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-vendor-package/patch/ros-jazzy-ament-cmake-vendor-package.patch b/recipes/ros-jazzy-ament-cmake-vendor-package/patch/ros-jazzy-ament-cmake-vendor-package.patch new file mode 100644 index 00000000..4a02afd0 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-vendor-package/patch/ros-jazzy-ament-cmake-vendor-package.patch @@ -0,0 +1,64 @@ +diff --git a/cmake/ament_vendor.cmake b/cmake/ament_vendor.cmake +index c9b963cd0..d23ff2aa2 100644 +--- a/cmake/ament_vendor.cmake ++++ b/cmake/ament_vendor.cmake +@@ -49,6 +49,14 @@ + # projects. + # :type GLOBAL_HOOK: option + # ++# Beside CMake macro options, the macro is also influenced by the following two ++# CMake options, that can be set at the CMake invocation for the project that ++# uses ament_vendor() macro: ++# * `FORCE_BUILD_VENDOR_PKG`: If ON build vendor packages from source, even if ++# system-installed packages are available ++# * `AMENT_VENDOR_NEVER_VENDOR`: If ON, raise an error if SATISFIED argument is ++# not true instead of building the vendored package ++# + # @public + # + macro(ament_vendor TARGET_NAME) +@@ -97,6 +105,18 @@ macro(ament_vendor TARGET_NAME) + "Build vendor packages from source, even if system-installed packages are available" + OFF) + ++ option(AMENT_VENDOR_NEVER_VENDOR ++ "If ON, raise an error if SATISFIED argument is not true instead of building the vendored package" ++ OFF) ++ ++ if(FORCE_BUILD_VENDOR_PKG AND AMENT_VENDOR_NEVER_VENDOR) ++ message(FATAL_ERROR "ament_vendor() cannot have both FORCE_BUILD_VENDOR_PKG and AMENT_VENDOR_NEVER_VENDOR options enabled") ++ endif() ++ ++ if(NOT _ARG_SATISFIED AND AMENT_VENDOR_NEVER_VENDOR) ++ message(FATAL_ERROR "ament_vendor() SATISFIED option is OFF and AMENT_VENDOR_NEVER_VENDOR is ON") ++ endif() ++ + if(NOT _ARG_SATISFIED OR FORCE_BUILD_VENDOR_PKG) + if(_ARG_SATISFIED) + message(STATUS "Forcing vendor package build for '${TARGET_NAME}', which is already satisfied") +@@ -245,6 +245,10 @@ function(_ament_vendor TARGET_NAME VCS_TYPE VCS_URL VCS_VERSION PATCHES CMAKE_AR + set(CMAKE_ARGS_CONTENT "${CMAKE_ARGS_CONTENT}\nset(CMAKE_MODULE_PATH [=[${CMAKE_MODULE_PATH}]=] CACHE INTERNAL \"\")") + endif() + ++ if(DEFINED CMAKE_IGNORE_PREFIX_PATH) ++ set(CMAKE_ARGS_CONTENT "${CMAKE_ARGS_CONTENT}\nset(CMAKE_IGNORE_PREFIX_PATH [=[${CMAKE_IGNORE_PREFIX_PATH}]=] CACHE INTERNAL \"\")") ++ endif() ++ + list(PREPEND CMAKE_PREFIX_PATH ${_AMENT_CMAKE_VENDOR_PACKAGE_PREFIX_PATH}) + set(CMAKE_ARGS_CONTENT "${CMAKE_ARGS_CONTENT}\nset(CMAKE_PREFIX_PATH [=[${CMAKE_PREFIX_PATH}]=] CACHE INTERNAL \"\")") + +@@ -256,6 +260,14 @@ function(_ament_vendor TARGET_NAME VCS_TYPE VCS_URL VCS_VERSION PATCHES CMAKE_AR + set(CMAKE_ARGS_CONTENT "${CMAKE_ARGS_CONTENT}\nset(BUILD_SHARED_LIBS ON CACHE BOOL \"\")") + endif() + ++ if(DEFINED Python_EXECUTABLE) ++ set(CMAKE_ARGS_CONTENT "${CMAKE_ARGS_CONTENT}\nset(Python_EXECUTABLE [=[${Python_EXECUTABLE}]=] CACHE INTERNAL \"\")") ++ endif() ++ ++ if(DEFINED Python3_EXECUTABLE) ++ set(CMAKE_ARGS_CONTENT "${CMAKE_ARGS_CONTENT}\nset(Python3_EXECUTABLE [=[${Python3_EXECUTABLE}]=] CACHE INTERNAL \"\")") ++ endif() ++ + file(GENERATE OUTPUT "${CMAKE_ARGS_FILE}" CONTENT "${CMAKE_ARGS_CONTENT}") + list(PREPEND CMAKE_ARGS "-C${CMAKE_ARGS_FILE}") + diff --git a/recipes/ros-jazzy-ament-cmake-vendor-package/recipe.yaml b/recipes/ros-jazzy-ament-cmake-vendor-package/recipe.yaml new file mode 100644 index 00000000..717fb187 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-vendor-package/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-vendor-package + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_vendor_package/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-vendor-package/src/work + patches: + - patch/ros-jazzy-ament-cmake-vendor-package.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-dependencies + - ros-jazzy-ament-cmake-test + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - vcstool + run: + - git + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-dependencies + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - vcstool + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-version/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-version/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-version/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-version/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-version/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-version/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-version/recipe.yaml b/recipes/ros-jazzy-ament-cmake-version/recipe.yaml new file mode 100644 index 00000000..4c63c0d5 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-version/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-version + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake_version/2.5.3-1 + target_directory: ros-jazzy-ament-cmake-version/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-xmllint/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-xmllint/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-xmllint/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake-xmllint/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-xmllint/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-xmllint/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake-xmllint/recipe.yaml b/recipes/ros-jazzy-ament-cmake-xmllint/recipe.yaml new file mode 100644 index 00000000..2af0e9f4 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-xmllint/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake-xmllint + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_cmake_xmllint/0.17.1-1 + target_directory: ros-jazzy-ament-cmake-xmllint/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cmake/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-cmake/recipe.yaml b/recipes/ros-jazzy-ament-cmake/recipe.yaml new file mode 100644 index 00000000..3cccc236 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake/recipe.yaml @@ -0,0 +1,112 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cmake + version: 2.5.3 +source: + git: https://github.com/ros2-gbp/ament_cmake-release.git + tag: release/jazzy/ament_cmake/2.5.3-1 + target_directory: ros-jazzy-ament-cmake/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-definitions + - ros-jazzy-ament-cmake-export-dependencies + - ros-jazzy-ament-cmake-export-include-directories + - ros-jazzy-ament-cmake-export-interfaces + - ros-jazzy-ament-cmake-export-libraries + - ros-jazzy-ament-cmake-export-link-flags + - ros-jazzy-ament-cmake-export-targets + - ros-jazzy-ament-cmake-gen-version-h + - ros-jazzy-ament-cmake-libraries + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-cmake-target-dependencies + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-version + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - cmake + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-definitions + - ros-jazzy-ament-cmake-export-dependencies + - ros-jazzy-ament-cmake-export-include-directories + - ros-jazzy-ament-cmake-export-interfaces + - ros-jazzy-ament-cmake-export-libraries + - ros-jazzy-ament-cmake-export-link-flags + - ros-jazzy-ament-cmake-export-targets + - ros-jazzy-ament-cmake-gen-version-h + - ros-jazzy-ament-cmake-libraries + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-cmake-target-dependencies + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-version + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-copyright/bld_ament_python.bat b/recipes/ros-jazzy-ament-copyright/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-copyright/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-copyright/build_ament_python.sh b/recipes/ros-jazzy-ament-copyright/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-copyright/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-copyright/recipe.yaml b/recipes/ros-jazzy-ament-copyright/recipe.yaml new file mode 100644 index 00000000..8ea033ea --- /dev/null +++ b/recipes/ros-jazzy-ament-copyright/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-copyright + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_copyright/0.17.1-1 + target_directory: ros-jazzy-ament-copyright/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - importlib-metadata + - python + - ros-jazzy-ament-lint + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cppcheck/bld_ament_python.bat b/recipes/ros-jazzy-ament-cppcheck/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-cppcheck/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cppcheck/build_ament_python.sh b/recipes/ros-jazzy-ament-cppcheck/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-cppcheck/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-cppcheck/recipe.yaml b/recipes/ros-jazzy-ament-cppcheck/recipe.yaml new file mode 100644 index 00000000..5312993f --- /dev/null +++ b/recipes/ros-jazzy-ament-cppcheck/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cppcheck + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_cppcheck/0.17.1-1 + target_directory: ros-jazzy-ament-cppcheck/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-pycodestyle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - cppcheck + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cpplint/bld_ament_python.bat b/recipes/ros-jazzy-ament-cpplint/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-cpplint/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-cpplint/build_ament_python.sh b/recipes/ros-jazzy-ament-cpplint/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-cpplint/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-cpplint/recipe.yaml b/recipes/ros-jazzy-ament-cpplint/recipe.yaml new file mode 100644 index 00000000..2d3a2f94 --- /dev/null +++ b/recipes/ros-jazzy-ament-cpplint/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-cpplint + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_cpplint/0.17.1-1 + target_directory: ros-jazzy-ament-cpplint/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} +tests: + - script: + - ament_cpplint --help diff --git a/recipes/ros-jazzy-ament-flake8/bld_ament_python.bat b/recipes/ros-jazzy-ament-flake8/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-flake8/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-flake8/build_ament_python.sh b/recipes/ros-jazzy-ament-flake8/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-flake8/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-flake8/recipe.yaml b/recipes/ros-jazzy-ament-flake8/recipe.yaml new file mode 100644 index 00000000..cd7d37e1 --- /dev/null +++ b/recipes/ros-jazzy-ament-flake8/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-flake8 + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_flake8/0.17.1-1 + target_directory: ros-jazzy-ament-flake8/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - flake8 + - flake8-builtins + - flake8-comprehensions + - flake8-docstrings + - flake8-import-order + - flake8-quotes + - python + - ros-jazzy-ament-lint + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-index-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-index-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-index-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-index-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-ament-index-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-index-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-index-cpp/recipe.yaml b/recipes/ros-jazzy-ament-index-cpp/recipe.yaml new file mode 100644 index 00000000..095aaa7c --- /dev/null +++ b/recipes/ros-jazzy-ament-index-cpp/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-index-cpp + version: 1.8.1 +source: + git: https://github.com/ros2-gbp/ament_index-release.git + tag: release/jazzy/ament_index_cpp/1.8.1-1 + target_directory: ros-jazzy-ament-index-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-index-python/bld_ament_python.bat b/recipes/ros-jazzy-ament-index-python/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-index-python/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-index-python/build_ament_python.sh b/recipes/ros-jazzy-ament-index-python/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-index-python/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-index-python/recipe.yaml b/recipes/ros-jazzy-ament-index-python/recipe.yaml new file mode 100644 index 00000000..e7aa4970 --- /dev/null +++ b/recipes/ros-jazzy-ament-index-python/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-index-python + version: 1.8.1 +source: + git: https://github.com/ros2-gbp/ament_index-release.git + tag: release/jazzy/ament_index_python/1.8.1-1 + target_directory: ros-jazzy-ament-index-python/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-lint-auto/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-lint-auto/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-lint-auto/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-lint-auto/build_ament_cmake.sh b/recipes/ros-jazzy-ament-lint-auto/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-lint-auto/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-lint-auto/recipe.yaml b/recipes/ros-jazzy-ament-lint-auto/recipe.yaml new file mode 100644 index 00000000..ec81e1e0 --- /dev/null +++ b/recipes/ros-jazzy-ament-lint-auto/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-lint-auto + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_lint_auto/0.17.1-1 + target_directory: ros-jazzy-ament-lint-auto/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-test + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-test + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-lint-cmake/bld_ament_python.bat b/recipes/ros-jazzy-ament-lint-cmake/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-lint-cmake/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-lint-cmake/build_ament_python.sh b/recipes/ros-jazzy-ament-lint-cmake/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-lint-cmake/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-lint-cmake/recipe.yaml b/recipes/ros-jazzy-ament-lint-cmake/recipe.yaml new file mode 100644 index 00000000..bde2d49d --- /dev/null +++ b/recipes/ros-jazzy-ament-lint-cmake/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-lint-cmake + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_lint_cmake/0.17.1-1 + target_directory: ros-jazzy-ament-lint-cmake/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} +tests: + - script: + - ament_lint_cmake --help diff --git a/recipes/ros-jazzy-ament-lint-common/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-lint-common/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-lint-common/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-lint-common/build_ament_cmake.sh b/recipes/ros-jazzy-ament-lint-common/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-lint-common/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ament-lint-common/recipe.yaml b/recipes/ros-jazzy-ament-lint-common/recipe.yaml new file mode 100644 index 00000000..76795fef --- /dev/null +++ b/recipes/ros-jazzy-ament-lint-common/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-lint-common + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_lint_common/0.17.1-1 + target_directory: ros-jazzy-ament-lint-common/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-dependencies + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-cppcheck + - ros-jazzy-ament-cmake-cpplint + - ros-jazzy-ament-cmake-flake8 + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-pep257 + - ros-jazzy-ament-cmake-uncrustify + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-lint/bld_ament_python.bat b/recipes/ros-jazzy-ament-lint/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-lint/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-lint/build_ament_python.sh b/recipes/ros-jazzy-ament-lint/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-lint/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-lint/recipe.yaml b/recipes/ros-jazzy-ament-lint/recipe.yaml new file mode 100644 index 00000000..95eafd77 --- /dev/null +++ b/recipes/ros-jazzy-ament-lint/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-lint + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_lint/0.17.1-1 + target_directory: ros-jazzy-ament-lint/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-mypy/bld_ament_python.bat b/recipes/ros-jazzy-ament-mypy/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-mypy/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-mypy/build_ament_python.sh b/recipes/ros-jazzy-ament-mypy/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-mypy/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-mypy/recipe.yaml b/recipes/ros-jazzy-ament-mypy/recipe.yaml new file mode 100644 index 00000000..f33c7bed --- /dev/null +++ b/recipes/ros-jazzy-ament-mypy/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-mypy + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_mypy/0.17.1-1 + target_directory: ros-jazzy-ament-mypy/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-mock + - python + - ros-jazzy-ament-flake8 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - mypy + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-package/bld_ament_python.bat b/recipes/ros-jazzy-ament-package/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-package/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-package/build_ament_python.sh b/recipes/ros-jazzy-ament-package/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-package/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-package/recipe.yaml b/recipes/ros-jazzy-ament-package/recipe.yaml new file mode 100644 index 00000000..706f44ac --- /dev/null +++ b/recipes/ros-jazzy-ament-package/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-package + version: 0.16.3 +source: + git: https://github.com/ros2-gbp/ament_package-release.git + tag: release/jazzy/ament_package/0.16.3-3 + target_directory: ros-jazzy-ament-package/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - flake8 + - importlib_resources + - numpy + - pip + - pytest + - python + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - importlib-metadata + - importlib_resources + - python + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-pep257/bld_ament_python.bat b/recipes/ros-jazzy-ament-pep257/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-pep257/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-pep257/build_ament_python.sh b/recipes/ros-jazzy-ament-pep257/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-pep257/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-pep257/recipe.yaml b/recipes/ros-jazzy-ament-pep257/recipe.yaml new file mode 100644 index 00000000..9ea36200 --- /dev/null +++ b/recipes/ros-jazzy-ament-pep257/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-pep257 + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_pep257/0.17.1-1 + target_directory: ros-jazzy-ament-pep257/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-flake8 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - pydocstyle + - python + - ros-jazzy-ament-lint + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-pycodestyle/bld_ament_python.bat b/recipes/ros-jazzy-ament-pycodestyle/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-pycodestyle/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-pycodestyle/build_ament_python.sh b/recipes/ros-jazzy-ament-pycodestyle/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-pycodestyle/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-pycodestyle/recipe.yaml b/recipes/ros-jazzy-ament-pycodestyle/recipe.yaml new file mode 100644 index 00000000..0f1d0296 --- /dev/null +++ b/recipes/ros-jazzy-ament-pycodestyle/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-pycodestyle + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_pycodestyle/0.17.1-1 + target_directory: ros-jazzy-ament-pycodestyle/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - pycodestyle + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-uncrustify/bld_ament_python.bat b/recipes/ros-jazzy-ament-uncrustify/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-uncrustify/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-uncrustify/build_ament_python.sh b/recipes/ros-jazzy-ament-uncrustify/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-uncrustify/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-uncrustify/recipe.yaml b/recipes/ros-jazzy-ament-uncrustify/recipe.yaml new file mode 100644 index 00000000..7f24c1ab --- /dev/null +++ b/recipes/ros-jazzy-ament-uncrustify/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-uncrustify + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_uncrustify/0.17.1-1 + target_directory: ros-jazzy-ament-uncrustify/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-pycodestyle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-uncrustify-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-xmllint/bld_ament_python.bat b/recipes/ros-jazzy-ament-xmllint/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ament-xmllint/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ament-xmllint/build_ament_python.sh b/recipes/ros-jazzy-ament-xmllint/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ament-xmllint/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ament-xmllint/recipe.yaml b/recipes/ros-jazzy-ament-xmllint/recipe.yaml new file mode 100644 index 00000000..b3d38318 --- /dev/null +++ b/recipes/ros-jazzy-ament-xmllint/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ament-xmllint + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_xmllint/0.17.1-1 + target_directory: ros-jazzy-ament-xmllint/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - libxml2 + - python + - ros-jazzy-ament-lint + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} +tests: + - script: + - ament_xmllint --help diff --git a/recipes/ros-jazzy-angles/bld_ament_cmake.bat b/recipes/ros-jazzy-angles/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-angles/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-angles/build_ament_cmake.sh b/recipes/ros-jazzy-angles/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-angles/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-angles/recipe.yaml b/recipes/ros-jazzy-angles/recipe.yaml new file mode 100644 index 00000000..d7f1c3ff --- /dev/null +++ b/recipes/ros-jazzy-angles/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-angles + version: 1.16.0 +source: + git: https://github.com/ros2-gbp/angles-release.git + tag: release/jazzy/angles/1.16.0-5 + target_directory: ros-jazzy-angles/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-builtin-interfaces/bld_ament_cmake.bat b/recipes/ros-jazzy-builtin-interfaces/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-builtin-interfaces/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-builtin-interfaces/build_ament_cmake.sh b/recipes/ros-jazzy-builtin-interfaces/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-builtin-interfaces/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-builtin-interfaces/recipe.yaml b/recipes/ros-jazzy-builtin-interfaces/recipe.yaml new file mode 100644 index 00000000..f4861d9b --- /dev/null +++ b/recipes/ros-jazzy-builtin-interfaces/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-builtin-interfaces + version: 2.0.2 +source: + git: https://github.com/ros2-gbp/rcl_interfaces-release.git + tag: release/jazzy/builtin_interfaces/2.0.2-2 + target_directory: ros-jazzy-builtin-interfaces/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-class-loader/bld_ament_cmake.bat b/recipes/ros-jazzy-class-loader/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-class-loader/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-class-loader/build_ament_cmake.sh b/recipes/ros-jazzy-class-loader/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-class-loader/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-class-loader/recipe.yaml b/recipes/ros-jazzy-class-loader/recipe.yaml new file mode 100644 index 00000000..423798a9 --- /dev/null +++ b/recipes/ros-jazzy-class-loader/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-class-loader + version: 2.7.0 +source: + git: https://github.com/ros2-gbp/class_loader-release.git + tag: release/jazzy/class_loader/2.7.0-3 + target_directory: ros-jazzy-class-loader/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - console_bridge + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-console-bridge-vendor + - ros-jazzy-rcpputils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - console_bridge + - python + - ros-jazzy-console-bridge-vendor + - ros-jazzy-rcpputils + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-common-interfaces/bld_ament_cmake.bat b/recipes/ros-jazzy-common-interfaces/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-common-interfaces/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-common-interfaces/build_ament_cmake.sh b/recipes/ros-jazzy-common-interfaces/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-common-interfaces/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-common-interfaces/recipe.yaml b/recipes/ros-jazzy-common-interfaces/recipe.yaml new file mode 100644 index 00000000..88abda2d --- /dev/null +++ b/recipes/ros-jazzy-common-interfaces/recipe.yaml @@ -0,0 +1,98 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-common-interfaces + version: 5.3.5 +source: + git: https://github.com/ros2-gbp/common_interfaces-release.git + tag: release/jazzy/common_interfaces/5.3.5-1 + target_directory: ros-jazzy-common-interfaces/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-actionlib-msgs + - ros-jazzy-builtin-interfaces + - ros-jazzy-diagnostic-msgs + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-shape-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-stereo-msgs + - ros-jazzy-trajectory-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-composition-interfaces/bld_ament_cmake.bat b/recipes/ros-jazzy-composition-interfaces/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-composition-interfaces/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-composition-interfaces/build_ament_cmake.sh b/recipes/ros-jazzy-composition-interfaces/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-composition-interfaces/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-composition-interfaces/recipe.yaml b/recipes/ros-jazzy-composition-interfaces/recipe.yaml new file mode 100644 index 00000000..abfad0ef --- /dev/null +++ b/recipes/ros-jazzy-composition-interfaces/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-composition-interfaces + version: 2.0.2 +source: + git: https://github.com/ros2-gbp/rcl_interfaces-release.git + tag: release/jazzy/composition_interfaces/2.0.2-2 + target_directory: ros-jazzy-composition-interfaces/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-rcl-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rcl-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-composition/bld_ament_cmake.bat b/recipes/ros-jazzy-composition/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-composition/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-composition/build_ament_cmake.sh b/recipes/ros-jazzy-composition/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-composition/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-composition/recipe.yaml b/recipes/ros-jazzy-composition/recipe.yaml new file mode 100644 index 00000000..a3acf211 --- /dev/null +++ b/recipes/ros-jazzy-composition/recipe.yaml @@ -0,0 +1,103 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-composition + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/composition/0.33.5-1 + target_directory: ros-jazzy-composition/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-example-interfaces + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-launch-testing-ros + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcutils + - ros-jazzy-rmw-implementation-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-launch-ros + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-compressed-depth-image-transport/bld_ament_cmake.bat b/recipes/ros-jazzy-compressed-depth-image-transport/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-compressed-depth-image-transport/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-compressed-depth-image-transport/build_ament_cmake.sh b/recipes/ros-jazzy-compressed-depth-image-transport/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-compressed-depth-image-transport/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-compressed-depth-image-transport/recipe.yaml b/recipes/ros-jazzy-compressed-depth-image-transport/recipe.yaml new file mode 100644 index 00000000..626c4dc5 --- /dev/null +++ b/recipes/ros-jazzy-compressed-depth-image-transport/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-compressed-depth-image-transport + version: 4.0.3 +source: + git: https://github.com/ros2-gbp/image_transport_plugins-release.git + tag: release/jazzy/compressed_depth_image_transport/4.0.3-1 + target_directory: ros-jazzy-compressed-depth-image-transport/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-compressed-image-transport/bld_ament_cmake.bat b/recipes/ros-jazzy-compressed-image-transport/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-compressed-image-transport/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-compressed-image-transport/build_ament_cmake.sh b/recipes/ros-jazzy-compressed-image-transport/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-compressed-image-transport/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-compressed-image-transport/recipe.yaml b/recipes/ros-jazzy-compressed-image-transport/recipe.yaml new file mode 100644 index 00000000..bf2b282e --- /dev/null +++ b/recipes/ros-jazzy-compressed-image-transport/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-compressed-image-transport + version: 4.0.3 +source: + git: https://github.com/ros2-gbp/image_transport_plugins-release.git + tag: release/jazzy/compressed_image_transport/4.0.3-1 + target_directory: ros-jazzy-compressed-image-transport/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-console-bridge-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-console-bridge-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-console-bridge-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-console-bridge-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-console-bridge-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-console-bridge-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-console-bridge-vendor/recipe.yaml b/recipes/ros-jazzy-console-bridge-vendor/recipe.yaml new file mode 100644 index 00000000..b311f074 --- /dev/null +++ b/recipes/ros-jazzy-console-bridge-vendor/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-console-bridge-vendor + version: 1.7.1 +source: + git: https://github.com/ros2-gbp/console_bridge_vendor-release.git + tag: release/jazzy/console_bridge_vendor/1.7.1-3 + target_directory: ros-jazzy-console-bridge-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - console_bridge + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-performance-test-fixture + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - console_bridge + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-cv-bridge/bld_ament_cmake.bat b/recipes/ros-jazzy-cv-bridge/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-cv-bridge/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-cv-bridge/build_ament_cmake.sh b/recipes/ros-jazzy-cv-bridge/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-cv-bridge/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-cv-bridge/recipe.yaml b/recipes/ros-jazzy-cv-bridge/recipe.yaml new file mode 100644 index 00000000..9865c2bd --- /dev/null +++ b/recipes/ros-jazzy-cv-bridge/recipe.yaml @@ -0,0 +1,116 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-cv-bridge + version: 4.1.0 +source: + git: https://github.com/ros2-gbp/vision_opencv-release.git + tag: release/jazzy/cv_bridge/4.1.0-1 + target_directory: ros-jazzy-cv-bridge/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - libboost-devel + - libboost-python-devel + - libopencv + - numpy + - pip + - py-opencv + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-python-cmake-module + - ros-jazzy-rclcpp + - ros-jazzy-rcpputils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - libboost-python + - libopencv + - numpy + - py-opencv + - python + - ros-jazzy-ament-index-python + - ros-jazzy-rclcpp + - ros-jazzy-rcpputils + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-cyclonedds/bld_catkin.bat b/recipes/ros-jazzy-cyclonedds/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-cyclonedds/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-cyclonedds/build_catkin.sh b/recipes/ros-jazzy-cyclonedds/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/recipes/ros-jazzy-cyclonedds/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-cyclonedds/recipe.yaml b/recipes/ros-jazzy-cyclonedds/recipe.yaml new file mode 100644 index 00000000..4b121cd9 --- /dev/null +++ b/recipes/ros-jazzy-cyclonedds/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-cyclonedds + version: 0.10.5 +source: + git: https://github.com/ros2-gbp/cyclonedds-release.git + tag: release/jazzy/cyclonedds/0.10.5-1 + target_directory: ros-jazzy-cyclonedds/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - ros-jazzy-cyclonedds + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - openssl + - pip + - python + - ros-jazzy-iceoryx-binding-c + - ros-jazzy-iceoryx-hoofs + - ros-jazzy-iceoryx-posh + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - openssl + - python + - ros-jazzy-iceoryx-binding-c + - ros-jazzy-iceoryx-hoofs + - ros-jazzy-iceoryx-posh + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-demo-nodes-cpp-native/bld_ament_cmake.bat b/recipes/ros-jazzy-demo-nodes-cpp-native/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-demo-nodes-cpp-native/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-demo-nodes-cpp-native/build_ament_cmake.sh b/recipes/ros-jazzy-demo-nodes-cpp-native/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-demo-nodes-cpp-native/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-demo-nodes-cpp-native/recipe.yaml b/recipes/ros-jazzy-demo-nodes-cpp-native/recipe.yaml new file mode 100644 index 00000000..93d9596d --- /dev/null +++ b/recipes/ros-jazzy-demo-nodes-cpp-native/recipe.yaml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-demo-nodes-cpp-native + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/demo_nodes_cpp_native/0.33.5-1 + target_directory: ros-jazzy-demo-nodes-cpp-native/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-launch-testing-ros + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rmw-fastrtps-cpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rmw-fastrtps-cpp + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-demo-nodes-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-demo-nodes-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-demo-nodes-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-demo-nodes-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-demo-nodes-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-demo-nodes-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-demo-nodes-cpp/recipe.yaml b/recipes/ros-jazzy-demo-nodes-cpp/recipe.yaml new file mode 100644 index 00000000..83507ce4 --- /dev/null +++ b/recipes/ros-jazzy-demo-nodes-cpp/recipe.yaml @@ -0,0 +1,111 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-demo-nodes-cpp + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/demo_nodes_cpp/0.33.5-1 + target_directory: ros-jazzy-demo-nodes-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-example-interfaces + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-launch-testing-ros + - ros-jazzy-rcl + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-launch-ros + - ros-jazzy-launch-xml + - ros-jazzy-rcl + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-demo-nodes-py/bld_ament_python.bat b/recipes/ros-jazzy-demo-nodes-py/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-demo-nodes-py/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-demo-nodes-py/build_ament_python.sh b/recipes/ros-jazzy-demo-nodes-py/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-demo-nodes-py/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-demo-nodes-py/recipe.yaml b/recipes/ros-jazzy-demo-nodes-py/recipe.yaml new file mode 100644 index 00000000..5e7f91c1 --- /dev/null +++ b/recipes/ros-jazzy-demo-nodes-py/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-demo-nodes-py + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/demo_nodes_py/0.33.5-1 + target_directory: ros-jazzy-demo-nodes-py/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ament-index-python + - ros-jazzy-example-interfaces + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-depthimage-to-laserscan/bld_ament_cmake.bat b/recipes/ros-jazzy-depthimage-to-laserscan/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-depthimage-to-laserscan/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-depthimage-to-laserscan/build_ament_cmake.sh b/recipes/ros-jazzy-depthimage-to-laserscan/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-depthimage-to-laserscan/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-depthimage-to-laserscan/recipe.yaml b/recipes/ros-jazzy-depthimage-to-laserscan/recipe.yaml new file mode 100644 index 00000000..499b174f --- /dev/null +++ b/recipes/ros-jazzy-depthimage-to-laserscan/recipe.yaml @@ -0,0 +1,111 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-depthimage-to-laserscan + version: 2.5.1 +source: + git: https://github.com/ros2-gbp/depthimage_to_laserscan-release.git + tag: release/jazzy/depthimage_to_laserscan/2.5.1-3 + target_directory: ros-jazzy-depthimage-to-laserscan/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - libopencv + - numpy + - pip + - py-opencv + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-image-geometry + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - libopencv + - py-opencv + - python + - ros-jazzy-image-geometry + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-desktop/bld_ament_cmake.bat b/recipes/ros-jazzy-desktop/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-desktop/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-desktop/build_ament_cmake.sh b/recipes/ros-jazzy-desktop/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-desktop/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-desktop/recipe.yaml b/recipes/ros-jazzy-desktop/recipe.yaml new file mode 100644 index 00000000..f711483f --- /dev/null +++ b/recipes/ros-jazzy-desktop/recipe.yaml @@ -0,0 +1,128 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-desktop + version: 0.11.0 +source: + git: https://github.com/ros2-gbp/variants-release.git + tag: release/jazzy/desktop/0.11.0-1 + target_directory: ros-jazzy-desktop/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-action-tutorials-cpp + - ros-jazzy-action-tutorials-interfaces + - ros-jazzy-action-tutorials-py + - ros-jazzy-angles + - ros-jazzy-composition + - ros-jazzy-demo-nodes-cpp + - ros-jazzy-demo-nodes-cpp-native + - ros-jazzy-demo-nodes-py + - ros-jazzy-depthimage-to-laserscan + - ros-jazzy-dummy-map-server + - ros-jazzy-dummy-robot-bringup + - ros-jazzy-dummy-sensors + - ros-jazzy-examples-rclcpp-minimal-action-client + - ros-jazzy-examples-rclcpp-minimal-action-server + - ros-jazzy-examples-rclcpp-minimal-client + - ros-jazzy-examples-rclcpp-minimal-composition + - ros-jazzy-examples-rclcpp-minimal-publisher + - ros-jazzy-examples-rclcpp-minimal-service + - ros-jazzy-examples-rclcpp-minimal-subscriber + - ros-jazzy-examples-rclcpp-minimal-timer + - ros-jazzy-examples-rclcpp-multithreaded-executor + - ros-jazzy-examples-rclpy-executors + - ros-jazzy-examples-rclpy-minimal-action-client + - ros-jazzy-examples-rclpy-minimal-action-server + - ros-jazzy-examples-rclpy-minimal-client + - ros-jazzy-examples-rclpy-minimal-publisher + - ros-jazzy-examples-rclpy-minimal-service + - ros-jazzy-examples-rclpy-minimal-subscriber + - ros-jazzy-image-tools + - ros-jazzy-intra-process-demo + - ros-jazzy-joy + - ros-jazzy-lifecycle + - ros-jazzy-logging-demo + - ros-jazzy-pendulum-msgs + - ros-jazzy-quality-of-service-demo-cpp + - ros-jazzy-quality-of-service-demo-py + - ros-jazzy-ros-base + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-common-plugins + - ros-jazzy-rviz-default-plugins + - ros-jazzy-rviz2 + - ros-jazzy-teleop-twist-joy + - ros-jazzy-teleop-twist-keyboard + - ros-jazzy-topic-monitor + - ros-jazzy-turtlesim + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-diagnostic-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-diagnostic-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-diagnostic-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-diagnostic-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-diagnostic-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-diagnostic-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-diagnostic-msgs/recipe.yaml b/recipes/ros-jazzy-diagnostic-msgs/recipe.yaml new file mode 100644 index 00000000..2b2d6084 --- /dev/null +++ b/recipes/ros-jazzy-diagnostic-msgs/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-diagnostic-msgs + version: 5.3.5 +source: + git: https://github.com/ros2-gbp/common_interfaces-release.git + tag: release/jazzy/diagnostic_msgs/5.3.5-1 + target_directory: ros-jazzy-diagnostic-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-domain-coordinator/bld_ament_python.bat b/recipes/ros-jazzy-domain-coordinator/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-domain-coordinator/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-domain-coordinator/build_ament_python.sh b/recipes/ros-jazzy-domain-coordinator/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-domain-coordinator/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-domain-coordinator/recipe.yaml b/recipes/ros-jazzy-domain-coordinator/recipe.yaml new file mode 100644 index 00000000..d951f15a --- /dev/null +++ b/recipes/ros-jazzy-domain-coordinator/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-domain-coordinator + version: 0.12.0 +source: + git: https://github.com/ros2-gbp/ament_cmake_ros-release.git + tag: release/jazzy/domain_coordinator/0.12.0-3 + target_directory: ros-jazzy-domain-coordinator/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-dummy-map-server/bld_ament_cmake.bat b/recipes/ros-jazzy-dummy-map-server/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-dummy-map-server/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-dummy-map-server/build_ament_cmake.sh b/recipes/ros-jazzy-dummy-map-server/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-dummy-map-server/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-dummy-map-server/recipe.yaml b/recipes/ros-jazzy-dummy-map-server/recipe.yaml new file mode 100644 index 00000000..c034d2ce --- /dev/null +++ b/recipes/ros-jazzy-dummy-map-server/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-dummy-map-server + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/dummy_map_server/0.33.5-1 + target_directory: ros-jazzy-dummy-map-server/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-nav-msgs + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-nav-msgs + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-dummy-robot-bringup/bld_ament_cmake.bat b/recipes/ros-jazzy-dummy-robot-bringup/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-dummy-robot-bringup/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-dummy-robot-bringup/build_ament_cmake.sh b/recipes/ros-jazzy-dummy-robot-bringup/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-dummy-robot-bringup/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-dummy-robot-bringup/recipe.yaml b/recipes/ros-jazzy-dummy-robot-bringup/recipe.yaml new file mode 100644 index 00000000..7f6669a8 --- /dev/null +++ b/recipes/ros-jazzy-dummy-robot-bringup/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-dummy-robot-bringup + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/dummy_robot_bringup/0.33.5-1 + target_directory: ros-jazzy-dummy-robot-bringup/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-index-python + - ros-jazzy-dummy-map-server + - ros-jazzy-dummy-sensors + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-robot-state-publisher + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-dummy-sensors/bld_ament_cmake.bat b/recipes/ros-jazzy-dummy-sensors/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-dummy-sensors/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-dummy-sensors/build_ament_cmake.sh b/recipes/ros-jazzy-dummy-sensors/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-dummy-sensors/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-dummy-sensors/recipe.yaml b/recipes/ros-jazzy-dummy-sensors/recipe.yaml new file mode 100644 index 00000000..d649866e --- /dev/null +++ b/recipes/ros-jazzy-dummy-sensors/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-dummy-sensors + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/dummy_sensors/0.33.5-1 + target_directory: ros-jazzy-dummy-sensors/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-eigen3-cmake-module/bld_ament_cmake.bat b/recipes/ros-jazzy-eigen3-cmake-module/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-eigen3-cmake-module/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-eigen3-cmake-module/build_ament_cmake.sh b/recipes/ros-jazzy-eigen3-cmake-module/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-eigen3-cmake-module/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-eigen3-cmake-module/recipe.yaml b/recipes/ros-jazzy-eigen3-cmake-module/recipe.yaml new file mode 100644 index 00000000..abc12b23 --- /dev/null +++ b/recipes/ros-jazzy-eigen3-cmake-module/recipe.yaml @@ -0,0 +1,86 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-eigen3-cmake-module + version: 0.3.0 +source: + git: https://github.com/ros2-gbp/eigen3_cmake_module-release.git + tag: release/jazzy/eigen3_cmake_module/0.3.0-3 + target_directory: ros-jazzy-eigen3-cmake-module/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-example-interfaces/bld_ament_cmake.bat b/recipes/ros-jazzy-example-interfaces/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-example-interfaces/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-example-interfaces/build_ament_cmake.sh b/recipes/ros-jazzy-example-interfaces/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-example-interfaces/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-example-interfaces/recipe.yaml b/recipes/ros-jazzy-example-interfaces/recipe.yaml new file mode 100644 index 00000000..427eda8f --- /dev/null +++ b/recipes/ros-jazzy-example-interfaces/recipe.yaml @@ -0,0 +1,86 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-example-interfaces + version: 0.12.0 +source: + git: https://github.com/ros2-gbp/example_interfaces-release.git + tag: release/jazzy/example_interfaces/0.12.0-3 + target_directory: ros-jazzy-example-interfaces/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-action-client/bld_ament_cmake.bat b/recipes/ros-jazzy-examples-rclcpp-minimal-action-client/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-action-client/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-action-client/build_ament_cmake.sh b/recipes/ros-jazzy-examples-rclcpp-minimal-action-client/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-action-client/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-action-client/recipe.yaml b/recipes/ros-jazzy-examples-rclcpp-minimal-action-client/recipe.yaml new file mode 100644 index 00000000..ff32ce1a --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-action-client/recipe.yaml @@ -0,0 +1,92 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclcpp-minimal-action-client + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclcpp_minimal_action_client/0.19.4-1 + target_directory: ros-jazzy-examples-rclcpp-minimal-action-client/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-example-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-action-server/bld_ament_cmake.bat b/recipes/ros-jazzy-examples-rclcpp-minimal-action-server/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-action-server/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-action-server/build_ament_cmake.sh b/recipes/ros-jazzy-examples-rclcpp-minimal-action-server/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-action-server/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-action-server/recipe.yaml b/recipes/ros-jazzy-examples-rclcpp-minimal-action-server/recipe.yaml new file mode 100644 index 00000000..4d2b6d8f --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-action-server/recipe.yaml @@ -0,0 +1,92 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclcpp-minimal-action-server + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclcpp_minimal_action_server/0.19.4-1 + target_directory: ros-jazzy-examples-rclcpp-minimal-action-server/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-example-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-client/bld_ament_cmake.bat b/recipes/ros-jazzy-examples-rclcpp-minimal-client/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-client/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-client/build_ament_cmake.sh b/recipes/ros-jazzy-examples-rclcpp-minimal-client/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-client/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-client/recipe.yaml b/recipes/ros-jazzy-examples-rclcpp-minimal-client/recipe.yaml new file mode 100644 index 00000000..db18b4e0 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-client/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclcpp-minimal-client + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclcpp_minimal_client/0.19.4-1 + target_directory: ros-jazzy-examples-rclcpp-minimal-client/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-example-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-composition/bld_ament_cmake.bat b/recipes/ros-jazzy-examples-rclcpp-minimal-composition/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-composition/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-composition/build_ament_cmake.sh b/recipes/ros-jazzy-examples-rclcpp-minimal-composition/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-composition/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-composition/recipe.yaml b/recipes/ros-jazzy-examples-rclcpp-minimal-composition/recipe.yaml new file mode 100644 index 00000000..c97b7c4d --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-composition/recipe.yaml @@ -0,0 +1,92 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclcpp-minimal-composition + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclcpp_minimal_composition/0.19.4-1 + target_directory: ros-jazzy-examples-rclcpp-minimal-composition/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-publisher/bld_ament_cmake.bat b/recipes/ros-jazzy-examples-rclcpp-minimal-publisher/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-publisher/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-publisher/build_ament_cmake.sh b/recipes/ros-jazzy-examples-rclcpp-minimal-publisher/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-publisher/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-publisher/recipe.yaml b/recipes/ros-jazzy-examples-rclcpp-minimal-publisher/recipe.yaml new file mode 100644 index 00000000..6f7f1ca6 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-publisher/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclcpp-minimal-publisher + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclcpp_minimal_publisher/0.19.4-1 + target_directory: ros-jazzy-examples-rclcpp-minimal-publisher/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-service/bld_ament_cmake.bat b/recipes/ros-jazzy-examples-rclcpp-minimal-service/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-service/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-service/build_ament_cmake.sh b/recipes/ros-jazzy-examples-rclcpp-minimal-service/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-service/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-service/recipe.yaml b/recipes/ros-jazzy-examples-rclcpp-minimal-service/recipe.yaml new file mode 100644 index 00000000..200d8e7e --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-service/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclcpp-minimal-service + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclcpp_minimal_service/0.19.4-1 + target_directory: ros-jazzy-examples-rclcpp-minimal-service/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-example-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-subscriber/bld_ament_cmake.bat b/recipes/ros-jazzy-examples-rclcpp-minimal-subscriber/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-subscriber/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-subscriber/build_ament_cmake.sh b/recipes/ros-jazzy-examples-rclcpp-minimal-subscriber/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-subscriber/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-subscriber/recipe.yaml b/recipes/ros-jazzy-examples-rclcpp-minimal-subscriber/recipe.yaml new file mode 100644 index 00000000..d5c062b3 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-subscriber/recipe.yaml @@ -0,0 +1,92 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclcpp-minimal-subscriber + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclcpp_minimal_subscriber/0.19.4-1 + target_directory: ros-jazzy-examples-rclcpp-minimal-subscriber/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-timer/bld_ament_cmake.bat b/recipes/ros-jazzy-examples-rclcpp-minimal-timer/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-timer/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-timer/build_ament_cmake.sh b/recipes/ros-jazzy-examples-rclcpp-minimal-timer/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-timer/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-examples-rclcpp-minimal-timer/recipe.yaml b/recipes/ros-jazzy-examples-rclcpp-minimal-timer/recipe.yaml new file mode 100644 index 00000000..c0440a3a --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-minimal-timer/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclcpp-minimal-timer + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclcpp_minimal_timer/0.19.4-1 + target_directory: ros-jazzy-examples-rclcpp-minimal-timer/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclcpp-multithreaded-executor/bld_ament_cmake.bat b/recipes/ros-jazzy-examples-rclcpp-multithreaded-executor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-multithreaded-executor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclcpp-multithreaded-executor/build_ament_cmake.sh b/recipes/ros-jazzy-examples-rclcpp-multithreaded-executor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-multithreaded-executor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-examples-rclcpp-multithreaded-executor/recipe.yaml b/recipes/ros-jazzy-examples-rclcpp-multithreaded-executor/recipe.yaml new file mode 100644 index 00000000..55c401c0 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclcpp-multithreaded-executor/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclcpp-multithreaded-executor + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclcpp_multithreaded_executor/0.19.4-1 + target_directory: ros-jazzy-examples-rclcpp-multithreaded-executor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclpy-executors/bld_ament_python.bat b/recipes/ros-jazzy-examples-rclpy-executors/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-executors/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclpy-executors/build_ament_python.sh b/recipes/ros-jazzy-examples-rclpy-executors/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-executors/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-examples-rclpy-executors/recipe.yaml b/recipes/ros-jazzy-examples-rclpy-executors/recipe.yaml new file mode 100644 index 00000000..cc563a68 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-executors/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclpy-executors + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclpy_executors/0.19.4-1 + target_directory: ros-jazzy-examples-rclpy-executors/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-action-client/bld_ament_python.bat b/recipes/ros-jazzy-examples-rclpy-minimal-action-client/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-action-client/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-action-client/build_ament_python.sh b/recipes/ros-jazzy-examples-rclpy-minimal-action-client/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-action-client/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-action-client/recipe.yaml b/recipes/ros-jazzy-examples-rclpy-minimal-action-client/recipe.yaml new file mode 100644 index 00000000..0e9dd898 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-action-client/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclpy-minimal-action-client + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclpy_minimal_action_client/0.19.4-1 + target_directory: ros-jazzy-examples-rclpy-minimal-action-client/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-example-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-action-server/bld_ament_python.bat b/recipes/ros-jazzy-examples-rclpy-minimal-action-server/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-action-server/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-action-server/build_ament_python.sh b/recipes/ros-jazzy-examples-rclpy-minimal-action-server/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-action-server/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-action-server/recipe.yaml b/recipes/ros-jazzy-examples-rclpy-minimal-action-server/recipe.yaml new file mode 100644 index 00000000..e2bb1c3e --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-action-server/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclpy-minimal-action-server + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclpy_minimal_action_server/0.19.4-1 + target_directory: ros-jazzy-examples-rclpy-minimal-action-server/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-client/bld_ament_python.bat b/recipes/ros-jazzy-examples-rclpy-minimal-client/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-client/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-client/build_ament_python.sh b/recipes/ros-jazzy-examples-rclpy-minimal-client/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-client/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-client/recipe.yaml b/recipes/ros-jazzy-examples-rclpy-minimal-client/recipe.yaml new file mode 100644 index 00000000..b8db2edc --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-client/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclpy-minimal-client + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclpy_minimal_client/0.19.4-1 + target_directory: ros-jazzy-examples-rclpy-minimal-client/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-publisher/bld_ament_python.bat b/recipes/ros-jazzy-examples-rclpy-minimal-publisher/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-publisher/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-publisher/build_ament_python.sh b/recipes/ros-jazzy-examples-rclpy-minimal-publisher/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-publisher/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-publisher/recipe.yaml b/recipes/ros-jazzy-examples-rclpy-minimal-publisher/recipe.yaml new file mode 100644 index 00000000..51a28197 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-publisher/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclpy-minimal-publisher + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclpy_minimal_publisher/0.19.4-1 + target_directory: ros-jazzy-examples-rclpy-minimal-publisher/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-service/bld_ament_python.bat b/recipes/ros-jazzy-examples-rclpy-minimal-service/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-service/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-service/build_ament_python.sh b/recipes/ros-jazzy-examples-rclpy-minimal-service/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-service/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-service/recipe.yaml b/recipes/ros-jazzy-examples-rclpy-minimal-service/recipe.yaml new file mode 100644 index 00000000..60eb3475 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-service/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclpy-minimal-service + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclpy_minimal_service/0.19.4-1 + target_directory: ros-jazzy-examples-rclpy-minimal-service/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-subscriber/bld_ament_python.bat b/recipes/ros-jazzy-examples-rclpy-minimal-subscriber/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-subscriber/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-subscriber/build_ament_python.sh b/recipes/ros-jazzy-examples-rclpy-minimal-subscriber/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-subscriber/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-examples-rclpy-minimal-subscriber/recipe.yaml b/recipes/ros-jazzy-examples-rclpy-minimal-subscriber/recipe.yaml new file mode 100644 index 00000000..1f844cc1 --- /dev/null +++ b/recipes/ros-jazzy-examples-rclpy-minimal-subscriber/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-examples-rclpy-minimal-subscriber + version: 0.19.4 +source: + git: https://github.com/ros2-gbp/examples-release.git + tag: release/jazzy/examples_rclpy_minimal_subscriber/0.19.4-1 + target_directory: ros-jazzy-examples-rclpy-minimal-subscriber/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-fastcdr/bld_catkin.bat b/recipes/ros-jazzy-fastcdr/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-fastcdr/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-fastcdr/build_catkin.sh b/recipes/ros-jazzy-fastcdr/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/recipes/ros-jazzy-fastcdr/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-fastcdr/recipe.yaml b/recipes/ros-jazzy-fastcdr/recipe.yaml new file mode 100644 index 00000000..adcc7ad5 --- /dev/null +++ b/recipes/ros-jazzy-fastcdr/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-fastcdr + version: 2.2.5 +source: + git: https://github.com/ros2-gbp/fastcdr-release.git + tag: release/jazzy/fastcdr/2.2.5-1 + target_directory: ros-jazzy-fastcdr/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-fastrtps-cmake-module/bld_ament_cmake.bat b/recipes/ros-jazzy-fastrtps-cmake-module/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-fastrtps-cmake-module/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-fastrtps-cmake-module/build_ament_cmake.sh b/recipes/ros-jazzy-fastrtps-cmake-module/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-fastrtps-cmake-module/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-fastrtps-cmake-module/recipe.yaml b/recipes/ros-jazzy-fastrtps-cmake-module/recipe.yaml new file mode 100644 index 00000000..70c5625c --- /dev/null +++ b/recipes/ros-jazzy-fastrtps-cmake-module/recipe.yaml @@ -0,0 +1,86 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-fastrtps-cmake-module + version: 3.6.1 +source: + git: https://github.com/ros2-gbp/rosidl_typesupport_fastrtps-release.git + tag: release/jazzy/fastrtps_cmake_module/3.6.1-1 + target_directory: ros-jazzy-fastrtps-cmake-module/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-fastrtps/bld_catkin.bat b/recipes/ros-jazzy-fastrtps/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-fastrtps/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-fastrtps/build_catkin.sh b/recipes/ros-jazzy-fastrtps/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/recipes/ros-jazzy-fastrtps/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-fastrtps/patch/ros-jazzy-fastrtps.patch b/recipes/ros-jazzy-fastrtps/patch/ros-jazzy-fastrtps.patch new file mode 100644 index 00000000..329888be --- /dev/null +++ b/recipes/ros-jazzy-fastrtps/patch/ros-jazzy-fastrtps.patch @@ -0,0 +1,30 @@ +From 72ccfb186d93c3f7ba59c30fa2b05bddd31a3432 Mon Sep 17 00:00:00 2001 +From: Wade Hunkapiller +Date: Fri, 15 Mar 2024 11:11:09 -0500 +Subject: [PATCH] Add gettid() macro to address GLIBC version comptability + (#4225) + +Signed-off-by: Wade Hunkapiller +--- + src/cpp/utils/threading/threading_pthread.ipp | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/src/cpp/utils/threading/threading_pthread.ipp b/src/cpp/utils/threading/threading_pthread.ipp +index 75ad33f2d64..252f60c775a 100644 +--- a/src/cpp/utils/threading/threading_pthread.ipp ++++ b/src/cpp/utils/threading/threading_pthread.ipp +@@ -25,6 +25,14 @@ + #include + #include + ++#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ <= 30))) ++ #include ++ #ifndef SYS_gettid ++ #error "SYS_gettid unavailable on this system" ++ #endif ++ #define gettid() ((pid_t)syscall(SYS_gettid)) ++#endif ++ + namespace eprosima { + + template \ No newline at end of file diff --git a/recipes/ros-jazzy-fastrtps/recipe.yaml b/recipes/ros-jazzy-fastrtps/recipe.yaml new file mode 100644 index 00000000..aaee1e86 --- /dev/null +++ b/recipes/ros-jazzy-fastrtps/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-fastrtps + version: 2.14.4 +source: + git: https://github.com/ros2-gbp/fastrtps-release.git + tag: release/jazzy/fastrtps/2.14.4-1 + target_directory: ros-jazzy-fastrtps/src/work + patches: + - patch/ros-jazzy-fastrtps.patch + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - asio + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - openssl + - pip + - python + - ros-jazzy-fastcdr + - ros-jazzy-foonathan-memory-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + run: + - openssl + - python + - ros-jazzy-fastcdr + - ros-jazzy-foonathan-memory-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-foonathan-memory-vendor/bld_catkin.bat b/recipes/ros-jazzy-foonathan-memory-vendor/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-foonathan-memory-vendor/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-foonathan-memory-vendor/build_catkin.sh b/recipes/ros-jazzy-foonathan-memory-vendor/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/recipes/ros-jazzy-foonathan-memory-vendor/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-foonathan-memory-vendor/recipe.yaml b/recipes/ros-jazzy-foonathan-memory-vendor/recipe.yaml new file mode 100644 index 00000000..08a7637d --- /dev/null +++ b/recipes/ros-jazzy-foonathan-memory-vendor/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-foonathan-memory-vendor + version: 1.3.1 +source: + git: https://github.com/ros2-gbp/foonathan_memory_vendor-release.git + tag: release/jazzy/foonathan_memory_vendor/1.3.1-3 + target_directory: ros-jazzy-foonathan-memory-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - foonathan-memory + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - cmake + - foonathan-memory + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-geometry-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-geometry-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-geometry-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-geometry-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-geometry-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-geometry-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-geometry-msgs/recipe.yaml b/recipes/ros-jazzy-geometry-msgs/recipe.yaml new file mode 100644 index 00000000..1027f489 --- /dev/null +++ b/recipes/ros-jazzy-geometry-msgs/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-geometry-msgs + version: 5.3.5 +source: + git: https://github.com/ros2-gbp/common_interfaces-release.git + tag: release/jazzy/geometry_msgs/5.3.5-1 + target_directory: ros-jazzy-geometry-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-geometry2/bld_ament_cmake.bat b/recipes/ros-jazzy-geometry2/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-geometry2/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-geometry2/build_ament_cmake.sh b/recipes/ros-jazzy-geometry2/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-geometry2/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-geometry2/recipe.yaml b/recipes/ros-jazzy-geometry2/recipe.yaml new file mode 100644 index 00000000..438ddef1 --- /dev/null +++ b/recipes/ros-jazzy-geometry2/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-geometry2 + version: 0.36.7 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/geometry2/0.36.7-1 + target_directory: ros-jazzy-geometry2/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-bullet + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-eigen-kdl + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-kdl + - ros-jazzy-tf2-msgs + - ros-jazzy-tf2-py + - ros-jazzy-tf2-ros + - ros-jazzy-tf2-sensor-msgs + - ros-jazzy-tf2-tools + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gmock-vendor/bld_catkin.bat b/recipes/ros-jazzy-gmock-vendor/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-gmock-vendor/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-gmock-vendor/build_catkin.sh b/recipes/ros-jazzy-gmock-vendor/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/recipes/ros-jazzy-gmock-vendor/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-gmock-vendor/recipe.yaml b/recipes/ros-jazzy-gmock-vendor/recipe.yaml new file mode 100644 index 00000000..bc38d0b9 --- /dev/null +++ b/recipes/ros-jazzy-gmock-vendor/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gmock-vendor + version: 1.14.9000 +source: + git: https://github.com/ros2-gbp/googletest-release.git + tag: release/jazzy/gmock_vendor/1.14.9000-2 + target_directory: ros-jazzy-gmock-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-gtest-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-gtest-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-google-benchmark-vendor/bld_catkin.bat b/recipes/ros-jazzy-google-benchmark-vendor/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-google-benchmark-vendor/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-google-benchmark-vendor/build_catkin.sh b/recipes/ros-jazzy-google-benchmark-vendor/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/recipes/ros-jazzy-google-benchmark-vendor/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-google-benchmark-vendor/recipe.yaml b/recipes/ros-jazzy-google-benchmark-vendor/recipe.yaml new file mode 100644 index 00000000..e8d3b3ff --- /dev/null +++ b/recipes/ros-jazzy-google-benchmark-vendor/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-google-benchmark-vendor + version: 0.5.0 +source: + git: https://github.com/ros2-gbp/google_benchmark_vendor-release.git + tag: release/jazzy/google_benchmark_vendor/0.5.0-2 + target_directory: ros-jazzy-google-benchmark-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - benchmark + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - benchmark + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gps-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-gps-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gps-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gps-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-gps-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gps-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gps-msgs/recipe.yaml b/recipes/ros-jazzy-gps-msgs/recipe.yaml new file mode 100644 index 00000000..9eed7c1b --- /dev/null +++ b/recipes/ros-jazzy-gps-msgs/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gps-msgs + version: 2.0.4 +source: + git: https://github.com/ros2-gbp/gps_umd-release.git + tag: release/jazzy/gps_msgs/2.0.4-1 + target_directory: ros-jazzy-gps-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gtest-vendor/bld_catkin.bat b/recipes/ros-jazzy-gtest-vendor/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-gtest-vendor/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-gtest-vendor/build_catkin.sh b/recipes/ros-jazzy-gtest-vendor/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/recipes/ros-jazzy-gtest-vendor/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-gtest-vendor/recipe.yaml b/recipes/ros-jazzy-gtest-vendor/recipe.yaml new file mode 100644 index 00000000..eadb6fb6 --- /dev/null +++ b/recipes/ros-jazzy-gtest-vendor/recipe.yaml @@ -0,0 +1,83 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gtest-vendor + version: 1.14.9000 +source: + git: https://github.com/ros2-gbp/googletest-release.git + tag: release/jazzy/gtest_vendor/1.14.9000-2 + target_directory: ros-jazzy-gtest-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gz-cmake-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-cmake-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-cmake-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-cmake-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-cmake-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-cmake-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-cmake-vendor/patch/ros-jazzy-gz-cmake-vendor.patch b/recipes/ros-jazzy-gz-cmake-vendor/patch/ros-jazzy-gz-cmake-vendor.patch new file mode 100644 index 00000000..30b3d86b --- /dev/null +++ b/recipes/ros-jazzy-gz-cmake-vendor/patch/ros-jazzy-gz-cmake-vendor.patch @@ -0,0 +1,8 @@ +diff --git a/gz_cmake_vendor-extras.cmake.in b/gz_cmake_vendor-extras.cmake.in +index d490202..7dc00ea 100644 +--- a/gz_cmake_vendor-extras.cmake.in ++++ b/gz_cmake_vendor-extras.cmake.in +@@ -1 +1,3 @@ ++set(ENV{GZ_RELAX_VERSION_MATCH} "True") ++set(AMENT_VENDOR_NEVER_VENDOR ON) + list(PREPEND CMAKE_PREFIX_PATH "@CMAKE_INSTALL_PREFIX@/opt/@PROJECT_NAME@/extra_cmake") diff --git a/recipes/ros-jazzy-gz-cmake-vendor/recipe.yaml b/recipes/ros-jazzy-gz-cmake-vendor/recipe.yaml new file mode 100644 index 00000000..04aef09c --- /dev/null +++ b/recipes/ros-jazzy-gz-cmake-vendor/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-cmake-vendor + version: 0.0.8 +source: + git: https://github.com/ros2-gbp/gz_cmake_vendor-release.git + tag: release/jazzy/gz_cmake_vendor/0.0.8-1 + target_directory: ros-jazzy-gz-cmake-vendor/src/work + patches: + - patch/ros-jazzy-gz-cmake-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - cmake + - gz-cmake3 + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - gz-cmake3 + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gz-common-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-common-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-common-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-common-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-common-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-common-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-common-vendor/patch/ros-jazzy-gz-common-vendor.patch b/recipes/ros-jazzy-gz-common-vendor/patch/ros-jazzy-gz-common-vendor.patch new file mode 100644 index 00000000..27ebba91 --- /dev/null +++ b/recipes/ros-jazzy-gz-common-vendor/patch/ros-jazzy-gz-common-vendor.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 34a9d3c..b9af25c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -37,7 +37,7 @@ if(NOT $ENV{GZ_RELAX_VERSION_MATCH} STREQUAL "") + set(VERSION_MATCH "") + endif() + +-find_package(${LIB_NAME_FULL} ${VERSION_MATCH} ${LIB_VER} COMPONENTS all QUIET) ++find_package(${LIB_NAME_FULL} COMPONENTS all QUIET) + + ament_vendor(${LIB_NAME_UNDERSCORE}_vendor + SATISFIED ${${LIB_NAME_FULL}_FOUND} diff --git a/recipes/ros-jazzy-gz-common-vendor/recipe.yaml b/recipes/ros-jazzy-gz-common-vendor/recipe.yaml new file mode 100644 index 00000000..f895b859 --- /dev/null +++ b/recipes/ros-jazzy-gz-common-vendor/recipe.yaml @@ -0,0 +1,112 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-common-vendor + version: 0.0.7 +source: + git: https://github.com/ros2-gbp/gz_common_vendor-release.git + tag: release/jazzy/gz_common_vendor/0.0.7-1 + target_directory: ros-jazzy-gz-common-vendor/src/work + patches: + - patch/ros-jazzy-gz-common-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - assimp + - if: build_platform == target_platform + then: + - pkg-config + - ffmpeg + - freeimage + - gts + - gz-common5 + - libgdal + - numpy + - pip + - pkg-config + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + run: + - assimp + - ffmpeg + - freeimage + - gts + - gz-common5 + - libgdal + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gz-dartsim-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-dartsim-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-dartsim-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-dartsim-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-dartsim-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-dartsim-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-dartsim-vendor/patch/ros-jazzy-gz-dartsim-vendor.patch b/recipes/ros-jazzy-gz-dartsim-vendor/patch/ros-jazzy-gz-dartsim-vendor.patch new file mode 100644 index 00000000..7e1f8c69 --- /dev/null +++ b/recipes/ros-jazzy-gz-dartsim-vendor/patch/ros-jazzy-gz-dartsim-vendor.patch @@ -0,0 +1,23 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 77ca936..5decd53 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -25,7 +25,7 @@ if(NOT $ENV{GZ_RELAX_VERSION_MATCH} STREQUAL "") + set(VERSION_MATCH "") + endif() + +-find_package(DART ${VERSION_MATCH} ${LIB_VER_MAJOR}.${LIB_VER_MINOR} ++find_package(DART + CONFIG + COMPONENTS + collision-bullet +@@ -35,6 +35,9 @@ find_package(DART ${VERSION_MATCH} ${LIB_VER_MAJOR}.${LIB_VER_MINOR} + QUIET + ) + ++# Hack ++set(DART_FOUND TRUE) ++ + ament_vendor(${PROJECT_NAME} + SATISFIED ${DART_FOUND} + VCS_URL https://github.com/dartsim/dart.git diff --git a/recipes/ros-jazzy-gz-dartsim-vendor/recipe.yaml b/recipes/ros-jazzy-gz-dartsim-vendor/recipe.yaml new file mode 100644 index 00000000..e42cd767 --- /dev/null +++ b/recipes/ros-jazzy-gz-dartsim-vendor/recipe.yaml @@ -0,0 +1,111 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-dartsim-vendor + version: 0.0.3 +source: + git: https://github.com/ros2-gbp/gz_dartsim_vendor-release.git + tag: release/jazzy/gz_dartsim_vendor/0.0.3-1 + target_directory: ros-jazzy-gz-dartsim-vendor/src/work + patches: + - patch/ros-jazzy-gz-dartsim-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - assimp + - if: build_platform == target_platform + then: + - pkg-config + - bullet + - dartsim-cpp + - eigen + - fcl + - fmt + - libboost-devel + - libccd-double + - lz4 + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ament-lint-auto + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + - urdfdom + run: + - assimp + - bullet + - dartsim-cpp + - eigen + - fcl + - fmt + - libboost-devel + - libccd-double + - lz4 + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + - urdfdom + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gz-fuel-tools-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-fuel-tools-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-fuel-tools-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-fuel-tools-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-fuel-tools-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-fuel-tools-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-fuel-tools-vendor/patch/ros-jazzy-gz-fuel-tools-vendor.patch b/recipes/ros-jazzy-gz-fuel-tools-vendor/patch/ros-jazzy-gz-fuel-tools-vendor.patch new file mode 100644 index 00000000..ed6266f1 --- /dev/null +++ b/recipes/ros-jazzy-gz-fuel-tools-vendor/patch/ros-jazzy-gz-fuel-tools-vendor.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b084b2c..b2fc80d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -4,8 +4,8 @@ project(gz_fuel_tools_vendor) + + # Project-specific settings + set(LIB_VER_MAJOR 9) +-set(LIB_VER_MINOR 1) +-set(LIB_VER_PATCH 0) ++set(LIB_VER_MINOR 0) ++set(LIB_VER_PATCH 3) + + # Derived variables + set(LIB_NAME gz-fuel_tools) diff --git a/recipes/ros-jazzy-gz-fuel-tools-vendor/recipe.yaml b/recipes/ros-jazzy-gz-fuel-tools-vendor/recipe.yaml new file mode 100644 index 00000000..ff71498c --- /dev/null +++ b/recipes/ros-jazzy-gz-fuel-tools-vendor/recipe.yaml @@ -0,0 +1,117 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-fuel-tools-vendor + version: 0.0.5 +source: + git: https://github.com/ros2-gbp/gz_fuel_tools_vendor-release.git + tag: release/jazzy/gz_fuel_tools_vendor/0.0.5-1 + target_directory: ros-jazzy-gz-fuel-tools-vendor/src/work + patches: + - patch/ros-jazzy-gz-fuel-tools-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - gflags + - gz-fuel-tools9 + - jsoncpp + - libcurl + - libzip + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-common-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + - yaml + run: + - gflags + - gz-fuel-tools9 + - jsoncpp + - libcurl + - libzip + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-common-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + - yaml + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gz-gui-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-gui-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-gui-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-gui-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-gui-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-gui-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-gui-vendor/patch/ros-jazzy-gz-gui-vendor.patch b/recipes/ros-jazzy-gz-gui-vendor/patch/ros-jazzy-gz-gui-vendor.patch new file mode 100644 index 00000000..d9ebdd68 --- /dev/null +++ b/recipes/ros-jazzy-gz-gui-vendor/patch/ros-jazzy-gz-gui-vendor.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a58d9a4..e6ea27e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -4,8 +4,8 @@ project(gz_gui_vendor) + + # Project-specific settings + set(LIB_VER_MAJOR 8) +-set(LIB_VER_MINOR 3) +-set(LIB_VER_PATCH 0) ++set(LIB_VER_MINOR 1) ++set(LIB_VER_PATCH 1) + + # Derived variables + set(LIB_NAME gz-gui) diff --git a/recipes/ros-jazzy-gz-gui-vendor/recipe.yaml b/recipes/ros-jazzy-gz-gui-vendor/recipe.yaml new file mode 100644 index 00000000..031b0343 --- /dev/null +++ b/recipes/ros-jazzy-gz-gui-vendor/recipe.yaml @@ -0,0 +1,134 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-gui-vendor + version: 0.0.4 +source: + git: https://github.com/ros2-gbp/gz_gui_vendor-release.git + tag: release/jazzy/gz_gui_vendor/0.0.4-1 + target_directory: ros-jazzy-gz-gui-vendor/src/work + patches: + - patch/ros-jazzy-gz-gui-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - qt-main + host: + - if: build_platform == target_platform + then: + - pkg-config + - gz-gui8 + - libprotobuf + - numpy + - pip + - protobuf + - python + - qt-main + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-common-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-plugin-vendor + - ros-jazzy-gz-rendering-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-transport-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - gz-gui8 + - libprotobuf + - protobuf + - python + - qt-main + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-common-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-plugin-vendor + - ros-jazzy-gz-rendering-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-transport-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-gz-math-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-math-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-math-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-math-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-math-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-math-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-math-vendor/patch/ros-jazzy-gz-math-vendor.patch b/recipes/ros-jazzy-gz-math-vendor/patch/ros-jazzy-gz-math-vendor.patch new file mode 100644 index 00000000..e5a1c5d6 --- /dev/null +++ b/recipes/ros-jazzy-gz-math-vendor/patch/ros-jazzy-gz-math-vendor.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bacf717..69ead8b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -36,7 +36,7 @@ if(NOT $ENV{GZ_RELAX_VERSION_MATCH} STREQUAL "") + set(VERSION_MATCH "") + endif() + +-find_package(${LIB_NAME_FULL} ${VERSION_MATCH} ${LIB_VER} COMPONENTS all QUIET) ++find_package(${LIB_NAME_FULL} COMPONENTS all QUIET) + + ament_vendor(${LIB_NAME_UNDERSCORE}_vendor + SATISFIED ${${LIB_NAME_FULL}_FOUND} diff --git a/recipes/ros-jazzy-gz-math-vendor/recipe.yaml b/recipes/ros-jazzy-gz-math-vendor/recipe.yaml new file mode 100644 index 00000000..a7255612 --- /dev/null +++ b/recipes/ros-jazzy-gz-math-vendor/recipe.yaml @@ -0,0 +1,104 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-math-vendor + version: 0.0.7 +source: + git: https://github.com/ros2-gbp/gz_math_vendor-release.git + tag: release/jazzy/gz_math_vendor/0.0.7-1 + target_directory: ros-jazzy-gz-math-vendor/src/work + patches: + - patch/ros-jazzy-gz-math-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - pybind11 + host: + - if: build_platform == target_platform + then: + - pkg-config + - eigen + - gz-math7 + - numpy + - pip + - pybind11 + - pytest + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - eigen + - gz-math7 + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gz-msgs-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-msgs-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-msgs-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-msgs-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-msgs-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-msgs-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-msgs-vendor/patch/ros-jazzy-gz-msgs-vendor.patch b/recipes/ros-jazzy-gz-msgs-vendor/patch/ros-jazzy-gz-msgs-vendor.patch new file mode 100644 index 00000000..7b6340ff --- /dev/null +++ b/recipes/ros-jazzy-gz-msgs-vendor/patch/ros-jazzy-gz-msgs-vendor.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a234d6c..1bc36ea 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -37,7 +37,7 @@ if(NOT $ENV{GZ_RELAX_VERSION_MATCH} STREQUAL "") + set(VERSION_MATCH "") + endif() + +-find_package(${LIB_NAME_FULL} ${VERSION_MATCH} ${LIB_VER} COMPONENTS all QUIET) ++find_package(${LIB_NAME_FULL} COMPONENTS all QUIET) + + ament_vendor(${LIB_NAME_UNDERSCORE}_vendor + SATISFIED ${${LIB_NAME_FULL}_FOUND} diff --git a/recipes/ros-jazzy-gz-msgs-vendor/recipe.yaml b/recipes/ros-jazzy-gz-msgs-vendor/recipe.yaml new file mode 100644 index 00000000..133a317b --- /dev/null +++ b/recipes/ros-jazzy-gz-msgs-vendor/recipe.yaml @@ -0,0 +1,106 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-msgs-vendor + version: 0.0.5 +source: + git: https://github.com/ros2-gbp/gz_msgs_vendor-release.git + tag: release/jazzy/gz_msgs_vendor/0.0.5-1 + target_directory: ros-jazzy-gz-msgs-vendor/src/work + patches: + - patch/ros-jazzy-gz-msgs-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - gz-msgs10 + - libprotobuf + - numpy + - pip + - protobuf + - pytest + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + run: + - gz-msgs10 + - libprotobuf + - protobuf + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gz-ogre-next-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-ogre-next-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-ogre-next-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-ogre-next-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-ogre-next-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-ogre-next-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-ogre-next-vendor/patch/ros-jazzy-gz-ogre-next-vendor.patch b/recipes/ros-jazzy-gz-ogre-next-vendor/patch/ros-jazzy-gz-ogre-next-vendor.patch new file mode 100644 index 00000000..124d088f --- /dev/null +++ b/recipes/ros-jazzy-gz-ogre-next-vendor/patch/ros-jazzy-gz-ogre-next-vendor.patch @@ -0,0 +1,233 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a904707..e6b84cd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,9 +1,21 @@ + cmake_minimum_required(VERSION 3.10) + project(gz_ogre_next_vendor) + ++# Project-specific settings ++set(LIB_VER_MAJOR 2) ++set(LIB_VER_MINOR 3) ++set(LIB_VER_PATCH 3) ++set(LIB_VER ${LIB_VER_MAJOR}.${LIB_VER_MINOR}.${LIB_VER_PATCH}) ++ + find_package(ament_cmake REQUIRED) + find_package(ament_cmake_vendor_package REQUIRED) + ++find_package(OGRE ${LIB_VER}) ++message(NOTICE "OGRE_FOUND" = ${OGRE}) ++ ++# Hack ++set(OGRE_FOUND TRUE) ++ + set(EXTRA_CMAKE_FLAGS) + if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*|arm64.*|ARM64.*|arm.*|ARM.*)") + # Flags for non SIMD architectures +@@ -12,6 +24,7 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*|arm64.*|ARM64.*|arm.*|A + endif() + + ament_vendor(${PROJECT_NAME} ++ SATISFIED ${OGRE_FOUND} + VCS_URL https://github.com/OGRECave/ogre-next.git + VCS_VERSION v2.3.3 + CMAKE_ARGS +@@ -33,8 +46,7 @@ ament_vendor(${PROJECT_NAME} + -DOGRE_VULKAN_WINDOW_XCB:BOOL=ON + ${EXTRA_CMAKE_FLAGS} + GLOBAL_HOOK +- PATCHES +- patches/0001-Fix-incomplete-vulkan-linkage.patch ++ PATCHES patches + ) + + if(BUILD_TESTING) +diff --git a/patches/0002-correct-cmake-vars.patch b/patches/0002-correct-cmake-vars.patch +new file mode 100644 +index 0000000..357ee82 +--- /dev/null ++++ b/patches/0002-correct-cmake-vars.patch +@@ -0,0 +1,160 @@ ++diff --git a/CMake/Utils/AndroidMacros.cmake b/CMake/Utils/AndroidMacros.cmake ++index d1a3880..e3616fc 100644 ++--- a/CMake/Utils/AndroidMacros.cmake +++++ b/CMake/Utils/AndroidMacros.cmake ++@@ -10,7 +10,7 @@ ++ ++ macro(add_static_libs LIB_DIR) ++ foreach(LIB_NAME ${ARGN}) ++- SET(HEADERS "${HEADERS}# ${LIB_NAME}\n\tinclude $(CLEAR_VARS)\n\tLOCAL_MODULE := ${LIB_NAME}\n\tLOCAL_SRC_FILES := ${LIB_DIR}/lib${LIB_NAME}.a\n\tinclude $(PREBUILT_STATIC_LIBRARY)\n\n") +++ SET(HEADERS "${HEADERS}# ${LIB_NAME}\n\tinclude ${CLEAR_VARS}\n\tLOCAL_MODULE := ${LIB_NAME}\n\tLOCAL_SRC_FILES := ${LIB_DIR}/lib${LIB_NAME}.a\n\tinclude ${PREBUILT_STATIC_LIBRARY}\n\n") ++ SET(SAMPLE_LDLIBS "${SAMPLE_LDLIBS} ${LIB_NAME}") ++ endforeach(LIB_NAME ${ARGN}) ++ SET(SAMPLE_LDLIBS "${SAMPLE_LDLIBS}\n LOCAL_STATIC_LIBRARIES\t+= ") ++@@ -21,7 +21,7 @@ macro(add_static_libs_from_paths) ++ get_filename_component(LIB_NAME ${LIB} NAME_WE) ++ string(SUBSTRING ${LIB_NAME} 3 -1 LIB_NAME) # strip lib prefix ++ ++- set(HEADERS "${HEADERS}# ${LIB_NAME}\n\tinclude $(CLEAR_VARS)\n\tLOCAL_MODULE := ${LIB_NAME}\n\tLOCAL_SRC_FILES := ${LIB}\n\tinclude $(PREBUILT_STATIC_LIBRARY)\n\n") +++ set(HEADERS "${HEADERS}# ${LIB_NAME}\n\tinclude ${CLEAR_VARS}\n\tLOCAL_MODULE := ${LIB_NAME}\n\tLOCAL_SRC_FILES := ${LIB}\n\tinclude ${PREBUILT_STATIC_LIBRARY}\n\n") ++ set(SAMPLE_LDLIBS "${SAMPLE_LDLIBS} ${LIB_NAME}") ++ endforeach() ++ set(SAMPLE_LDLIBS "${SAMPLE_LDLIBS}\n LOCAL_STATIC_LIBRARIES\t+= ") ++@@ -135,4 +135,3 @@ macro(create_android_proj ANDROID_PROJECT_TARGET) ++ WORKING_DIRECTORY ${NDKOUT} ++ ) ++ endmacro(create_android_proj) ++- ++diff --git a/CMake/Utils/OgreConfigTargets.cmake b/CMake/Utils/OgreConfigTargets.cmake ++index d8e0208..28acb8c 100644 ++--- a/CMake/Utils/OgreConfigTargets.cmake +++++ b/CMake/Utils/OgreConfigTargets.cmake ++@@ -18,7 +18,7 @@ if(APPLE) ++ if(NOT OGRE_BUILD_PLATFORM_ANDROID AND NOT OGRE_BUILD_PLATFORM_APPLE_IOS) ++ set(PLATFORM_NAME "macosx") ++ elseif(OGRE_BUILD_PLATFORM_APPLE_IOS) ++- set(PLATFORM_NAME "$(PLATFORM_NAME)") +++ set(PLATFORM_NAME "${PLATFORM_NAME}") ++ endif() ++ endif() ++ ++diff --git a/CMakeLists.txt b/CMakeLists.txt ++index 2786e35..9c6de22 100755 ++--- a/CMakeLists.txt +++++ b/CMakeLists.txt ++@@ -316,7 +316,7 @@ if (OGRE_BUILD_PLATFORM_APPLE_IOS) ++ set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.yourcompany.\${PRODUCT_NAME:rfc1034identifier}") ++ set( CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2" ) ++ ++- set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_INCLUDING_64_BIT)") +++ set(CMAKE_OSX_ARCHITECTURES "${ARCHS_STANDARD_INCLUDING_64_BIT}") ++ string (REPLACE "-msse2" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++ string (REPLACE "-msse" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++ elseif (ANDROID) ++@@ -363,8 +363,6 @@ elseif (APPLE AND NOT OGRE_BUILD_PLATFORM_APPLE_IOS) ++ if(CMAKE_GENERATOR STREQUAL "Unix Makefiles") ++ execute_process(COMMAND xcodebuild -version -sdk "${XCODE_ATTRIBUTE_SDKROOT}" Path | head -n 1 OUTPUT_VARIABLE CMAKE_OSX_SYSROOT) ++ string(REGEX REPLACE "(\r?\n)+$" "" CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT}") ++- else() ++- set(CMAKE_OSX_SYSROOT macosx) ++ endif() ++ ++ set( CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES ) ++@@ -697,4 +695,3 @@ include(Packaging) ++ ++ # Show feature summary ++ include(FeatureSummary) ++- ++diff --git a/OgreMain/CMakeLists.txt b/OgreMain/CMakeLists.txt ++index b698b84..bd3b21e 100644 ++--- a/OgreMain/CMakeLists.txt +++++ b/OgreMain/CMakeLists.txt ++@@ -439,7 +439,7 @@ if (APPLE) ++ LINK_FLAGS "-framework IOKit -framework Cocoa -framework Carbon -framework OpenGL -framework CoreVideo" ++ ) ++ ++- set(OGRE_OSX_BUILD_CONFIGURATION "$(PLATFORM_NAME)/$(CONFIGURATION)") +++ set(OGRE_OSX_BUILD_CONFIGURATION "${PLATFORM_NAME}/${CONFIGURATION}") ++ ++ add_custom_command(TARGET ${OGRE_NEXT}Main POST_BUILD ++ COMMAND mkdir ARGS -p ${OGRE_BINARY_DIR}/lib/${OGRE_OSX_BUILD_CONFIGURATION}/Ogre.framework/Headers/Threading ++diff --git a/Samples/2.0/Tutorials/EmptyProject/CMake/Dependencies/OGRE.cmake b/Samples/2.0/Tutorials/EmptyProject/CMake/Dependencies/OGRE.cmake ++index 23596b5..b57c2a9 100644 ++--- a/Samples/2.0/Tutorials/EmptyProject/CMake/Dependencies/OGRE.cmake +++++ b/Samples/2.0/Tutorials/EmptyProject/CMake/Dependencies/OGRE.cmake ++@@ -222,10 +222,10 @@ set( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Dependencies/Ogre/CMake/Pack ++ set( OGRE_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/Dependencies/Ogre" CACHE STRING "Path to OGRE source code (see http://www.ogre3d.org/tikiwiki/tiki-index.php?page=CMake+Quick+Start+Guide)" ) ++ if( WIN32 ) ++ set( OGRE_BINARIES "${OGRE_SOURCE}/build" CACHE STRING "Path to OGRE's build folder generated by CMake" ) ++- link_directories( "${OGRE_BINARIES}/lib/$(ConfigurationName)" ) +++ link_directories( "${OGRE_BINARIES}/lib/${ConfigurationName}" ) ++ elseif( APPLE ) ++ set( OGRE_BINARIES "${OGRE_SOURCE}/build" CACHE STRING "Path to OGRE's build folder generated by CMake" ) ++- link_directories( "${OGRE_BINARIES}/lib/$(PLATFORM_NAME)/$(CONFIGURATION)" ) +++ link_directories( "${OGRE_BINARIES}/lib/${PLATFORM_NAME}/${CONFIGURATION}" ) ++ elseif( ANDROID ) ++ set( OGRE_BINARIES "${OGRE_SOURCE}/build/Android/${CMAKE_BUILD_TYPE}" CACHE STRING "Path to OGRE's build folder generated by CMake" ) ++ link_directories( "${OGRE_BINARIES}/lib" ) ++@@ -406,10 +406,10 @@ macro( addStaticDependencies OGRE_SOURCE, OGRE_BINARIES, OGRE_BUILD_SETTINGS_STR ++ endif() ++ ++ if( WIN32 ) ++- set( OGRE_DEPENDENCIES "${OGRE_SOURCE}/Dependencies/lib/$(ConfigurationName)" CACHE STRING +++ set( OGRE_DEPENDENCIES "${OGRE_SOURCE}/Dependencies/lib/${ConfigurationName}" CACHE STRING ++ "Path to OGRE's dependencies folder. Only used in Static Builds" ) ++ elseif( IOS ) ++- set( OGRE_DEPENDENCIES "${OGRE_SOURCE}/iOSDependencies/lib/$(CONFIGURATION)" CACHE STRING +++ set( OGRE_DEPENDENCIES "${OGRE_SOURCE}/iOSDependencies/lib/${CONFIGURATION}" CACHE STRING ++ "Path to OGRE's dependencies folder. Only used in Static Builds" ) ++ elseif( ANDROID ) ++ set( OGRE_DEPENDENCIES "${OGRE_SOURCE}/DependenciesAndroid/lib" CACHE STRING ++diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt ++index 5167104..bf8fe80 100644 ++--- a/Tests/CMakeLists.txt +++++ b/Tests/CMakeLists.txt ++@@ -151,8 +151,8 @@ if (OGRE_BUILD_TESTS) ++ ogre_config_sample_exe(Test_Ogre) ++ target_link_libraries(Test_Ogre ${OGRE_LIBRARIES} ${CppUnit_LIBRARIES}) ++ if(APPLE AND NOT OGRE_BUILD_PLATFORM_APPLE_IOS) ++- set(OGRE_BUILT_FRAMEWORK "$(PLATFORM_NAME)/$(CONFIGURATION)") ++- set(OGRE_TEST_CONTENTS_PATH ${OGRE_BINARY_DIR}/bin/$(CONFIGURATION)/Test_Ogre.app/Contents) +++ set(OGRE_BUILT_FRAMEWORK "${PLATFORM_NAME}/${CONFIGURATION}") +++ set(OGRE_TEST_CONTENTS_PATH ${OGRE_BINARY_DIR}/bin/${CONFIGURATION}/Test_Ogre.app/Contents) ++ set_target_properties(Test_Ogre PROPERTIES ++ LINK_FLAGS "-framework Carbon -framework Cocoa") ++ add_custom_command(TARGET Test_Ogre POST_BUILD ++diff --git a/Tests/VisualTests/Context/CMakeLists.txt b/Tests/VisualTests/Context/CMakeLists.txt ++index 551a8e7..6e0e49b 100644 ++--- a/Tests/VisualTests/Context/CMakeLists.txt +++++ b/Tests/VisualTests/Context/CMakeLists.txt ++@@ -86,18 +86,18 @@ if (APPLE) ++ set_target_properties(TestContext PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO") ++ set_target_properties(TestContext PROPERTIES XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2") ++ set (OGRE_TESTCONTEXT_CONTENTS_PATH ++- ${OGRE_BINARY_DIR}/bin/$(CONFIGURATION)/TestContext.app) +++ ${OGRE_BINARY_DIR}/bin/${CONFIGURATION}/TestContext.app) ++ add_custom_command(TARGET TestContext POST_BUILD ++ COMMAND ditto ${OGRE_SOURCE_DIR}/Samples/Common/misc/*.png ${OGRE_TESTCONTEXT_CONTENTS_PATH}/ ++ COMMAND ditto ${OGRE_BINARY_DIR}/bin/*.cfg ${OGRE_TESTCONTEXT_CONTENTS_PATH}/ ++ ) ++ add_custom_command(TARGET TestContext POST_BUILD ++- COMMAND mkdir ARGS -p ${OGRE_BINARY_DIR}/lib/$(CONFIGURATION)/ +++ COMMAND mkdir ARGS -p ${OGRE_BINARY_DIR}/lib/${CONFIGURATION}/ ++ COMMAND ditto ${OGRE_SOURCE_DIR}/Samples/Media ${OGRE_TESTCONTEXT_CONTENTS_PATH}/Media ++ COMMAND ditto ${OGRE_SOURCE_DIR}/Tests/Media ${OGRE_TESTCONTEXT_CONTENTS_PATH}/Media ++ ) ++ else() ++- set(OGRE_OSX_BUILD_CONFIGURATION "$(PLATFORM_NAME)/$(CONFIGURATION)") +++ set(OGRE_OSX_BUILD_CONFIGURATION "${PLATFORM_NAME}/${CONFIGURATION}") ++ set_property(TARGET TestContext PROPERTY MACOSX_BUNDLE TRUE) ++ set_property(TARGET TestContext PROPERTY MACOSX_BUNDLE_ICON_FILE SampleBrowser_OSX.icns) ++ set_property(TARGET TestContext PROPERTY MACOSX_BUNDLE_INFO_PLIST ${OGRE_SOURCE_DIR}/Tests/VisualTests/Context/misc/Info.plist) ++@@ -106,7 +106,7 @@ if (APPLE) ++ set_target_properties(TestContext PROPERTIES ++ LINK_FLAGS "-framework IOKit -framework Cocoa -framework Carbon -framework OpenGL -framework CoreVideo") ++ set (OGRE_TESTCONTEXT_CONTENTS_PATH ++- ${OGRE_BINARY_DIR}/bin/$(CONFIGURATION)/TestContext.app/Contents) +++ ${OGRE_BINARY_DIR}/bin/${CONFIGURATION}/TestContext.app/Contents) ++ add_custom_command(TARGET TestContext POST_BUILD ++ COMMAND mkdir ARGS -p ${OGRE_TESTCONTEXT_CONTENTS_PATH}/Frameworks ++ COMMAND ln ARGS -s -f ${OGRE_BINARY_DIR}/lib/${OGRE_OSX_BUILD_CONFIGURATION}/Ogre.framework +diff --git a/patches/0003-fix-string.patch b/patches/0003-fix-string.patch +new file mode 100644 +index 0000000..82f5dbf +--- /dev/null ++++ b/patches/0003-fix-string.patch +@@ -0,0 +1,17 @@ ++diff --git a/OgreMain/include/OgreUTFString.h b/OgreMain/include/OgreUTFString.h ++index 0aeab6a..a3be244 100644 ++--- a/OgreMain/include/OgreUTFString.h +++++ b/OgreMain/include/OgreUTFString.h ++@@ -189,10 +189,10 @@ namespace Ogre { ++ static const size_type npos = static_cast(~0); ++ ++ //! a single 32-bit Unicode character ++- typedef uint32 unicode_char; +++ typedef char32_t unicode_char; ++ ++ //! a single UTF-16 code point ++- typedef uint16 code_point; +++ typedef char16_t code_point; ++ ++ //! value type typedef for use in iterators ++ typedef code_point value_type; diff --git a/recipes/ros-jazzy-gz-ogre-next-vendor/recipe.yaml b/recipes/ros-jazzy-gz-ogre-next-vendor/recipe.yaml new file mode 100644 index 00000000..fe15fafb --- /dev/null +++ b/recipes/ros-jazzy-gz-ogre-next-vendor/recipe.yaml @@ -0,0 +1,135 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-ogre-next-vendor + version: 0.0.5 +source: + git: https://github.com/ros2-gbp/gz_ogre_next_vendor-release.git + tag: release/jazzy/gz_ogre_next_vendor/0.0.5-1 + target_directory: ros-jazzy-gz-ogre-next-vendor/src/work + patches: + - patch/ros-jazzy-gz-ogre-next-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - freeimage + - freetype + - glslang + - libboost-devel + - libvulkan-headers + - libvulkan-loader + - numpy + - ogre-next + - pip + - poco + - python + - rapidjson + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ament-lint-auto + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - sdl2 + - shaderc + - tbb + - tbb-devel + - tinyxml2 + - xorg-libx11 + - xorg-xorgproto + - zziplib + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - freeimage + - freetype + - glslang + - libboost-devel + - libvulkan-headers + - libvulkan-loader + - ogre-next + - poco + - python + - rapidjson + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - sdl2 + - shaderc + - tbb + - tbb-devel + - tinyxml2 + - xorg-libx11 + - xorg-xorgproto + - zziplib + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-gz-physics-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-physics-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-physics-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-physics-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-physics-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-physics-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-physics-vendor/patch/ros-jazzy-gz-physics-vendor.patch b/recipes/ros-jazzy-gz-physics-vendor/patch/ros-jazzy-gz-physics-vendor.patch new file mode 100644 index 00000000..d6352aa3 --- /dev/null +++ b/recipes/ros-jazzy-gz-physics-vendor/patch/ros-jazzy-gz-physics-vendor.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3b0b5e4..fa007d8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -41,7 +41,7 @@ if(NOT $ENV{GZ_RELAX_VERSION_MATCH} STREQUAL "") + set(VERSION_MATCH "") + endif() + +-find_package(${LIB_NAME_FULL} ${VERSION_MATCH} ${LIB_VER} COMPONENTS all QUIET) ++find_package(${LIB_NAME_FULL} COMPONENTS all QUIET) + + ament_vendor(${LIB_NAME_UNDERSCORE}_vendor + SATISFIED ${${LIB_NAME_FULL}_FOUND} diff --git a/recipes/ros-jazzy-gz-physics-vendor/recipe.yaml b/recipes/ros-jazzy-gz-physics-vendor/recipe.yaml new file mode 100644 index 00000000..cdc1039b --- /dev/null +++ b/recipes/ros-jazzy-gz-physics-vendor/recipe.yaml @@ -0,0 +1,113 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-physics-vendor + version: 0.0.5 +source: + git: https://github.com/ros2-gbp/gz_physics_vendor-release.git + tag: release/jazzy/gz_physics_vendor/0.0.5-1 + target_directory: ros-jazzy-gz-physics-vendor/src/work + patches: + - patch/ros-jazzy-gz-physics-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - benchmark + - if: build_platform == target_platform + then: + - pkg-config + - bullet + - eigen + - gz-physics7 + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-common-vendor + - ros-jazzy-gz-dartsim-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-plugin-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sdformat-vendor + - ros2-distro-mutex 0.6.* jazzy_* + run: + - benchmark + - bullet + - eigen + - gz-physics7 + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-common-vendor + - ros-jazzy-gz-dartsim-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-plugin-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-workspace + - ros-jazzy-sdformat-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gz-plugin-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-plugin-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-plugin-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-plugin-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-plugin-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-plugin-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-plugin-vendor/patch/ros-jazzy-gz-plugin-vendor.patch b/recipes/ros-jazzy-gz-plugin-vendor/patch/ros-jazzy-gz-plugin-vendor.patch new file mode 100644 index 00000000..bd4b6df7 --- /dev/null +++ b/recipes/ros-jazzy-gz-plugin-vendor/patch/ros-jazzy-gz-plugin-vendor.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ed2578e..cb5c72a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -36,7 +36,7 @@ if(NOT $ENV{GZ_RELAX_VERSION_MATCH} STREQUAL "") + set(VERSION_MATCH "") + endif() + +-find_package(${LIB_NAME_FULL} ${VERSION_MATCH} ${LIB_VER} COMPONENTS all QUIET) ++find_package(${LIB_NAME_FULL} COMPONENTS all QUIET) + + ament_vendor(${LIB_NAME_UNDERSCORE}_vendor + SATISFIED ${${LIB_NAME_FULL}_FOUND} diff --git a/recipes/ros-jazzy-gz-plugin-vendor/recipe.yaml b/recipes/ros-jazzy-gz-plugin-vendor/recipe.yaml new file mode 100644 index 00000000..36d321d4 --- /dev/null +++ b/recipes/ros-jazzy-gz-plugin-vendor/recipe.yaml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-plugin-vendor + version: 0.0.4 +source: + git: https://github.com/ros2-gbp/gz_plugin_vendor-release.git + tag: release/jazzy/gz_plugin_vendor/0.0.4-1 + target_directory: ros-jazzy-gz-plugin-vendor/src/work + patches: + - patch/ros-jazzy-gz-plugin-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - gz-plugin2 + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - gz-plugin2 + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gz-rendering-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-rendering-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-rendering-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-rendering-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-rendering-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-rendering-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-rendering-vendor/patch/ros-jazzy-gz-rendering-vendor.patch b/recipes/ros-jazzy-gz-rendering-vendor/patch/ros-jazzy-gz-rendering-vendor.patch new file mode 100644 index 00000000..881281a2 --- /dev/null +++ b/recipes/ros-jazzy-gz-rendering-vendor/patch/ros-jazzy-gz-rendering-vendor.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f7decac..c7c068e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -40,7 +40,7 @@ if(NOT $ENV{GZ_RELAX_VERSION_MATCH} STREQUAL "") + set(VERSION_MATCH "") + endif() + +-find_package(${LIB_NAME_FULL} ${VERSION_MATCH} ${LIB_VER} COMPONENTS all QUIET) ++find_package(${LIB_NAME_FULL} COMPONENTS all QUIET) + + ament_vendor(${LIB_NAME_UNDERSCORE}_vendor + SATISFIED ${${LIB_NAME_FULL}_FOUND} diff --git a/recipes/ros-jazzy-gz-rendering-vendor/recipe.yaml b/recipes/ros-jazzy-gz-rendering-vendor/recipe.yaml new file mode 100644 index 00000000..172eee5c --- /dev/null +++ b/recipes/ros-jazzy-gz-rendering-vendor/recipe.yaml @@ -0,0 +1,123 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-rendering-vendor + version: 0.0.5 +source: + git: https://github.com/ros2-gbp/gz_rendering_vendor-release.git + tag: release/jazzy/gz_rendering_vendor/0.0.5-1 + target_directory: ros-jazzy-gz-rendering-vendor/src/work + patches: + - patch/ros-jazzy-gz-rendering-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - freeglut + - freeimage + - glew + - gz-rendering8 + - libvulkan-headers + - libvulkan-loader + - numpy + - ogre + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-common-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-ogre-next-vendor + - ros-jazzy-gz-plugin-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - swig + - xorg-libxi + - xorg-libxmu + run: + - freeglut + - freeimage + - glew + - gz-rendering8 + - libvulkan-headers + - libvulkan-loader + - ogre + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-common-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-ogre-next-vendor + - ros-jazzy-gz-plugin-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - swig + - xorg-libxi + - xorg-libxmu + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gz-sensors-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-sensors-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-sensors-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-sensors-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-sensors-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-sensors-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-sensors-vendor/patch/ros-jazzy-gz-sensors-vendor.patch b/recipes/ros-jazzy-gz-sensors-vendor/patch/ros-jazzy-gz-sensors-vendor.patch new file mode 100644 index 00000000..9aa287b6 --- /dev/null +++ b/recipes/ros-jazzy-gz-sensors-vendor/patch/ros-jazzy-gz-sensors-vendor.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1fba7c8..c82aaa5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -42,7 +42,7 @@ if(NOT $ENV{GZ_RELAX_VERSION_MATCH} STREQUAL "") + set(VERSION_MATCH "") + endif() + +-find_package(${LIB_NAME_FULL} ${VERSION_MATCH} ${LIB_VER} COMPONENTS all QUIET) ++find_package(${LIB_NAME_FULL} COMPONENTS all QUIET) + + ament_vendor(${LIB_NAME_UNDERSCORE}_vendor + SATISFIED ${${LIB_NAME_FULL}_FOUND} diff --git a/recipes/ros-jazzy-gz-sensors-vendor/recipe.yaml b/recipes/ros-jazzy-gz-sensors-vendor/recipe.yaml new file mode 100644 index 00000000..a5c7e3e6 --- /dev/null +++ b/recipes/ros-jazzy-gz-sensors-vendor/recipe.yaml @@ -0,0 +1,109 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-sensors-vendor + version: 0.0.5 +source: + git: https://github.com/ros2-gbp/gz_sensors_vendor-release.git + tag: release/jazzy/gz_sensors_vendor/0.0.5-1 + target_directory: ros-jazzy-gz-sensors-vendor/src/work + patches: + - patch/ros-jazzy-gz-sensors-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - gz-sensors8 + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-common-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-rendering-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-transport-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sdformat-vendor + - ros2-distro-mutex 0.6.* jazzy_* + run: + - gz-sensors8 + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-common-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-rendering-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-transport-vendor + - ros-jazzy-ros-workspace + - ros-jazzy-sdformat-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gz-sim-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-sim-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-sim-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-sim-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-sim-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-sim-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-sim-vendor/patch/ros-jazzy-gz-sim-vendor.patch b/recipes/ros-jazzy-gz-sim-vendor/patch/ros-jazzy-gz-sim-vendor.patch new file mode 100644 index 00000000..482109fd --- /dev/null +++ b/recipes/ros-jazzy-gz-sim-vendor/patch/ros-jazzy-gz-sim-vendor.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index db289b6..e1f3327 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -48,7 +48,7 @@ if(NOT $ENV{GZ_RELAX_VERSION_MATCH} STREQUAL "") + set(VERSION_MATCH "") + endif() + +-find_package(${LIB_NAME_FULL} ${VERSION_MATCH} ${LIB_VER} COMPONENTS all QUIET) ++find_package(${LIB_NAME_FULL} COMPONENTS all QUIET) + + ament_vendor(${LIB_NAME_UNDERSCORE}_vendor + SATISFIED ${${LIB_NAME_FULL}_FOUND} diff --git a/recipes/ros-jazzy-gz-sim-vendor/recipe.yaml b/recipes/ros-jazzy-gz-sim-vendor/recipe.yaml new file mode 100644 index 00000000..5c34e70f --- /dev/null +++ b/recipes/ros-jazzy-gz-sim-vendor/recipe.yaml @@ -0,0 +1,162 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-sim-vendor + version: 0.0.6 +source: + git: https://github.com/ros2-gbp/gz_sim_vendor-release.git + tag: release/jazzy/gz_sim_vendor/0.0.6-1 + target_directory: ros-jazzy-gz-sim-vendor/src/work + patches: + - patch/ros-jazzy-gz-sim-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - pybind11 + - if: build_platform != target_platform + then: + - qt-main + host: + - benchmark + - if: build_platform == target_platform + then: + - pkg-config + - freeglut + - freeimage + - glew + - gz-sim8 + - libprotobuf + - numpy + - pip + - protobuf + - pybind11 + - pytest + - python + - qt-main + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-common-vendor + - ros-jazzy-gz-fuel-tools-vendor + - ros-jazzy-gz-gui-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-physics-vendor + - ros-jazzy-gz-plugin-vendor + - ros-jazzy-gz-rendering-vendor + - ros-jazzy-gz-sensors-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-transport-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sdformat-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + - xorg-libxi + - xorg-libxmu + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - benchmark + - freeglut + - freeimage + - glew + - gz-sim8 + - libprotobuf + - protobuf + - pybind11 + - python + - qt-main + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-common-vendor + - ros-jazzy-gz-fuel-tools-vendor + - ros-jazzy-gz-gui-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-physics-vendor + - ros-jazzy-gz-plugin-vendor + - ros-jazzy-gz-rendering-vendor + - ros-jazzy-gz-sensors-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-transport-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-workspace + - ros-jazzy-sdformat-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + - xorg-libxi + - xorg-libxmu + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-gz-tools-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-tools-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-tools-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-tools-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-tools-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-tools-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-tools-vendor/recipe.yaml b/recipes/ros-jazzy-gz-tools-vendor/recipe.yaml new file mode 100644 index 00000000..74dd17c1 --- /dev/null +++ b/recipes/ros-jazzy-gz-tools-vendor/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-tools-vendor + version: 0.0.5 +source: + git: https://github.com/ros2-gbp/gz_tools_vendor-release.git + tag: release/jazzy/gz_tools_vendor/0.0.5-1 + target_directory: ros-jazzy-gz-tools-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - gz-tools2 + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - gz-tools2 + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - ruby + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gz-transport-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-transport-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-transport-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-transport-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-transport-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-transport-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-transport-vendor/patch/ros-jazzy-gz-transport-vendor.patch b/recipes/ros-jazzy-gz-transport-vendor/patch/ros-jazzy-gz-transport-vendor.patch new file mode 100644 index 00000000..01ccc875 --- /dev/null +++ b/recipes/ros-jazzy-gz-transport-vendor/patch/ros-jazzy-gz-transport-vendor.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d0d7a23..77f334f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -38,7 +38,7 @@ if(NOT $ENV{GZ_RELAX_VERSION_MATCH} STREQUAL "") + set(VERSION_MATCH "") + endif() + +-find_package(${LIB_NAME_FULL} ${VERSION_MATCH} ${LIB_VER} COMPONENTS all QUIET) ++find_package(${LIB_NAME_FULL} COMPONENTS all QUIET) + + ament_vendor(${LIB_NAME_UNDERSCORE}_vendor + SATISFIED ${${LIB_NAME_FULL}_FOUND} diff --git a/recipes/ros-jazzy-gz-transport-vendor/recipe.yaml b/recipes/ros-jazzy-gz-transport-vendor/recipe.yaml new file mode 100644 index 00000000..6eca53e6 --- /dev/null +++ b/recipes/ros-jazzy-gz-transport-vendor/recipe.yaml @@ -0,0 +1,124 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-transport-vendor + version: 0.0.5 +source: + git: https://github.com/ros2-gbp/gz_transport_vendor-release.git + tag: release/jazzy/gz_transport_vendor/0.0.5-1 + target_directory: ros-jazzy-gz-transport-vendor/src/work + patches: + - patch/ros-jazzy-gz-transport-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - pybind11 + host: + - if: build_platform == target_platform + then: + - pkg-config + - cppzmq + - gz-transport13 + - libprotobuf + - numpy + - pip + - pkg-config + - protobuf + - psutil + - pybind11 + - pytest + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - sqlite 3.* + - zeromq + run: + - cppzmq + - gz-transport13 + - libprotobuf + - pkg-config + - protobuf + - psutil + - pybind11 + - pytest + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - sqlite + - zeromq + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gz-utils-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-utils-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-utils-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gz-utils-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-gz-utils-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-utils-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gz-utils-vendor/patch/ros-jazzy-gz-utils-vendor.patch b/recipes/ros-jazzy-gz-utils-vendor/patch/ros-jazzy-gz-utils-vendor.patch new file mode 100644 index 00000000..fdaa4012 --- /dev/null +++ b/recipes/ros-jazzy-gz-utils-vendor/patch/ros-jazzy-gz-utils-vendor.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 264ab97..acc88cd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -34,7 +34,7 @@ if(NOT $ENV{GZ_RELAX_VERSION_MATCH} STREQUAL "") + set(VERSION_MATCH "") + endif() + +-find_package(${LIB_NAME_FULL} ${VERSION_MATCH} ${LIB_VER} COMPONENTS all QUIET) ++find_package(${LIB_NAME_FULL} COMPONENTS all QUIET) + + ament_vendor(${LIB_NAME_UNDERSCORE}_vendor + SATISFIED ${${LIB_NAME_FULL}_FOUND} diff --git a/recipes/ros-jazzy-gz-utils-vendor/recipe.yaml b/recipes/ros-jazzy-gz-utils-vendor/recipe.yaml new file mode 100644 index 00000000..36a0fdfe --- /dev/null +++ b/recipes/ros-jazzy-gz-utils-vendor/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-utils-vendor + version: 0.0.4 +source: + git: https://github.com/ros2-gbp/gz_utils_vendor-release.git + tag: release/jazzy/gz_utils_vendor/0.0.4-1 + target_directory: ros-jazzy-gz-utils-vendor/src/work + patches: + - patch/ros-jazzy-gz-utils-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - gz-utils2 + - numpy + - pip + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - gz-utils2 + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-iceoryx-binding-c/bld_catkin.bat b/recipes/ros-jazzy-iceoryx-binding-c/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-iceoryx-binding-c/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-iceoryx-binding-c/build_catkin.sh b/recipes/ros-jazzy-iceoryx-binding-c/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/recipes/ros-jazzy-iceoryx-binding-c/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-iceoryx-binding-c/recipe.yaml b/recipes/ros-jazzy-iceoryx-binding-c/recipe.yaml new file mode 100644 index 00000000..c9c4787c --- /dev/null +++ b/recipes/ros-jazzy-iceoryx-binding-c/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-iceoryx-binding-c + version: 2.0.6 +source: + git: https://github.com/ros2-gbp/iceoryx-release.git + tag: release/jazzy/iceoryx_binding_c/2.0.6-1 + target_directory: ros-jazzy-iceoryx-binding-c/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-iceoryx-hoofs + - ros-jazzy-iceoryx-posh + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-iceoryx-hoofs/bld_catkin.bat b/recipes/ros-jazzy-iceoryx-hoofs/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-iceoryx-hoofs/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-iceoryx-hoofs/build_catkin.sh b/recipes/ros-jazzy-iceoryx-hoofs/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/recipes/ros-jazzy-iceoryx-hoofs/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-iceoryx-hoofs/recipe.yaml b/recipes/ros-jazzy-iceoryx-hoofs/recipe.yaml new file mode 100644 index 00000000..77b55106 --- /dev/null +++ b/recipes/ros-jazzy-iceoryx-hoofs/recipe.yaml @@ -0,0 +1,83 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-iceoryx-hoofs + version: 2.0.6 +source: + git: https://github.com/ros2-gbp/iceoryx-release.git + tag: release/jazzy/iceoryx_hoofs/2.0.6-1 + target_directory: ros-jazzy-iceoryx-hoofs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-iceoryx-posh/bld_catkin.bat b/recipes/ros-jazzy-iceoryx-posh/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-iceoryx-posh/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-iceoryx-posh/build_catkin.sh b/recipes/ros-jazzy-iceoryx-posh/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/recipes/ros-jazzy-iceoryx-posh/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-iceoryx-posh/recipe.yaml b/recipes/ros-jazzy-iceoryx-posh/recipe.yaml new file mode 100644 index 00000000..f444dfbf --- /dev/null +++ b/recipes/ros-jazzy-iceoryx-posh/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-iceoryx-posh + version: 2.0.6 +source: + git: https://github.com/ros2-gbp/iceoryx-release.git + tag: release/jazzy/iceoryx_posh/2.0.6-1 + target_directory: ros-jazzy-iceoryx-posh/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-iceoryx-hoofs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-iceoryx-hoofs + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-image-geometry/bld_ament_cmake.bat b/recipes/ros-jazzy-image-geometry/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-image-geometry/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-image-geometry/build_ament_cmake.sh b/recipes/ros-jazzy-image-geometry/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-image-geometry/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-image-geometry/recipe.yaml b/recipes/ros-jazzy-image-geometry/recipe.yaml new file mode 100644 index 00000000..19dc1fd0 --- /dev/null +++ b/recipes/ros-jazzy-image-geometry/recipe.yaml @@ -0,0 +1,107 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-image-geometry + version: 4.1.0 +source: + git: https://github.com/ros2-gbp/vision_opencv-release.git + tag: release/jazzy/image_geometry/4.1.0-1 + target_directory: ros-jazzy-image-geometry/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - deprecated + - libopencv + - numpy + - pip + - py-opencv + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - deprecated + - libopencv + - py-opencv + - python + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-image-tools/bld_ament_cmake.bat b/recipes/ros-jazzy-image-tools/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-image-tools/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-image-tools/build_ament_cmake.sh b/recipes/ros-jazzy-image-tools/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-image-tools/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-image-tools/recipe.yaml b/recipes/ros-jazzy-image-tools/recipe.yaml new file mode 100644 index 00000000..8130f6b0 --- /dev/null +++ b/recipes/ros-jazzy-image-tools/recipe.yaml @@ -0,0 +1,117 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-image-tools + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/image_tools/0.33.5-1 + target_directory: ros-jazzy-image-tools/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - libopencv + - numpy + - pip + - py-opencv + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-launch-testing-ros + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rmw-implementation-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - libopencv + - py-opencv + - python + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-image-transport-plugins/bld_ament_cmake.bat b/recipes/ros-jazzy-image-transport-plugins/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-image-transport-plugins/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-image-transport-plugins/build_ament_cmake.sh b/recipes/ros-jazzy-image-transport-plugins/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-image-transport-plugins/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-image-transport-plugins/recipe.yaml b/recipes/ros-jazzy-image-transport-plugins/recipe.yaml new file mode 100644 index 00000000..ba0f1eb9 --- /dev/null +++ b/recipes/ros-jazzy-image-transport-plugins/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-image-transport-plugins + version: 4.0.3 +source: + git: https://github.com/ros2-gbp/image_transport_plugins-release.git + tag: release/jazzy/image_transport_plugins/4.0.3-1 + target_directory: ros-jazzy-image-transport-plugins/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-compressed-depth-image-transport + - ros-jazzy-compressed-image-transport + - ros-jazzy-ros-workspace + - ros-jazzy-theora-image-transport + - ros-jazzy-zstd-image-transport + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-image-transport/bld_ament_cmake.bat b/recipes/ros-jazzy-image-transport/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-image-transport/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-image-transport/build_ament_cmake.sh b/recipes/ros-jazzy-image-transport/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-image-transport/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-image-transport/recipe.yaml b/recipes/ros-jazzy-image-transport/recipe.yaml new file mode 100644 index 00000000..c2ce461f --- /dev/null +++ b/recipes/ros-jazzy-image-transport/recipe.yaml @@ -0,0 +1,97 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-image-transport + version: 5.1.5 +source: + git: https://github.com/ros2-gbp/image_common-release.git + tag: release/jazzy/image_transport/5.1.5-1 + target_directory: ros-jazzy-image-transport/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-message-filters + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-message-filters + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-interactive-markers/bld_ament_cmake.bat b/recipes/ros-jazzy-interactive-markers/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-interactive-markers/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-interactive-markers/build_ament_cmake.sh b/recipes/ros-jazzy-interactive-markers/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-interactive-markers/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-interactive-markers/recipe.yaml b/recipes/ros-jazzy-interactive-markers/recipe.yaml new file mode 100644 index 00000000..07253da0 --- /dev/null +++ b/recipes/ros-jazzy-interactive-markers/recipe.yaml @@ -0,0 +1,107 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-interactive-markers + version: 2.5.4 +source: + git: https://github.com/ros2-gbp/interactive_markers-release.git + tag: release/jazzy/interactive_markers/2.5.4-2 + target_directory: ros-jazzy-interactive-markers/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rclpy + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-intra-process-demo/bld_ament_cmake.bat b/recipes/ros-jazzy-intra-process-demo/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-intra-process-demo/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-intra-process-demo/build_ament_cmake.sh b/recipes/ros-jazzy-intra-process-demo/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-intra-process-demo/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-intra-process-demo/recipe.yaml b/recipes/ros-jazzy-intra-process-demo/recipe.yaml new file mode 100644 index 00000000..030aea4e --- /dev/null +++ b/recipes/ros-jazzy-intra-process-demo/recipe.yaml @@ -0,0 +1,112 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-intra-process-demo + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/intra_process_demo/0.33.5-1 + target_directory: ros-jazzy-intra-process-demo/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - libopencv + - numpy + - pip + - py-opencv + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-rclcpp + - ros-jazzy-rmw-implementation-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - libopencv + - py-opencv + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-joy/bld_ament_cmake.bat b/recipes/ros-jazzy-joy/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-joy/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-joy/build_ament_cmake.sh b/recipes/ros-jazzy-joy/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-joy/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-joy/recipe.yaml b/recipes/ros-jazzy-joy/recipe.yaml new file mode 100644 index 00000000..226f94f4 --- /dev/null +++ b/recipes/ros-jazzy-joy/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-joy + version: 3.3.0 +source: + git: https://github.com/ros2-gbp/joystick_drivers-release.git + tag: release/jazzy/joy/3.3.0-3 + target_directory: ros-jazzy-joy/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sdl2-vendor + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sdl2-vendor + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-kdl-parser/bld_ament_cmake.bat b/recipes/ros-jazzy-kdl-parser/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-kdl-parser/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-kdl-parser/build_ament_cmake.sh b/recipes/ros-jazzy-kdl-parser/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-kdl-parser/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-kdl-parser/recipe.yaml b/recipes/ros-jazzy-kdl-parser/recipe.yaml new file mode 100644 index 00000000..6d1a8010 --- /dev/null +++ b/recipes/ros-jazzy-kdl-parser/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-kdl-parser + version: 2.11.0 +source: + git: https://github.com/ros2-gbp/kdl_parser-release.git + tag: release/jazzy/kdl_parser/2.11.0-3 + target_directory: ros-jazzy-kdl-parser/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-urdf + - ros-jazzy-urdfdom-headers + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-urdf + - ros-jazzy-urdfdom-headers + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-keyboard-handler/bld_ament_cmake.bat b/recipes/ros-jazzy-keyboard-handler/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-keyboard-handler/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-keyboard-handler/build_ament_cmake.sh b/recipes/ros-jazzy-keyboard-handler/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-keyboard-handler/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-keyboard-handler/recipe.yaml b/recipes/ros-jazzy-keyboard-handler/recipe.yaml new file mode 100644 index 00000000..492f62ae --- /dev/null +++ b/recipes/ros-jazzy-keyboard-handler/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-keyboard-handler + version: 0.3.1 +source: + git: https://github.com/ros2-gbp/keyboard_handler-release.git + tag: release/jazzy/keyboard_handler/0.3.1-2 + target_directory: ros-jazzy-keyboard-handler/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-laser-geometry/bld_ament_cmake.bat b/recipes/ros-jazzy-laser-geometry/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-laser-geometry/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-laser-geometry/build_ament_cmake.sh b/recipes/ros-jazzy-laser-geometry/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-laser-geometry/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-laser-geometry/recipe.yaml b/recipes/ros-jazzy-laser-geometry/recipe.yaml new file mode 100644 index 00000000..eea24fe9 --- /dev/null +++ b/recipes/ros-jazzy-laser-geometry/recipe.yaml @@ -0,0 +1,104 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-laser-geometry + version: 2.7.0 +source: + git: https://github.com/ros2-gbp/laser_geometry-release.git + tag: release/jazzy/laser_geometry/2.7.0-3 + target_directory: ros-jazzy-laser-geometry/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - eigen + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-cppcheck + - ros-jazzy-ament-cmake-cpplint + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-uncrustify + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-python-cmake-module + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2 + - ros2-distro-mutex 0.6.* jazzy_* + run: + - eigen + - numpy + - python + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-rclcpp + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-sensor-msgs-py + - ros-jazzy-tf2 + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-launch-ros/bld_ament_python.bat b/recipes/ros-jazzy-launch-ros/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-launch-ros/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-launch-ros/build_ament_python.sh b/recipes/ros-jazzy-launch-ros/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-launch-ros/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-launch-ros/recipe.yaml b/recipes/ros-jazzy-launch-ros/recipe.yaml new file mode 100644 index 00000000..292dd194 --- /dev/null +++ b/recipes/ros-jazzy-launch-ros/recipe.yaml @@ -0,0 +1,104 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-launch-ros + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/launch_ros-release.git + tag: release/jazzy/launch_ros/0.26.6-1 + target_directory: ros-jazzy-launch-ros/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - importlib-metadata + - numpy + - pip + - pytest + - python + - pyyaml + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-index-python + - ros-jazzy-ament-pep257 + - ros-jazzy-composition-interfaces + - ros-jazzy-launch + - ros-jazzy-lifecycle-msgs + - ros-jazzy-osrf-pycommon + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - importlib-metadata + - python + - pyyaml + - ros-jazzy-ament-index-python + - ros-jazzy-composition-interfaces + - ros-jazzy-launch + - ros-jazzy-lifecycle-msgs + - ros-jazzy-osrf-pycommon + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-launch-testing-ament-cmake/bld_ament_cmake.bat b/recipes/ros-jazzy-launch-testing-ament-cmake/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-launch-testing-ament-cmake/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-launch-testing-ament-cmake/build_ament_cmake.sh b/recipes/ros-jazzy-launch-testing-ament-cmake/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-launch-testing-ament-cmake/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-launch-testing-ament-cmake/recipe.yaml b/recipes/ros-jazzy-launch-testing-ament-cmake/recipe.yaml new file mode 100644 index 00000000..f7580e34 --- /dev/null +++ b/recipes/ros-jazzy-launch-testing-ament-cmake/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-launch-testing-ament-cmake + version: 3.4.3 +source: + git: https://github.com/ros2-gbp/launch-release.git + tag: release/jazzy/launch_testing_ament_cmake/3.4.3-1 + target_directory: ros-jazzy-launch-testing-ament-cmake/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-test + - ros-jazzy-launch-testing + - ros-jazzy-python-cmake-module + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-launch-testing + - ros-jazzy-python-cmake-module + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-launch-testing-ros/bld_ament_python.bat b/recipes/ros-jazzy-launch-testing-ros/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-launch-testing-ros/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-launch-testing-ros/build_ament_python.sh b/recipes/ros-jazzy-launch-testing-ros/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-launch-testing-ros/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-launch-testing-ros/recipe.yaml b/recipes/ros-jazzy-launch-testing-ros/recipe.yaml new file mode 100644 index 00000000..4cfd4565 --- /dev/null +++ b/recipes/ros-jazzy-launch-testing-ros/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-launch-testing-ros + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/launch_ros-release.git + tag: release/jazzy/launch_testing_ros/0.26.6-1 + target_directory: ros-jazzy-launch-testing-ros/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ament-index-python + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-launch-testing/bld_ament_python.bat b/recipes/ros-jazzy-launch-testing/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-launch-testing/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-launch-testing/build_ament_python.sh b/recipes/ros-jazzy-launch-testing/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-launch-testing/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-launch-testing/recipe.yaml b/recipes/ros-jazzy-launch-testing/recipe.yaml new file mode 100644 index 00000000..bdda5324 --- /dev/null +++ b/recipes/ros-jazzy-launch-testing/recipe.yaml @@ -0,0 +1,96 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-launch-testing + version: 3.4.3 +source: + git: https://github.com/ros2-gbp/launch-release.git + tag: release/jazzy/launch_testing/3.4.3-1 + target_directory: ros-jazzy-launch-testing/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-launch + - ros-jazzy-launch-xml + - ros-jazzy-launch-yaml + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - pytest + - python + - ros-jazzy-ament-index-python + - ros-jazzy-launch + - ros-jazzy-launch-xml + - ros-jazzy-launch-yaml + - ros-jazzy-osrf-pycommon + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-launch-xml/bld_ament_python.bat b/recipes/ros-jazzy-launch-xml/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-launch-xml/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-launch-xml/build_ament_python.sh b/recipes/ros-jazzy-launch-xml/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-launch-xml/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-launch-xml/recipe.yaml b/recipes/ros-jazzy-launch-xml/recipe.yaml new file mode 100644 index 00000000..d973bfe4 --- /dev/null +++ b/recipes/ros-jazzy-launch-xml/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-launch-xml + version: 3.4.3 +source: + git: https://github.com/ros2-gbp/launch-release.git + tag: release/jazzy/launch_xml/3.4.3-1 + target_directory: ros-jazzy-launch-xml/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-launch + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-launch + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-launch-yaml/bld_ament_python.bat b/recipes/ros-jazzy-launch-yaml/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-launch-yaml/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-launch-yaml/build_ament_python.sh b/recipes/ros-jazzy-launch-yaml/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-launch-yaml/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-launch-yaml/recipe.yaml b/recipes/ros-jazzy-launch-yaml/recipe.yaml new file mode 100644 index 00000000..d1fc655a --- /dev/null +++ b/recipes/ros-jazzy-launch-yaml/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-launch-yaml + version: 3.4.3 +source: + git: https://github.com/ros2-gbp/launch-release.git + tag: release/jazzy/launch_yaml/3.4.3-1 + target_directory: ros-jazzy-launch-yaml/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-launch + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-launch + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-launch/bld_ament_python.bat b/recipes/ros-jazzy-launch/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-launch/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-launch/build_ament_python.sh b/recipes/ros-jazzy-launch/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-launch/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-launch/recipe.yaml b/recipes/ros-jazzy-launch/recipe.yaml new file mode 100644 index 00000000..d0760385 --- /dev/null +++ b/recipes/ros-jazzy-launch/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-launch + version: 3.4.3 +source: + git: https://github.com/ros2-gbp/launch-release.git + tag: release/jazzy/launch/3.4.3-1 + target_directory: ros-jazzy-launch/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-mypy + - ros-jazzy-ament-pep257 + - ros-jazzy-osrf-pycommon + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - importlib-metadata + - lark-parser + - python + - pyyaml + - ros-jazzy-ament-index-python + - ros-jazzy-osrf-pycommon + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-libcurl-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-libcurl-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-libcurl-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-libcurl-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-libcurl-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-libcurl-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-libcurl-vendor/recipe.yaml b/recipes/ros-jazzy-libcurl-vendor/recipe.yaml new file mode 100644 index 00000000..28be731a --- /dev/null +++ b/recipes/ros-jazzy-libcurl-vendor/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-libcurl-vendor + version: 3.4.3 +source: + git: https://github.com/ros2-gbp/resource_retriever-release.git + tag: release/jazzy/libcurl_vendor/3.4.3-1 + target_directory: ros-jazzy-libcurl-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - file + - libcurl + - numpy + - pip + - pkg-config + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - libcurl + - pkg-config + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-liblz4-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-liblz4-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-liblz4-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-liblz4-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-liblz4-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-liblz4-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-liblz4-vendor/recipe.yaml b/recipes/ros-jazzy-liblz4-vendor/recipe.yaml new file mode 100644 index 00000000..44e45863 --- /dev/null +++ b/recipes/ros-jazzy-liblz4-vendor/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-liblz4-vendor + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/liblz4_vendor/0.26.6-1 + target_directory: ros-jazzy-liblz4-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - lz4 + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - lz4 + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-libstatistics-collector/bld_ament_cmake.bat b/recipes/ros-jazzy-libstatistics-collector/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-libstatistics-collector/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-libstatistics-collector/build_ament_cmake.sh b/recipes/ros-jazzy-libstatistics-collector/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-libstatistics-collector/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-libstatistics-collector/recipe.yaml b/recipes/ros-jazzy-libstatistics-collector/recipe.yaml new file mode 100644 index 00000000..2e56f3d8 --- /dev/null +++ b/recipes/ros-jazzy-libstatistics-collector/recipe.yaml @@ -0,0 +1,102 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-libstatistics-collector + version: 1.7.4 +source: + git: https://github.com/ros2-gbp/libstatistics_collector-release.git + tag: release/jazzy/libstatistics_collector/1.7.4-1 + target_directory: ros-jazzy-libstatistics-collector/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-performance-test-fixture + - ros-jazzy-rcl + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-statistics-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-rcl + - ros-jazzy-rcpputils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-statistics-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-libyaml-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-libyaml-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-libyaml-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-libyaml-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-libyaml-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-libyaml-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-libyaml-vendor/recipe.yaml b/recipes/ros-jazzy-libyaml-vendor/recipe.yaml new file mode 100644 index 00000000..35ccd290 --- /dev/null +++ b/recipes/ros-jazzy-libyaml-vendor/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-libyaml-vendor + version: 1.6.3 +source: + git: https://github.com/ros2-gbp/libyaml_vendor-release.git + tag: release/jazzy/libyaml_vendor/1.6.3-2 + target_directory: ros-jazzy-libyaml-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pkg-config + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-performance-test-fixture + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - yaml + - yaml-cpp + run: + - pkg-config + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - yaml + - yaml-cpp + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-lifecycle-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-lifecycle-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-lifecycle-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-lifecycle-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-lifecycle-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-lifecycle-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-lifecycle-msgs/recipe.yaml b/recipes/ros-jazzy-lifecycle-msgs/recipe.yaml new file mode 100644 index 00000000..d9ecd590 --- /dev/null +++ b/recipes/ros-jazzy-lifecycle-msgs/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-lifecycle-msgs + version: 2.0.2 +source: + git: https://github.com/ros2-gbp/rcl_interfaces-release.git + tag: release/jazzy/lifecycle_msgs/2.0.2-2 + target_directory: ros-jazzy-lifecycle-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-lifecycle/bld_ament_cmake.bat b/recipes/ros-jazzy-lifecycle/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-lifecycle/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-lifecycle/build_ament_cmake.sh b/recipes/ros-jazzy-lifecycle/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-lifecycle/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-lifecycle/recipe.yaml b/recipes/ros-jazzy-lifecycle/recipe.yaml new file mode 100644 index 00000000..9827993a --- /dev/null +++ b/recipes/ros-jazzy-lifecycle/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-lifecycle + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/lifecycle/0.33.5-1 + target_directory: ros-jazzy-lifecycle/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-lifecycle-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-testing + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-lifecycle-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-logging-demo/bld_ament_cmake.bat b/recipes/ros-jazzy-logging-demo/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-logging-demo/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-logging-demo/build_ament_cmake.sh b/recipes/ros-jazzy-logging-demo/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-logging-demo/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-logging-demo/recipe.yaml b/recipes/ros-jazzy-logging-demo/recipe.yaml new file mode 100644 index 00000000..3e7a85c2 --- /dev/null +++ b/recipes/ros-jazzy-logging-demo/recipe.yaml @@ -0,0 +1,102 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-logging-demo + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/logging_demo/0.33.5-1 + target_directory: ros-jazzy-logging-demo/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-launch-testing-ros + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcutils + - ros-jazzy-rmw-implementation-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-map-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-map-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-map-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-map-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-map-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-map-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-map-msgs/recipe.yaml b/recipes/ros-jazzy-map-msgs/recipe.yaml new file mode 100644 index 00000000..dad18f04 --- /dev/null +++ b/recipes/ros-jazzy-map-msgs/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-map-msgs + version: 2.4.1 +source: + git: https://github.com/ros2-gbp/navigation_msgs-release.git + tag: release/jazzy/map_msgs/2.4.1-2 + target_directory: ros-jazzy-map-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-nav-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-nav-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-mcap-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-mcap-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-mcap-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-mcap-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-mcap-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-mcap-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-mcap-vendor/recipe.yaml b/recipes/ros-jazzy-mcap-vendor/recipe.yaml new file mode 100644 index 00000000..49b52c4e --- /dev/null +++ b/recipes/ros-jazzy-mcap-vendor/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-mcap-vendor + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/mcap_vendor/0.26.6-1 + target_directory: ros-jazzy-mcap-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-liblz4-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-zstd-vendor + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-liblz4-vendor + - ros-jazzy-ros-workspace + - ros-jazzy-zstd-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-message-filters/bld_ament_cmake.bat b/recipes/ros-jazzy-message-filters/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-message-filters/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-message-filters/build_ament_cmake.sh b/recipes/ros-jazzy-message-filters/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-message-filters/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-message-filters/recipe.yaml b/recipes/ros-jazzy-message-filters/recipe.yaml new file mode 100644 index 00000000..e9b33ce9 --- /dev/null +++ b/recipes/ros-jazzy-message-filters/recipe.yaml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-message-filters + version: 4.11.3 +source: + git: https://github.com/ros2-gbp/ros2_message_filters-release.git + tag: release/jazzy/message_filters/4.11.3-1 + target_directory: ros-jazzy-message-filters/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-python-cmake-module + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclpy + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-mimick-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-mimick-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-mimick-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-mimick-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-mimick-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-mimick-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-mimick-vendor/recipe.yaml b/recipes/ros-jazzy-mimick-vendor/recipe.yaml new file mode 100644 index 00000000..c2101b67 --- /dev/null +++ b/recipes/ros-jazzy-mimick-vendor/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-mimick-vendor + version: 0.6.2 +source: + git: https://github.com/ros2-gbp/mimick_vendor-release.git + tag: release/jazzy/mimick_vendor/0.6.2-1 + target_directory: ros-jazzy-mimick-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - vcstool + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-nav-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-nav-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav-msgs/recipe.yaml b/recipes/ros-jazzy-nav-msgs/recipe.yaml new file mode 100644 index 00000000..03f154cf --- /dev/null +++ b/recipes/ros-jazzy-nav-msgs/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-nav-msgs + version: 5.3.5 +source: + git: https://github.com/ros2-gbp/common_interfaces-release.git + tag: release/jazzy/nav_msgs/5.3.5-1 + target_directory: ros-jazzy-nav-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-orocos-kdl-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-orocos-kdl-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-orocos-kdl-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-orocos-kdl-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-orocos-kdl-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-orocos-kdl-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-orocos-kdl-vendor/recipe.yaml b/recipes/ros-jazzy-orocos-kdl-vendor/recipe.yaml new file mode 100644 index 00000000..1dcefa2d --- /dev/null +++ b/recipes/ros-jazzy-orocos-kdl-vendor/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-orocos-kdl-vendor + version: 0.5.1 +source: + git: https://github.com/ros2-gbp/orocos_kdl_vendor-release.git + tag: release/jazzy/orocos_kdl_vendor/0.5.1-2 + target_directory: ros-jazzy-orocos-kdl-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - eigen + - numpy + - orocos-kdl + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - eigen + - orocos-kdl + - python + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-osrf-pycommon/bld_ament_python.bat b/recipes/ros-jazzy-osrf-pycommon/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-osrf-pycommon/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-osrf-pycommon/build_ament_python.sh b/recipes/ros-jazzy-osrf-pycommon/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-osrf-pycommon/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-osrf-pycommon/recipe.yaml b/recipes/ros-jazzy-osrf-pycommon/recipe.yaml new file mode 100644 index 00000000..e59fbafa --- /dev/null +++ b/recipes/ros-jazzy-osrf-pycommon/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-osrf-pycommon + version: 2.1.5 +source: + git: https://github.com/ros2-gbp/osrf_pycommon-release.git + tag: release/jazzy/osrf_pycommon/2.1.5-1 + target_directory: ros-jazzy-osrf-pycommon/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - importlib-metadata + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-osrf-testing-tools-cpp/bld_catkin.bat b/recipes/ros-jazzy-osrf-testing-tools-cpp/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-osrf-testing-tools-cpp/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-osrf-testing-tools-cpp/build_catkin.sh b/recipes/ros-jazzy-osrf-testing-tools-cpp/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/recipes/ros-jazzy-osrf-testing-tools-cpp/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-osrf-testing-tools-cpp/recipe.yaml b/recipes/ros-jazzy-osrf-testing-tools-cpp/recipe.yaml new file mode 100644 index 00000000..0cdb9444 --- /dev/null +++ b/recipes/ros-jazzy-osrf-testing-tools-cpp/recipe.yaml @@ -0,0 +1,83 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-osrf-testing-tools-cpp + version: 2.0.0 +source: + git: https://github.com/ros2-gbp/osrf_testing_tools_cpp-release.git + tag: release/jazzy/osrf_testing_tools_cpp/2.0.0-3 + target_directory: ros-jazzy-osrf-testing-tools-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-pendulum-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-pendulum-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-pendulum-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-pendulum-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-pendulum-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-pendulum-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-pendulum-msgs/recipe.yaml b/recipes/ros-jazzy-pendulum-msgs/recipe.yaml new file mode 100644 index 00000000..21ccf08e --- /dev/null +++ b/recipes/ros-jazzy-pendulum-msgs/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-pendulum-msgs + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/pendulum_msgs/0.33.5-1 + target_directory: ros-jazzy-pendulum-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-performance-test-fixture/bld_ament_cmake.bat b/recipes/ros-jazzy-performance-test-fixture/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-performance-test-fixture/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-performance-test-fixture/build_ament_cmake.sh b/recipes/ros-jazzy-performance-test-fixture/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-performance-test-fixture/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-performance-test-fixture/recipe.yaml b/recipes/ros-jazzy-performance-test-fixture/recipe.yaml new file mode 100644 index 00000000..0ba1a6cf --- /dev/null +++ b/recipes/ros-jazzy-performance-test-fixture/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-performance-test-fixture + version: 0.2.1 +source: + git: https://github.com/ros2-gbp/performance_test_fixture-release.git + tag: release/jazzy/performance_test_fixture/0.2.1-2 + target_directory: ros-jazzy-performance-test-fixture/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-dependencies + - ros-jazzy-ament-cmake-export-targets + - ros-jazzy-ament-cmake-google-benchmark + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-google-benchmark-vendor + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-google-benchmark + - ros-jazzy-google-benchmark-vendor + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-pluginlib/bld_ament_cmake.bat b/recipes/ros-jazzy-pluginlib/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-pluginlib/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-pluginlib/build_ament_cmake.sh b/recipes/ros-jazzy-pluginlib/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-pluginlib/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-pluginlib/recipe.yaml b/recipes/ros-jazzy-pluginlib/recipe.yaml new file mode 100644 index 00000000..bed0e572 --- /dev/null +++ b/recipes/ros-jazzy-pluginlib/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-pluginlib + version: 5.4.2 +source: + git: https://github.com/ros2-gbp/pluginlib-release.git + tag: release/jazzy/pluginlib/5.4.2-2 + target_directory: ros-jazzy-pluginlib/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-index-cpp + - ros-jazzy-class-loader + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tinyxml2-vendor + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-class-loader + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-tinyxml2-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-point-cloud-transport/bld_ament_cmake.bat b/recipes/ros-jazzy-point-cloud-transport/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-point-cloud-transport/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-point-cloud-transport/build_ament_cmake.sh b/recipes/ros-jazzy-point-cloud-transport/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-point-cloud-transport/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-point-cloud-transport/recipe.yaml b/recipes/ros-jazzy-point-cloud-transport/recipe.yaml new file mode 100644 index 00000000..c352d1e5 --- /dev/null +++ b/recipes/ros-jazzy-point-cloud-transport/recipe.yaml @@ -0,0 +1,100 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-point-cloud-transport + version: 4.0.3 +source: + git: https://github.com/ros2-gbp/point_cloud_transport-release.git + tag: release/jazzy/point_cloud_transport/4.0.3-1 + target_directory: ros-jazzy-point-cloud-transport/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-message-filters + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcpputils + - ros-jazzy-rmw + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-message-filters + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcpputils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-pybind11-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-pybind11-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-pybind11-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-pybind11-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-pybind11-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-pybind11-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-pybind11-vendor/recipe.yaml b/recipes/ros-jazzy-pybind11-vendor/recipe.yaml new file mode 100644 index 00000000..f47e707f --- /dev/null +++ b/recipes/ros-jazzy-pybind11-vendor/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-pybind11-vendor + version: 3.1.2 +source: + git: https://github.com/ros2-gbp/pybind11_vendor-release.git + tag: release/jazzy/pybind11_vendor/3.1.2-2 + target_directory: ros-jazzy-pybind11-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - pybind11 + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pybind11 + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - pybind11 + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-python-cmake-module/bld_ament_cmake.bat b/recipes/ros-jazzy-python-cmake-module/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-python-cmake-module/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-python-cmake-module/build_ament_cmake.sh b/recipes/ros-jazzy-python-cmake-module/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-python-cmake-module/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-python-cmake-module/recipe.yaml b/recipes/ros-jazzy-python-cmake-module/recipe.yaml new file mode 100644 index 00000000..31b343a0 --- /dev/null +++ b/recipes/ros-jazzy-python-cmake-module/recipe.yaml @@ -0,0 +1,86 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-python-cmake-module + version: 0.11.1 +source: + git: https://github.com/ros2-gbp/python_cmake_module-release.git + tag: release/jazzy/python_cmake_module/0.11.1-2 + target_directory: ros-jazzy-python-cmake-module/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-python-qt-binding/bld_ament_cmake.bat b/recipes/ros-jazzy-python-qt-binding/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-python-qt-binding/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-python-qt-binding/build_ament_cmake.sh b/recipes/ros-jazzy-python-qt-binding/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-python-qt-binding/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-python-qt-binding/patch/ros-jazzy-python-qt-binding.patch b/recipes/ros-jazzy-python-qt-binding/patch/ros-jazzy-python-qt-binding.patch new file mode 100644 index 00000000..d025bbca --- /dev/null +++ b/recipes/ros-jazzy-python-qt-binding/patch/ros-jazzy-python-qt-binding.patch @@ -0,0 +1,254 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 919969e..2bf015a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -11,6 +11,7 @@ install(FILES + cmake/shiboken_helper.cmake + cmake/sip_configure.py + cmake/sip_helper.cmake ++ cmake/pyproject.toml.in + DESTINATION share/${PROJECT_NAME}/cmake) + + if(BUILD_TESTING) +diff --git a/cmake/pyproject.toml.in b/cmake/pyproject.toml.in +new file mode 100644 +index 0000000..cf4f57f +--- /dev/null ++++ b/cmake/pyproject.toml.in +@@ -0,0 +1,31 @@ ++[project] ++name = "lib@PROJECT_NAME@" ++ ++# Specify sip v5 as the build system for the package. ++[build-system] ++requires = ["PyQt-builder >=1, <2"] ++build-backend = "sipbuild.api" ++ ++[tool.sip] ++project-factory = "pyqtbuild:PyQtProject" ++ ++[tool.sip.builder] ++qmake = "@QMAKE_EXECUTABLE@" ++qmake-settings = [ "QMAKE_MACOSX_DEPLOYMENT_TARGET=@MACOS_MINIMUM_VERSION@", "CONFIG+=c++17" ] ++ ++[tool.sip.project] ++sip-files-dir = "@SIP_FILES_DIR@" ++build-dir = "@SIP_BUILD_DIR@" ++verbose = true ++minimum-macos-version = "@MACOS_MINIMUM_VERSION@" ++# Specify the PEP 566 metadata for the project. ++[tool.sip.metadata] ++name = "lib@PROJECT_NAME@" ++ ++[tool.sip.bindings.libqt_gui_cpp_sip] ++sip-file = "@SIP_FILE@" ++include-dirs = [@SIP_INCLUDE_DIRS@] ++libraries = [@SIP_LIBARIES@] ++library-dirs = [@SIP_LIBRARY_DIRS@] ++qmake-QT = ["widgets"] ++exceptions = true +diff --git a/cmake/sip_configure.py b/cmake/sip_configure.py +index 5210ee5..7bafe73 100644 +--- a/cmake/sip_configure.py ++++ b/cmake/sip_configure.py +@@ -215,6 +215,7 @@ if sys.platform == 'win32': + # The __cplusplus flag is not properly set on Windows for backwards + # compatibilty. This flag sets it correctly + makefile.CXXFLAGS.append('/Zc:__cplusplus') ++ makefile.extra_cxxflags.append('/DROS_BUILD_SHARED_LIBS=1') + else: + makefile.extra_cxxflags.append('-std=c++17') + +diff --git a/cmake/sip_helper.cmake b/cmake/sip_helper.cmake +index a5ac3c2..fdc9c18 100644 +--- a/cmake/sip_helper.cmake ++++ b/cmake/sip_helper.cmake +@@ -31,7 +31,7 @@ execute_process( + if(PYTHON_SIP_EXECUTABLE) + string(STRIP ${PYTHON_SIP_EXECUTABLE} SIP_EXECUTABLE) + else() +- find_program(SIP_EXECUTABLE sip) ++ find_program(SIP_EXECUTABLE NAMES sip sip-build) + endif() + + if(SIP_EXECUTABLE) +@@ -42,6 +42,15 @@ else() + set(sip_helper_NOTFOUND TRUE) + endif() + ++if(sip_helper_FOUND) ++ execute_process( ++ COMMAND ${SIP_EXECUTABLE} -V ++ OUTPUT_VARIABLE SIP_VERSION ++ ERROR_QUIET) ++ string(STRIP ${SIP_VERSION} SIP_VERSION) ++ message(STATUS "SIP binding generator version: ${SIP_VERSION}") ++endif() ++ + # + # Run the SIP generator and compile the generated code into a library. + # +@@ -93,34 +102,107 @@ function(build_sip_binding PROJECT_NAME SIP_FILE) + set(LIBRARY_DIRS ${${PROJECT_NAME}_LIBRARY_DIRS}) + set(LDFLAGS_OTHER ${${PROJECT_NAME}_LDFLAGS_OTHER}) + +- add_custom_command( +- OUTPUT ${SIP_BUILD_DIR}/Makefile +- COMMAND ${Python3_EXECUTABLE} ${sip_SIP_CONFIGURE} ${SIP_BUILD_DIR} ${SIP_FILE} ${sip_LIBRARY_DIR} +- \"${INCLUDE_DIRS}\" \"${LIBRARIES}\" \"${LIBRARY_DIRS}\" \"${LDFLAGS_OTHER}\" +- DEPENDS ${sip_SIP_CONFIGURE} ${SIP_FILE} ${sip_DEPENDS} +- WORKING_DIRECTORY ${sip_SOURCE_DIR} +- COMMENT "Running SIP generator for ${PROJECT_NAME} Python bindings..." +- ) ++ if(${SIP_VERSION} VERSION_GREATER_EQUAL "5.0.0") ++ # Since v5, SIP implements the backend per PEP 517, PEP 518 ++ # Here we synthesize `pyproject.toml` and run `pip install` + +- if(NOT EXISTS "${sip_LIBRARY_DIR}") ++ find_program(QMAKE_EXECUTABLE NAMES qmake REQUIRED) ++ ++ file(REMOVE_RECURSE ${SIP_BUILD_DIR}) + file(MAKE_DIRECTORY ${sip_LIBRARY_DIR}) +- endif() + +- if(WIN32) +- set(MAKE_EXECUTABLE NMake.exe) ++ set(SIP_FILES_DIR ${sip_SOURCE_DIR}) ++ ++ set(SIP_INCLUDE_DIRS "") ++ foreach(_x ${INCLUDE_DIRS}) ++ set(SIP_INCLUDE_DIRS "${SIP_INCLUDE_DIRS},\"${_x}\"") ++ endforeach() ++ string(REGEX REPLACE "^," "" SIP_INCLUDE_DIRS ${SIP_INCLUDE_DIRS}) ++ ++ # SIP expects the libraries WITHOUT the file extension. ++ set(SIP_LIBARIES "") ++ set(SIP_LIBRARY_DIRS "") ++ ++ if(APPLE) ++ set(LIBRARIES_TO_LOOP ${LIBRARIES}) ++ else() ++ set(LIBRARIES_TO_LOOP ${LIBRARIES} ${PYTHON_LIBRARIES}) ++ endif() ++ ++ foreach(_x ${LIBRARIES_TO_LOOP}) ++ get_filename_component(_x_NAME "${_x}" NAME_WLE) ++ get_filename_component(_x_DIR "${_x}" DIRECTORY) ++ get_filename_component(_x "${_x_DIR}/${_x_NAME}" ABSOLUTE) ++ STRING(REGEX REPLACE "^lib" "" _x_NAME_NOPREFIX ${_x_NAME}) ++ ++ string(FIND "${_x_NAME_NOPREFIX}" "$" "" _x_NAME_NOPREFIX ${_x_NAME_NOPREFIX}) ++ if(NOT "${out2}" EQUAL -1) ++ message(STATUS "IGNORE: ${_x_NAME_NOPREFIX}") ++ else() ++ set(SIP_LIBARIES "${SIP_LIBARIES},\"${_x_NAME_NOPREFIX}\"") ++ endif() ++ else() ++ set(SIP_LIBARIES "${SIP_LIBARIES},\"${_x_NAME_NOPREFIX}\"") ++ set(SIP_LIBRARY_DIRS "${SIP_LIBRARY_DIRS},\"${_x_DIR}\"") ++ endif() ++ endforeach() ++ string(REGEX REPLACE "^," "" SIP_LIBARIES ${SIP_LIBARIES}) ++ ++ foreach(_x ${LIBRARY_DIRS}) ++ set(SIP_LIBRARY_DIRS "${SIP_LIBRARY_DIRS},\"${_x}\"") ++ endforeach() ++ string(REGEX REPLACE "^," "" SIP_LIBRARY_DIRS ${SIP_LIBRARY_DIRS}) ++ message(WARNING "test lib dir: ${SIP_LIBRARY_DIRS}") ++ ++ set(MACOS_MINIMUM_VERSION ${CMAKE_OSX_DEPLOYMENT_TARGET}) ++ ++ # TODO: ++ # I don't know what to do about LDFLAGS_OTHER ++ # what's the equivalent construct in sip5? ++ ++ configure_file( ++ ${__PYTHON_QT_BINDING_SIP_HELPER_DIR}/pyproject.toml.in ++ ${sip_BINARY_DIR}/sip/pyproject.toml ++ ) ++ add_custom_command( ++ OUTPUT ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ++ COMMAND ${Python3_EXECUTABLE} -m pip install . --target ${sip_LIBRARY_DIR} --no-deps --verbose --upgrade ++ DEPENDS ${sip_SIP_CONFIGURE} ${SIP_FILE} ${sip_DEPENDS} ++ WORKING_DIRECTORY ${sip_BINARY_DIR}/sip ++ COMMENT "Running SIP-build generator for ${PROJECT_NAME} Python bindings..." ++ ) + else() +- find_program(MAKE_PROGRAM NAMES make) +- message(STATUS "Found required make: ${MAKE_PROGRAM}") +- set(MAKE_EXECUTABLE ${MAKE_PROGRAM}) +- endif() ++ add_custom_command( ++ OUTPUT ${SIP_BUILD_DIR}/Makefile ++ COMMAND ${Python3_EXECUTABLE} ${sip_SIP_CONFIGURE} ${SIP_BUILD_DIR} ${SIP_FILE} ${sip_LIBRARY_DIR} ++ \"${INCLUDE_DIRS}\" \"${LIBRARIES}\" \"${LIBRARY_DIRS}\" \"${LDFLAGS_OTHER}\" ++ DEPENDS ${sip_SIP_CONFIGURE} ${SIP_FILE} ${sip_DEPENDS} ++ WORKING_DIRECTORY ${sip_SOURCE_DIR} ++ COMMENT "Running SIP generator for ${PROJECT_NAME} Python bindings..." ++ ) + +- add_custom_command( +- OUTPUT ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} +- COMMAND ${MAKE_EXECUTABLE} +- DEPENDS ${SIP_BUILD_DIR}/Makefile +- WORKING_DIRECTORY ${SIP_BUILD_DIR} +- COMMENT "Compiling generated code for ${PROJECT_NAME} Python bindings..." +- ) ++ if(NOT EXISTS "${sip_LIBRARY_DIR}") ++ file(MAKE_DIRECTORY ${sip_LIBRARY_DIR}) ++ endif() ++ ++ if(WIN32) ++ set(MAKE_EXECUTABLE NMake.exe) ++ else() ++ set(MAKE_EXECUTABLE make) ++ endif() ++ ++ add_custom_command( ++ OUTPUT ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ++ COMMAND ${MAKE_EXECUTABLE} ++ DEPENDS ${SIP_BUILD_DIR}/Makefile ++ WORKING_DIRECTORY ${SIP_BUILD_DIR} ++ COMMENT "Compiling generated code for ${PROJECT_NAME} Python bindings..." ++ ) ++ endif() + + add_custom_target(lib${PROJECT_NAME} ALL + DEPENDS ${sip_LIBRARY_DIR}/lib${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} +diff --git a/src/python_qt_binding/__init__.py b/src/python_qt_binding/__init__.py +index 1e209de..6b55f35 100644 +--- a/src/python_qt_binding/__init__.py ++++ b/src/python_qt_binding/__init__.py +@@ -66,3 +66,11 @@ for module_name, module in QT_BINDING_MODULES.items(): + del module + + del sys ++ ++import os ++from PyQt5.QtGui import QIcon ++current_theme_path = QIcon.themeSearchPaths() ++conda_path = os.environ['CONDA_PREFIX'] ++QIcon.setThemeSearchPaths(current_theme_path + [os.path.join(conda_path, 'share/icons/')]) ++QIcon.setThemeName('Adwaita') ++del os +diff --git a/src/python_qt_binding/binding_helper.py b/src/python_qt_binding/binding_helper.py +index 27c3237..781fe62 100644 +--- a/src/python_qt_binding/binding_helper.py ++++ b/src/python_qt_binding/binding_helper.py +@@ -50,11 +50,7 @@ QT_BINDING_VERSION = None + def _select_qt_binding(binding_name=None, binding_order=None): + global QT_BINDING, QT_BINDING_VERSION + +- # order of default bindings can be changed here +- if platform.system() == 'Darwin': +- DEFAULT_BINDING_ORDER = ['pyside'] +- else: +- DEFAULT_BINDING_ORDER = ['pyqt', 'pyside'] ++ DEFAULT_BINDING_ORDER = ['pyqt', 'pyside'] + + binding_order = binding_order or DEFAULT_BINDING_ORDER + diff --git a/recipes/ros-jazzy-python-qt-binding/recipe.yaml b/recipes/ros-jazzy-python-qt-binding/recipe.yaml new file mode 100644 index 00000000..318470c5 --- /dev/null +++ b/recipes/ros-jazzy-python-qt-binding/recipe.yaml @@ -0,0 +1,114 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-python-qt-binding + version: 2.2.1 +source: + git: https://github.com/ros2-gbp/python_qt_binding-release.git + tag: release/jazzy/python_qt_binding/2.2.1-1 + target_directory: ros-jazzy-python-qt-binding/src/work + patches: + - patch/ros-jazzy-python-qt-binding.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - qt-main + - if: build_platform != target_platform + then: + - pyqt-builder + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pyqt + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: build_platform == target_platform + then: + - pyqt-builder + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - pyqt + - pyqt-builder + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-qt-dotgraph/bld_ament_cmake.bat b/recipes/ros-jazzy-qt-dotgraph/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-qt-dotgraph/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-qt-dotgraph/build_ament_cmake.sh b/recipes/ros-jazzy-qt-dotgraph/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-qt-dotgraph/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-qt-dotgraph/recipe.yaml b/recipes/ros-jazzy-qt-dotgraph/recipe.yaml new file mode 100644 index 00000000..13d91742 --- /dev/null +++ b/recipes/ros-jazzy-qt-dotgraph/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-qt-dotgraph + version: 2.7.5 +source: + git: https://github.com/ros2-gbp/qt_gui_core-release.git + tag: release/jazzy/qt_dotgraph/2.7.5-1 + target_directory: ros-jazzy-qt-dotgraph/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pygraphviz + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - pydot + - python + - ros-jazzy-python-qt-binding + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-qt-gui-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-qt-gui-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-qt-gui-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-qt-gui-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-qt-gui-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-qt-gui-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-qt-gui-cpp/patch/ros-jazzy-qt-gui-cpp.patch b/recipes/ros-jazzy-qt-gui-cpp/patch/ros-jazzy-qt-gui-cpp.patch new file mode 100644 index 00000000..7b18400e --- /dev/null +++ b/recipes/ros-jazzy-qt-gui-cpp/patch/ros-jazzy-qt-gui-cpp.patch @@ -0,0 +1,61 @@ +diff --git a/src/qt_gui_cpp_sip/CMakeLists.txt b/src/qt_gui_cpp_sip/CMakeLists.txt +index 47c24958..d5a95d48 100644 +--- a/src/qt_gui_cpp_sip/CMakeLists.txt ++++ b/src/qt_gui_cpp_sip/CMakeLists.txt +@@ -28,7 +28,7 @@ set(qt_gui_cpp_sip_DEPENDENT_FILES + + # maintain context for different named target + set(qt_gui_cpp_sip_INCLUDE_DIRS ${qt_gui_cpp_INCLUDE_DIRS} "${CMAKE_CURRENT_SOURCE_DIR}/../../include") +-set(qt_gui_cpp_sip_LIBRARY_DIRS ${qt_gui_cpp_LIBRARY_DIRS} lib) ++set(qt_gui_cpp_sip_LIBRARY_DIRS ${CMAKE_BINARY_DIR}) + set(qt_gui_cpp_sip_LDFLAGS_OTHER ${qt_gui_cpp_LDFLAGS_OTHER}) + + ament_get_recursive_properties(deps_include_dirs deps_libraries ${pluginlib_TARGETS}) +@@ -51,16 +51,22 @@ cmake_minimum_required(VERSION 3.20) + cmake_policy(SET CMP0094 NEW) + set(Python3_FIND_UNVERSIONED_NAMES FIRST) + +-find_package(Python3 REQUIRED COMPONENTS Development) ++find_package(Python REQUIRED COMPONENTS Development) ++find_package(OpenGL REQUIRED) + + set(_qt_gui_cpp_sip_LIBRARIES + ${deps_libraries} +- Python3::Python + qt_gui_cpp ++ OpenGL::GL + ) + ++if(NOT APPLE) ++ set(_qt_gui_cpp_sip_LIBRARIES ${_qt_gui_cpp_sip_LIBRARIES} Python::Python) ++endif() ++ + # sip needs libraries to have resolved paths and cannot link to cmake targets +-foreach(_lib_name ${_qt_gui_cpp_sip_LIBRARIES}) ++foreach(_lib_name_raw ${_qt_gui_cpp_sip_LIBRARIES}) ++ string(REGEX REPLACE "\\.so\\.[0-9,\\.]*" ".so" _lib_name ${_lib_name_raw}) + if(TARGET ${_lib_name}) + # Use a nifty cmake generator expression to resolve the target location + list(APPEND qt_gui_cpp_sip_LIBRARIES $) +@@ -91,11 +97,19 @@ if(sip_helper_FOUND) + ) + + if(APPLE) +- set(LIBQT_GUI_CPP_SIP_SUFFIX .so) ++ if(${SIP_VERSION} VERSION_GREATER_EQUAL "5.0.0") ++ set(LIBQT_GUI_CPP_SIP_SUFFIX ".cpython-${Python_VERSION_MAJOR}${Python_VERSION_MINOR}-darwin.so") ++ else() ++ set(LIBQT_GUI_CPP_SIP_SUFFIX .so) ++ endif() + elseif(WIN32) + set(LIBQT_GUI_CPP_SIP_SUFFIX .pyd) + else() +- set(LIBQT_GUI_CPP_SIP_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}) ++ if(${SIP_VERSION} VERSION_GREATER_EQUAL "5.0.0") ++ set(LIBQT_GUI_CPP_SIP_SUFFIX ".cpython-${Python_VERSION_MAJOR}${Python_VERSION_MINOR}-${CMAKE_HOST_SYSTEM_PROCESSOR}-linux-gnu${CMAKE_SHARED_LIBRARY_SUFFIX}") ++ else() ++ set(LIBQT_GUI_CPP_SIP_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}) ++ endif() + endif() + + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libqt_gui_cpp_sip${LIBQT_GUI_CPP_SIP_SUFFIX} diff --git a/recipes/ros-jazzy-qt-gui-cpp/recipe.yaml b/recipes/ros-jazzy-qt-gui-cpp/recipe.yaml new file mode 100644 index 00000000..67a659bf --- /dev/null +++ b/recipes/ros-jazzy-qt-gui-cpp/recipe.yaml @@ -0,0 +1,122 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-qt-gui-cpp + version: 2.7.5 +source: + git: https://github.com/ros2-gbp/qt_gui_core-release.git + tag: release/jazzy/qt_gui_cpp/2.7.5-1 + target_directory: ros-jazzy-qt-gui-cpp/src/work + patches: + - patch/ros-jazzy-qt-gui-cpp.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - ${{ 'pyqt' if (build_platform != target_platform) }} + - ${{ 'qt-main' if (build_platform != target_platform) }} + - if: build_platform != target_platform + then: + - qt-main + - if: build_platform != target_platform + then: + - pyqt-builder + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pep517 + - pip + - pkg-config + - pyside2 + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-pluginlib + - ros-jazzy-python-qt-binding + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tinyxml2-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: build_platform == target_platform + then: + - pyqt-builder + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - pep517 + - pyqt-builder + - python + - ros-jazzy-pluginlib + - ros-jazzy-qt-gui + - ros-jazzy-ros-workspace + - ros-jazzy-tinyxml2-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-qt-gui-py-common/bld_ament_cmake.bat b/recipes/ros-jazzy-qt-gui-py-common/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-qt-gui-py-common/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-qt-gui-py-common/build_ament_cmake.sh b/recipes/ros-jazzy-qt-gui-py-common/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-qt-gui-py-common/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-qt-gui-py-common/recipe.yaml b/recipes/ros-jazzy-qt-gui-py-common/recipe.yaml new file mode 100644 index 00000000..5ea3dea6 --- /dev/null +++ b/recipes/ros-jazzy-qt-gui-py-common/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-qt-gui-py-common + version: 2.7.5 +source: + git: https://github.com/ros2-gbp/qt_gui_core-release.git + tag: release/jazzy/qt_gui_py_common/2.7.5-1 + target_directory: ros-jazzy-qt-gui-py-common/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-index-python + - ros-jazzy-python-qt-binding + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-qt-gui/bld_ament_cmake.bat b/recipes/ros-jazzy-qt-gui/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-qt-gui/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-qt-gui/build_ament_cmake.sh b/recipes/ros-jazzy-qt-gui/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-qt-gui/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-qt-gui/recipe.yaml b/recipes/ros-jazzy-qt-gui/recipe.yaml new file mode 100644 index 00000000..b221fce5 --- /dev/null +++ b/recipes/ros-jazzy-qt-gui/recipe.yaml @@ -0,0 +1,113 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-qt-gui + version: 2.7.5 +source: + git: https://github.com/ros2-gbp/qt_gui_core-release.git + tag: release/jazzy/qt_gui/2.7.5-1 + target_directory: ros-jazzy-qt-gui/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - qt-main + - if: build_platform != target_platform + then: + - pyqt-builder + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pyqt + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: build_platform == target_platform + then: + - pyqt-builder + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - catkin_pkg + - python + - ros-jazzy-ament-index-python + - ros-jazzy-python-qt-binding + - ros-jazzy-ros-workspace + - ros-jazzy-tango-icons-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-quality-of-service-demo-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-quality-of-service-demo-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-quality-of-service-demo-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-quality-of-service-demo-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-quality-of-service-demo-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-quality-of-service-demo-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-quality-of-service-demo-cpp/recipe.yaml b/recipes/ros-jazzy-quality-of-service-demo-cpp/recipe.yaml new file mode 100644 index 00000000..cdc922c9 --- /dev/null +++ b/recipes/ros-jazzy-quality-of-service-demo-cpp/recipe.yaml @@ -0,0 +1,104 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-quality-of-service-demo-cpp + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/quality_of_service_demo_cpp/0.33.5-1 + target_directory: ros-jazzy-quality-of-service-demo-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-example-interfaces + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-implementation-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-launch-ros + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-quality-of-service-demo-py/bld_ament_python.bat b/recipes/ros-jazzy-quality-of-service-demo-py/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-quality-of-service-demo-py/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-quality-of-service-demo-py/build_ament_python.sh b/recipes/ros-jazzy-quality-of-service-demo-py/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-quality-of-service-demo-py/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-quality-of-service-demo-py/recipe.yaml b/recipes/ros-jazzy-quality-of-service-demo-py/recipe.yaml new file mode 100644 index 00000000..e520bdce --- /dev/null +++ b/recipes/ros-jazzy-quality-of-service-demo-py/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-quality-of-service-demo-py + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/quality_of_service_demo_py/0.33.5-1 + target_directory: ros-jazzy-quality-of-service-demo-py/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rcl-action/bld_ament_cmake.bat b/recipes/ros-jazzy-rcl-action/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rcl-action/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rcl-action/build_ament_cmake.sh b/recipes/ros-jazzy-rcl-action/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rcl-action/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rcl-action/recipe.yaml b/recipes/ros-jazzy-rcl-action/recipe.yaml new file mode 100644 index 00000000..b337a836 --- /dev/null +++ b/recipes/ros-jazzy-rcl-action/recipe.yaml @@ -0,0 +1,101 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rcl-action + version: 9.2.4 +source: + git: https://github.com/ros2-gbp/rcl-release.git + tag: release/jazzy/rcl_action/9.2.4-1 + target_directory: ros-jazzy-rcl-action/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-action-msgs + - ros-jazzy-ament-cmake-gen-version-h + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-rcl + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-implementation-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-rcl + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rcl-interfaces/bld_ament_cmake.bat b/recipes/ros-jazzy-rcl-interfaces/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rcl-interfaces/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rcl-interfaces/build_ament_cmake.sh b/recipes/ros-jazzy-rcl-interfaces/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rcl-interfaces/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rcl-interfaces/recipe.yaml b/recipes/ros-jazzy-rcl-interfaces/recipe.yaml new file mode 100644 index 00000000..96c1490d --- /dev/null +++ b/recipes/ros-jazzy-rcl-interfaces/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rcl-interfaces + version: 2.0.2 +source: + git: https://github.com/ros2-gbp/rcl_interfaces-release.git + tag: release/jazzy/rcl_interfaces/2.0.2-2 + target_directory: ros-jazzy-rcl-interfaces/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rcl-lifecycle/bld_ament_cmake.bat b/recipes/ros-jazzy-rcl-lifecycle/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rcl-lifecycle/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rcl-lifecycle/build_ament_cmake.sh b/recipes/ros-jazzy-rcl-lifecycle/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rcl-lifecycle/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rcl-lifecycle/recipe.yaml b/recipes/ros-jazzy-rcl-lifecycle/recipe.yaml new file mode 100644 index 00000000..8875271d --- /dev/null +++ b/recipes/ros-jazzy-rcl-lifecycle/recipe.yaml @@ -0,0 +1,101 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rcl-lifecycle + version: 9.2.4 +source: + git: https://github.com/ros2-gbp/rcl-release.git + tag: release/jazzy/rcl_lifecycle/9.2.4-1 + target_directory: ros-jazzy-rcl-lifecycle/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gen-version-h + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-lifecycle-msgs + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-rcl + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-tracetools + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-lifecycle-msgs + - ros-jazzy-rcl + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-tracetools + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rcl-logging-interface/bld_ament_cmake.bat b/recipes/ros-jazzy-rcl-logging-interface/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rcl-logging-interface/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rcl-logging-interface/build_ament_cmake.sh b/recipes/ros-jazzy-rcl-logging-interface/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rcl-logging-interface/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rcl-logging-interface/recipe.yaml b/recipes/ros-jazzy-rcl-logging-interface/recipe.yaml new file mode 100644 index 00000000..fe5e6afa --- /dev/null +++ b/recipes/ros-jazzy-rcl-logging-interface/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rcl-logging-interface + version: 3.1.1 +source: + git: https://github.com/ros2-gbp/rcl_logging-release.git + tag: release/jazzy/rcl_logging_interface/3.1.1-1 + target_directory: ros-jazzy-rcl-logging-interface/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rcl-logging-spdlog/bld_ament_cmake.bat b/recipes/ros-jazzy-rcl-logging-spdlog/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rcl-logging-spdlog/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rcl-logging-spdlog/build_ament_cmake.sh b/recipes/ros-jazzy-rcl-logging-spdlog/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rcl-logging-spdlog/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rcl-logging-spdlog/recipe.yaml b/recipes/ros-jazzy-rcl-logging-spdlog/recipe.yaml new file mode 100644 index 00000000..2f8551a0 --- /dev/null +++ b/recipes/ros-jazzy-rcl-logging-spdlog/recipe.yaml @@ -0,0 +1,97 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rcl-logging-spdlog + version: 3.1.1 +source: + git: https://github.com/ros2-gbp/rcl_logging-release.git + tag: release/jazzy/rcl_logging_spdlog/3.1.1-1 + target_directory: ros-jazzy-rcl-logging-spdlog/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-performance-test-fixture + - ros-jazzy-rcl-logging-interface + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-spdlog-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - spdlog + run: + - python + - ros-jazzy-rcl-logging-interface + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-spdlog-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - spdlog + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rcl-yaml-param-parser/bld_ament_cmake.bat b/recipes/ros-jazzy-rcl-yaml-param-parser/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rcl-yaml-param-parser/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rcl-yaml-param-parser/build_ament_cmake.sh b/recipes/ros-jazzy-rcl-yaml-param-parser/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rcl-yaml-param-parser/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rcl-yaml-param-parser/recipe.yaml b/recipes/ros-jazzy-rcl-yaml-param-parser/recipe.yaml new file mode 100644 index 00000000..390c11a2 --- /dev/null +++ b/recipes/ros-jazzy-rcl-yaml-param-parser/recipe.yaml @@ -0,0 +1,101 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rcl-yaml-param-parser + version: 9.2.4 +source: + git: https://github.com/ros2-gbp/rcl-release.git + tag: release/jazzy/rcl_yaml_param_parser/9.2.4-1 + target_directory: ros-jazzy-rcl-yaml-param-parser/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gen-version-h + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-libyaml-vendor + - ros-jazzy-mimick-vendor + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-performance-test-fixture + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - yaml + - yaml-cpp + run: + - python + - ros-jazzy-libyaml-vendor + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - yaml + - yaml-cpp + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rcl/bld_ament_cmake.bat b/recipes/ros-jazzy-rcl/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rcl/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rcl/build_ament_cmake.sh b/recipes/ros-jazzy-rcl/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rcl/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rcl/recipe.yaml b/recipes/ros-jazzy-rcl/recipe.yaml new file mode 100644 index 00000000..c9cd2856 --- /dev/null +++ b/recipes/ros-jazzy-rcl/recipe.yaml @@ -0,0 +1,124 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rcl + version: 9.2.4 +source: + git: https://github.com/ros2-gbp/rcl-release.git + tag: release/jazzy/rcl/9.2.4-1 + target_directory: ros-jazzy-rcl/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gen-version-h + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-libyaml-vendor + - ros-jazzy-mimick-vendor + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-rcl-interfaces + - ros-jazzy-rcl-logging-interface + - ros-jazzy-rcl-logging-spdlog + - ros-jazzy-rcl-yaml-param-parser + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-implementation + - ros-jazzy-rmw-implementation-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-service-msgs + - ros-jazzy-test-msgs + - ros-jazzy-tracetools + - ros-jazzy-type-description-interfaces + - ros2-distro-mutex 0.6.* jazzy_* + - yaml + - yaml-cpp + run: + - python + - ros-jazzy-libyaml-vendor + - ros-jazzy-rcl-interfaces + - ros-jazzy-rcl-logging-interface + - ros-jazzy-rcl-logging-spdlog + - ros-jazzy-rcl-yaml-param-parser + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-implementation + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-service-msgs + - ros-jazzy-tracetools + - ros-jazzy-type-description-interfaces + - ros2-distro-mutex 0.6.* jazzy_* + - yaml + - yaml-cpp + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rclcpp-action/bld_ament_cmake.bat b/recipes/ros-jazzy-rclcpp-action/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rclcpp-action/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rclcpp-action/build_ament_cmake.sh b/recipes/ros-jazzy-rclcpp-action/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rclcpp-action/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rclcpp-action/recipe.yaml b/recipes/ros-jazzy-rclcpp-action/recipe.yaml new file mode 100644 index 00000000..accba985 --- /dev/null +++ b/recipes/ros-jazzy-rclcpp-action/recipe.yaml @@ -0,0 +1,104 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rclcpp-action + version: 28.1.6 +source: + git: https://github.com/ros2-gbp/rclcpp-release.git + tag: release/jazzy/rclcpp_action/28.1.6-1 + target_directory: ros-jazzy-rclcpp-action/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-action-msgs + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-mimick-vendor + - ros-jazzy-performance-test-fixture + - ros-jazzy-rcl + - ros-jazzy-rcl-action + - ros-jazzy-rclcpp + - ros-jazzy-rcpputils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-ament-cmake + - ros-jazzy-rcl + - ros-jazzy-rcl-action + - ros-jazzy-rclcpp + - ros-jazzy-rcpputils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rclcpp-components/bld_ament_cmake.bat b/recipes/ros-jazzy-rclcpp-components/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rclcpp-components/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rclcpp-components/build_ament_cmake.sh b/recipes/ros-jazzy-rclcpp-components/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rclcpp-components/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rclcpp-components/recipe.yaml b/recipes/ros-jazzy-rclcpp-components/recipe.yaml new file mode 100644 index 00000000..b192e1ea --- /dev/null +++ b/recipes/ros-jazzy-rclcpp-components/recipe.yaml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rclcpp-components + version: 28.1.6 +source: + git: https://github.com/ros2-gbp/rclcpp-release.git + tag: release/jazzy/rclcpp_components/28.1.6-1 + target_directory: ros-jazzy-rclcpp-components/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-google-benchmark + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-class-loader + - ros-jazzy-composition-interfaces + - ros-jazzy-launch-testing + - ros-jazzy-rclcpp + - ros-jazzy-rcpputils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-class-loader + - ros-jazzy-composition-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rclcpp-lifecycle/bld_ament_cmake.bat b/recipes/ros-jazzy-rclcpp-lifecycle/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rclcpp-lifecycle/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rclcpp-lifecycle/build_ament_cmake.sh b/recipes/ros-jazzy-rclcpp-lifecycle/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rclcpp-lifecycle/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rclcpp-lifecycle/recipe.yaml b/recipes/ros-jazzy-rclcpp-lifecycle/recipe.yaml new file mode 100644 index 00000000..13b7a940 --- /dev/null +++ b/recipes/ros-jazzy-rclcpp-lifecycle/recipe.yaml @@ -0,0 +1,107 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rclcpp-lifecycle + version: 28.1.6 +source: + git: https://github.com/ros2-gbp/rclcpp-release.git + tag: release/jazzy/rclcpp_lifecycle/28.1.6-1 + target_directory: ros-jazzy-rclcpp-lifecycle/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-lifecycle-msgs + - ros-jazzy-mimick-vendor + - ros-jazzy-performance-test-fixture + - ros-jazzy-rcl + - ros-jazzy-rcl-interfaces + - ros-jazzy-rcl-lifecycle + - ros-jazzy-rclcpp + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-typesupport-cpp + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-lifecycle-msgs + - ros-jazzy-rcl + - ros-jazzy-rcl-interfaces + - ros-jazzy-rcl-lifecycle + - ros-jazzy-rclcpp + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-typesupport-cpp + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rclcpp/bld_ament_cmake.bat b/recipes/ros-jazzy-rclcpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rclcpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rclcpp/build_ament_cmake.sh b/recipes/ros-jazzy-rclcpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rclcpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rclcpp/recipe.yaml b/recipes/ros-jazzy-rclcpp/recipe.yaml new file mode 100644 index 00000000..5451a8b3 --- /dev/null +++ b/recipes/ros-jazzy-rclcpp/recipe.yaml @@ -0,0 +1,131 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rclcpp + version: 28.1.6 +source: + git: https://github.com/ros2-gbp/rclcpp-release.git + tag: release/jazzy/rclcpp/28.1.6-1 + target_directory: ros-jazzy-rclcpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gen-version-h + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-google-benchmark + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-libstatistics-collector + - ros-jazzy-mimick-vendor + - ros-jazzy-performance-test-fixture + - ros-jazzy-rcl + - ros-jazzy-rcl-interfaces + - ros-jazzy-rcl-logging-interface + - ros-jazzy-rcl-yaml-param-parser + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-implementation-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosgraph-msgs + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rosidl-dynamic-typesupport + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-c + - ros-jazzy-rosidl-typesupport-cpp + - ros-jazzy-statistics-msgs + - ros-jazzy-test-msgs + - ros-jazzy-tracetools + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-builtin-interfaces + - ros-jazzy-libstatistics-collector + - ros-jazzy-rcl + - ros-jazzy-rcl-interfaces + - ros-jazzy-rcl-logging-interface + - ros-jazzy-rcl-yaml-param-parser + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-rosgraph-msgs + - ros-jazzy-rosidl-dynamic-typesupport + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-c + - ros-jazzy-rosidl-typesupport-cpp + - ros-jazzy-statistics-msgs + - ros-jazzy-tracetools + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rclpy/bld_ament_cmake.bat b/recipes/ros-jazzy-rclpy/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rclpy/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rclpy/build_ament_cmake.sh b/recipes/ros-jazzy-rclpy/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rclpy/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rclpy/recipe.yaml b/recipes/ros-jazzy-rclpy/recipe.yaml new file mode 100644 index 00000000..bdc60f40 --- /dev/null +++ b/recipes/ros-jazzy-rclpy/recipe.yaml @@ -0,0 +1,133 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rclpy + version: 7.1.3 +source: + git: https://github.com/ros2-gbp/rclpy-release.git + tag: release/jazzy/rclpy/7.1.3-1 + target_directory: ros-jazzy-rclpy/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - pybind11 + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-lifecycle-msgs + - ros-jazzy-pybind11-vendor + - ros-jazzy-python-cmake-module + - ros-jazzy-rcl + - ros-jazzy-rcl-action + - ros-jazzy-rcl-interfaces + - ros-jazzy-rcl-lifecycle + - ros-jazzy-rcl-logging-interface + - ros-jazzy-rcl-yaml-param-parser + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-implementation + - ros-jazzy-rmw-implementation-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-generator-py + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-test-msgs + - ros-jazzy-unique-identifier-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - pybind11 + run: + - python + - pyyaml + - ros-jazzy-action-msgs + - ros-jazzy-ament-index-python + - ros-jazzy-builtin-interfaces + - ros-jazzy-lifecycle-msgs + - ros-jazzy-rcl + - ros-jazzy-rcl-action + - ros-jazzy-rcl-interfaces + - ros-jazzy-rcl-lifecycle + - ros-jazzy-rcl-logging-interface + - ros-jazzy-rcl-yaml-param-parser + - ros-jazzy-rmw + - ros-jazzy-rmw-implementation + - ros-jazzy-ros-workspace + - ros-jazzy-rosgraph-msgs + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rpyutils + - ros-jazzy-unique-identifier-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} +tests: + - python: + imports: + - rclpy + pip_check: false diff --git a/recipes/ros-jazzy-rcpputils/bld_ament_cmake.bat b/recipes/ros-jazzy-rcpputils/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rcpputils/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rcpputils/build_ament_cmake.sh b/recipes/ros-jazzy-rcpputils/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rcpputils/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rcpputils/recipe.yaml b/recipes/ros-jazzy-rcpputils/recipe.yaml new file mode 100644 index 00000000..69191cae --- /dev/null +++ b/recipes/ros-jazzy-rcpputils/recipe.yaml @@ -0,0 +1,97 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rcpputils + version: 2.11.1 +source: + git: https://github.com/ros2-gbp/rcpputils-release.git + tag: release/jazzy/rcpputils/2.11.1-1 + target_directory: ros-jazzy-rcpputils/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-cppcheck + - ros-jazzy-ament-cmake-cpplint + - ros-jazzy-ament-cmake-flake8 + - ros-jazzy-ament-cmake-gen-version-h + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-pep257 + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-cmake-uncrustify + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rcutils/bld_ament_cmake.bat b/recipes/ros-jazzy-rcutils/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rcutils/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rcutils/build_ament_cmake.sh b/recipes/ros-jazzy-rcutils/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rcutils/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rcutils/recipe.yaml b/recipes/ros-jazzy-rcutils/recipe.yaml new file mode 100644 index 00000000..3a3a0620 --- /dev/null +++ b/recipes/ros-jazzy-rcutils/recipe.yaml @@ -0,0 +1,96 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rcutils + version: 6.7.2 +source: + git: https://github.com/ros2-gbp/rcutils-release.git + tag: release/jazzy/rcutils/6.7.2-1 + target_directory: ros-jazzy-rcutils/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - empy + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-mimick-vendor + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-performance-test-fixture + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-resource-retriever/bld_ament_cmake.bat b/recipes/ros-jazzy-resource-retriever/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-resource-retriever/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-resource-retriever/build_ament_cmake.sh b/recipes/ros-jazzy-resource-retriever/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-resource-retriever/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-resource-retriever/recipe.yaml b/recipes/ros-jazzy-resource-retriever/recipe.yaml new file mode 100644 index 00000000..9c6f1e2e --- /dev/null +++ b/recipes/ros-jazzy-resource-retriever/recipe.yaml @@ -0,0 +1,96 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-resource-retriever + version: 3.4.3 +source: + git: https://github.com/ros2-gbp/resource_retriever-release.git + tag: release/jazzy/resource_retriever/3.4.3-1 + target_directory: ros-jazzy-resource-retriever/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-index-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-libcurl-vendor + - ros-jazzy-python-cmake-module + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-index-python + - ros-jazzy-libcurl-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rmw-connextdds-common/bld_ament_cmake.bat b/recipes/ros-jazzy-rmw-connextdds-common/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rmw-connextdds-common/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rmw-connextdds-common/build_ament_cmake.sh b/recipes/ros-jazzy-rmw-connextdds-common/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rmw-connextdds-common/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rmw-connextdds-common/recipe.yaml b/recipes/ros-jazzy-rmw-connextdds-common/recipe.yaml new file mode 100644 index 00000000..a7fb121e --- /dev/null +++ b/recipes/ros-jazzy-rmw-connextdds-common/recipe.yaml @@ -0,0 +1,114 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rmw-connextdds-common + version: 0.22.0 +source: + git: https://github.com/ros2-gbp/rmw_connextdds-release.git + tag: release/jazzy/rmw_connextdds_common/0.22.0-2 + target_directory: ros-jazzy-rmw-connextdds-common/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-fastcdr + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-dds-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-fastrtps-c + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-rosidl-typesupport-introspection-c + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros-jazzy-rti-connext-dds-cmake-module + - ros-jazzy-tracetools + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-fastcdr + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-dds-common + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-fastrtps-c + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-rosidl-typesupport-introspection-c + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros-jazzy-rti-connext-dds-cmake-module + - ros-jazzy-tracetools + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rmw-connextdds/bld_ament_cmake.bat b/recipes/ros-jazzy-rmw-connextdds/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rmw-connextdds/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rmw-connextdds/build_ament_cmake.sh b/recipes/ros-jazzy-rmw-connextdds/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rmw-connextdds/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rmw-connextdds/recipe.yaml b/recipes/ros-jazzy-rmw-connextdds/recipe.yaml new file mode 100644 index 00000000..c24179cf --- /dev/null +++ b/recipes/ros-jazzy-rmw-connextdds/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rmw-connextdds + version: 0.22.0 +source: + git: https://github.com/ros2-gbp/rmw_connextdds-release.git + tag: release/jazzy/rmw_connextdds/0.22.0-2 + target_directory: ros-jazzy-rmw-connextdds/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rmw-connextdds-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-rmw-connextdds-common + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rmw-cyclonedds-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-rmw-cyclonedds-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rmw-cyclonedds-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rmw-cyclonedds-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-rmw-cyclonedds-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rmw-cyclonedds-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rmw-cyclonedds-cpp/recipe.yaml b/recipes/ros-jazzy-rmw-cyclonedds-cpp/recipe.yaml new file mode 100644 index 00000000..353da8c3 --- /dev/null +++ b/recipes/ros-jazzy-rmw-cyclonedds-cpp/recipe.yaml @@ -0,0 +1,109 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rmw-cyclonedds-cpp + version: 2.2.2 +source: + git: https://github.com/ros2-gbp/rmw_cyclonedds-release.git + tag: release/jazzy/rmw_cyclonedds_cpp/2.2.2-1 + target_directory: ros-jazzy-rmw-cyclonedds-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - ros-jazzy-cyclonedds + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-cyclonedds + - ros-jazzy-iceoryx-binding-c + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-dds-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-typesupport-introspection-c + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros-jazzy-tracetools + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-cyclonedds + - ros-jazzy-iceoryx-binding-c + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-dds-common + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-typesupport-introspection-c + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros-jazzy-tracetools + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rmw-dds-common/bld_ament_cmake.bat b/recipes/ros-jazzy-rmw-dds-common/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rmw-dds-common/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rmw-dds-common/build_ament_cmake.sh b/recipes/ros-jazzy-rmw-dds-common/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rmw-dds-common/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rmw-dds-common/recipe.yaml b/recipes/ros-jazzy-rmw-dds-common/recipe.yaml new file mode 100644 index 00000000..056fb9fb --- /dev/null +++ b/recipes/ros-jazzy-rmw-dds-common/recipe.yaml @@ -0,0 +1,101 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rmw-dds-common + version: 3.1.0 +source: + git: https://github.com/ros2-gbp/rmw_dds_common-release.git + tag: release/jazzy/rmw_dds_common/3.1.0-2 + target_directory: ros-jazzy-rmw-dds-common/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-performance-test-fixture + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rmw-fastrtps-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-rmw-fastrtps-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rmw-fastrtps-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rmw-fastrtps-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-rmw-fastrtps-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rmw-fastrtps-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rmw-fastrtps-cpp/recipe.yaml b/recipes/ros-jazzy-rmw-fastrtps-cpp/recipe.yaml new file mode 100644 index 00000000..827104df --- /dev/null +++ b/recipes/ros-jazzy-rmw-fastrtps-cpp/recipe.yaml @@ -0,0 +1,121 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rmw-fastrtps-cpp + version: 8.4.1 +source: + git: https://github.com/ros2-gbp/rmw_fastrtps-release.git + tag: release/jazzy/rmw_fastrtps_cpp/8.4.1-1 + target_directory: ros-jazzy-rmw-fastrtps-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-fastcdr + - ros-jazzy-fastrtps + - ros-jazzy-fastrtps-cmake-module + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-dds-common + - ros-jazzy-rmw-fastrtps-shared-cpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-dynamic-typesupport + - ros-jazzy-rosidl-dynamic-typesupport-fastrtps + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-fastrtps-c + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-test-msgs + - ros-jazzy-tracetools + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-fastcdr + - ros-jazzy-fastrtps + - ros-jazzy-fastrtps-cmake-module + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-dds-common + - ros-jazzy-rmw-fastrtps-shared-cpp + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-dynamic-typesupport + - ros-jazzy-rosidl-dynamic-typesupport-fastrtps + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-fastrtps-c + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-tracetools + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rmw-fastrtps-dynamic-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-rmw-fastrtps-dynamic-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rmw-fastrtps-dynamic-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rmw-fastrtps-dynamic-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-rmw-fastrtps-dynamic-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rmw-fastrtps-dynamic-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rmw-fastrtps-dynamic-cpp/recipe.yaml b/recipes/ros-jazzy-rmw-fastrtps-dynamic-cpp/recipe.yaml new file mode 100644 index 00000000..a9bffeb8 --- /dev/null +++ b/recipes/ros-jazzy-rmw-fastrtps-dynamic-cpp/recipe.yaml @@ -0,0 +1,113 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rmw-fastrtps-dynamic-cpp + version: 8.4.1 +source: + git: https://github.com/ros2-gbp/rmw_fastrtps-release.git + tag: release/jazzy/rmw_fastrtps_dynamic_cpp/8.4.1-1 + target_directory: ros-jazzy-rmw-fastrtps-dynamic-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-fastcdr + - ros-jazzy-fastrtps + - ros-jazzy-fastrtps-cmake-module + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-dds-common + - ros-jazzy-rmw-fastrtps-shared-cpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-typesupport-introspection-c + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-fastcdr + - ros-jazzy-fastrtps + - ros-jazzy-fastrtps-cmake-module + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-dds-common + - ros-jazzy-rmw-fastrtps-shared-cpp + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-typesupport-introspection-c + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rmw-fastrtps-shared-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-rmw-fastrtps-shared-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rmw-fastrtps-shared-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rmw-fastrtps-shared-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-rmw-fastrtps-shared-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rmw-fastrtps-shared-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rmw-fastrtps-shared-cpp/recipe.yaml b/recipes/ros-jazzy-rmw-fastrtps-shared-cpp/recipe.yaml new file mode 100644 index 00000000..5b1155dd --- /dev/null +++ b/recipes/ros-jazzy-rmw-fastrtps-shared-cpp/recipe.yaml @@ -0,0 +1,112 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rmw-fastrtps-shared-cpp + version: 8.4.1 +source: + git: https://github.com/ros2-gbp/rmw_fastrtps-release.git + tag: release/jazzy/rmw_fastrtps_shared_cpp/8.4.1-1 + target_directory: ros-jazzy-rmw-fastrtps-shared-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-fastcdr + - ros-jazzy-fastrtps + - ros-jazzy-fastrtps-cmake-module + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-dds-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-dynamic-typesupport + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-typesupport-introspection-c + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros-jazzy-tracetools + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-fastcdr + - ros-jazzy-fastrtps + - ros-jazzy-fastrtps-cmake-module + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-dds-common + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-dynamic-typesupport + - ros-jazzy-rosidl-typesupport-introspection-c + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros-jazzy-tracetools + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rmw-implementation-cmake/bld_ament_cmake.bat b/recipes/ros-jazzy-rmw-implementation-cmake/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rmw-implementation-cmake/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rmw-implementation-cmake/build_ament_cmake.sh b/recipes/ros-jazzy-rmw-implementation-cmake/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rmw-implementation-cmake/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rmw-implementation-cmake/recipe.yaml b/recipes/ros-jazzy-rmw-implementation-cmake/recipe.yaml new file mode 100644 index 00000000..b604a93d --- /dev/null +++ b/recipes/ros-jazzy-rmw-implementation-cmake/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rmw-implementation-cmake + version: 7.3.1 +source: + git: https://github.com/ros2-gbp/rmw-release.git + tag: release/jazzy/rmw_implementation_cmake/7.3.1-1 + target_directory: ros-jazzy-rmw-implementation-cmake/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rmw-implementation/bld_ament_cmake.bat b/recipes/ros-jazzy-rmw-implementation/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rmw-implementation/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rmw-implementation/build_ament_cmake.sh b/recipes/ros-jazzy-rmw-implementation/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rmw-implementation/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rmw-implementation/recipe.yaml b/recipes/ros-jazzy-rmw-implementation/recipe.yaml new file mode 100644 index 00000000..64c26d06 --- /dev/null +++ b/recipes/ros-jazzy-rmw-implementation/recipe.yaml @@ -0,0 +1,105 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rmw-implementation + version: 2.15.4 +source: + git: https://github.com/ros2-gbp/rmw_implementation-release.git + tag: release/jazzy/rmw_implementation/2.15.4-1 + target_directory: ros-jazzy-rmw-implementation/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-performance-test-fixture + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-connextdds + - ros-jazzy-rmw-cyclonedds-cpp + - ros-jazzy-rmw-fastrtps-cpp + - ros-jazzy-rmw-fastrtps-dynamic-cpp + - ros-jazzy-rmw-implementation-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw-connextdds + - ros-jazzy-rmw-cyclonedds-cpp + - ros-jazzy-rmw-fastrtps-cpp + - ros-jazzy-rmw-fastrtps-dynamic-cpp + - ros-jazzy-rmw-implementation-cmake + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rmw/bld_ament_cmake.bat b/recipes/ros-jazzy-rmw/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rmw/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rmw/build_ament_cmake.sh b/recipes/ros-jazzy-rmw/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rmw/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rmw/recipe.yaml b/recipes/ros-jazzy-rmw/recipe.yaml new file mode 100644 index 00000000..cce24bae --- /dev/null +++ b/recipes/ros-jazzy-rmw/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rmw + version: 7.3.1 +source: + git: https://github.com/ros2-gbp/rmw-release.git + tag: release/jazzy/rmw/7.3.1-1 + target_directory: ros-jazzy-rmw/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-cmake-version + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-dynamic-typesupport + - ros-jazzy-rosidl-runtime-c + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-dynamic-typesupport + - ros-jazzy-rosidl-runtime-c + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-robot-state-publisher/bld_ament_cmake.bat b/recipes/ros-jazzy-robot-state-publisher/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-robot-state-publisher/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-robot-state-publisher/build_ament_cmake.sh b/recipes/ros-jazzy-robot-state-publisher/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-robot-state-publisher/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-robot-state-publisher/recipe.yaml b/recipes/ros-jazzy-robot-state-publisher/recipe.yaml new file mode 100644 index 00000000..20fecb7c --- /dev/null +++ b/recipes/ros-jazzy-robot-state-publisher/recipe.yaml @@ -0,0 +1,111 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-robot-state-publisher + version: 3.3.3 +source: + git: https://github.com/ros2-gbp/robot_state_publisher-release.git + tag: release/jazzy/robot_state_publisher/3.3.3-3 + target_directory: ros-jazzy-robot-state-publisher/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-kdl-parser + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-urdf + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-kdl-parser + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-urdf + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros-base/bld_ament_cmake.bat b/recipes/ros-jazzy-ros-base/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros-base/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros-base/build_ament_cmake.sh b/recipes/ros-jazzy-ros-base/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros-base/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros-base/recipe.yaml b/recipes/ros-jazzy-ros-base/recipe.yaml new file mode 100644 index 00000000..65f92976 --- /dev/null +++ b/recipes/ros-jazzy-ros-base/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros-base + version: 0.11.0 +source: + git: https://github.com/ros2-gbp/variants-release.git + tag: release/jazzy/ros_base/0.11.0-1 + target_directory: ros-jazzy-ros-base/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-geometry2 + - ros-jazzy-kdl-parser + - ros-jazzy-robot-state-publisher + - ros-jazzy-ros-core + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2 + - ros-jazzy-urdf + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros-core/bld_ament_cmake.bat b/recipes/ros-jazzy-ros-core/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros-core/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros-core/build_ament_cmake.sh b/recipes/ros-jazzy-ros-core/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros-core/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros-core/recipe.yaml b/recipes/ros-jazzy-ros-core/recipe.yaml new file mode 100644 index 00000000..bfdcbdd2 --- /dev/null +++ b/recipes/ros-jazzy-ros-core/recipe.yaml @@ -0,0 +1,116 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros-core + version: 0.11.0 +source: + git: https://github.com/ros2-gbp/variants-release.git + tag: release/jazzy/ros_core/0.11.0-1 + target_directory: ros-jazzy-ros-core/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-auto + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-index-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-class-loader + - ros-jazzy-common-interfaces + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-launch-testing-ros + - ros-jazzy-launch-xml + - ros-jazzy-launch-yaml + - ros-jazzy-pluginlib + - ros-jazzy-rcl-lifecycle + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli-common-extensions + - ros-jazzy-ros2launch + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-sros2 + - ros-jazzy-sros2-cmake + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros-environment/bld_ament_cmake.bat b/recipes/ros-jazzy-ros-environment/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros-environment/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros-environment/build_ament_cmake.sh b/recipes/ros-jazzy-ros-environment/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros-environment/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros-environment/recipe.yaml b/recipes/ros-jazzy-ros-environment/recipe.yaml new file mode 100644 index 00000000..54f7f7a9 --- /dev/null +++ b/recipes/ros-jazzy-ros-environment/recipe.yaml @@ -0,0 +1,81 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros-environment + version: 4.2.1 +source: + git: https://github.com/ros2-gbp/ros_environment-release.git + tag: release/jazzy/ros_environment/4.2.1-1 + target_directory: ros-jazzy-ros-environment/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros-gz-bridge/bld_ament_cmake.bat b/recipes/ros-jazzy-ros-gz-bridge/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-bridge/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros-gz-bridge/build_ament_cmake.sh b/recipes/ros-jazzy-ros-gz-bridge/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-bridge/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros-gz-bridge/recipe.yaml b/recipes/ros-jazzy-ros-gz-bridge/recipe.yaml new file mode 100644 index 00000000..86ee02c8 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-bridge/recipe.yaml @@ -0,0 +1,128 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros-gz-bridge + version: 1.0.7 +source: + git: https://github.com/ros2-gbp/ros_ign-release.git + tag: release/jazzy/ros_gz_bridge/1.0.7-1 + target_directory: ros-jazzy-ros-gz-bridge/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pkg-config + - python + - ros-jazzy-actuator-msgs + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-geometry-msgs + - ros-jazzy-gps-msgs + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-transport-vendor + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-nav-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-gz-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosgraph-msgs + - ros-jazzy-rosidl-pycommon + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-tf2-msgs + - ros-jazzy-trajectory-msgs + - ros-jazzy-vision-msgs + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-actuator-msgs + - ros-jazzy-geometry-msgs + - ros-jazzy-gps-msgs + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-transport-vendor + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-nav-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-gz-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosgraph-msgs + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-tf2-msgs + - ros-jazzy-trajectory-msgs + - ros-jazzy-vision-msgs + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros-gz-image/bld_ament_cmake.bat b/recipes/ros-jazzy-ros-gz-image/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-image/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros-gz-image/build_ament_cmake.sh b/recipes/ros-jazzy-ros-gz-image/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-image/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros-gz-image/patch/ros-jazzy-ros-gz-image.patch b/recipes/ros-jazzy-ros-gz-image/patch/ros-jazzy-ros-gz-image.patch new file mode 100644 index 00000000..27945782 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-image/patch/ros-jazzy-ros-gz-image.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e6e8de26..8e9ea2d3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -10,6 +10,9 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra) + endif() + ++find_package(gz-cmake3 REQUIRED 3.5.2) ++gz_find_package(TINYXML2 REQUIRED PRIVATE PRETTY tinyxml2) ++ + find_package(ament_cmake REQUIRED) + find_package(image_transport REQUIRED) + find_package(ros_gz_bridge REQUIRED) diff --git a/recipes/ros-jazzy-ros-gz-image/recipe.yaml b/recipes/ros-jazzy-ros-gz-image/recipe.yaml new file mode 100644 index 00000000..b0d94668 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-image/recipe.yaml @@ -0,0 +1,101 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros-gz-image + version: 1.0.7 +source: + git: https://github.com/ros2-gbp/ros_ign-release.git + tag: release/jazzy/ros_gz_image/1.0.7-1 + target_directory: ros-jazzy-ros-gz-image/src/work + patches: + - patch/ros-jazzy-ros-gz-image.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pkg-config + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-transport-vendor + - ros-jazzy-image-transport + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-gz-bridge + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-transport-vendor + - ros-jazzy-image-transport + - ros-jazzy-rclcpp + - ros-jazzy-ros-gz-bridge + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros-gz-interfaces/bld_ament_cmake.bat b/recipes/ros-jazzy-ros-gz-interfaces/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-interfaces/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros-gz-interfaces/build_ament_cmake.sh b/recipes/ros-jazzy-ros-gz-interfaces/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-interfaces/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros-gz-interfaces/recipe.yaml b/recipes/ros-jazzy-ros-gz-interfaces/recipe.yaml new file mode 100644 index 00000000..933dd133 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-interfaces/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros-gz-interfaces + version: 1.0.7 +source: + git: https://github.com/ros2-gbp/ros_ign-release.git + tag: release/jazzy/ros_gz_interfaces/1.0.7-1 + target_directory: ros-jazzy-ros-gz-interfaces/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-rcl-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-rcl-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros-gz-sim-demos/bld_ament_cmake.bat b/recipes/ros-jazzy-ros-gz-sim-demos/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-sim-demos/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros-gz-sim-demos/build_ament_cmake.sh b/recipes/ros-jazzy-ros-gz-sim-demos/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-sim-demos/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros-gz-sim-demos/recipe.yaml b/recipes/ros-jazzy-ros-gz-sim-demos/recipe.yaml new file mode 100644 index 00000000..100a07fa --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-sim-demos/recipe.yaml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros-gz-sim-demos + version: 1.0.7 +source: + git: https://github.com/ros2-gbp/ros_ign-release.git + tag: release/jazzy/ros_gz_sim_demos/1.0.7-1 + target_directory: ros-jazzy-ros-gz-sim-demos/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-gz-sim-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-gz-sim-vendor + - ros-jazzy-image-transport-plugins + - ros-jazzy-robot-state-publisher + - ros-jazzy-ros-gz-bridge + - ros-jazzy-ros-gz-image + - ros-jazzy-ros-gz-sim + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-image-view + - ros-jazzy-rqt-plot + - ros-jazzy-rqt-topic + - ros-jazzy-rviz2 + - ros-jazzy-sdformat-urdf + - ros-jazzy-xacro + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros-gz-sim/bld_ament_cmake.bat b/recipes/ros-jazzy-ros-gz-sim/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-sim/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros-gz-sim/build_ament_cmake.sh b/recipes/ros-jazzy-ros-gz-sim/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-sim/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros-gz-sim/recipe.yaml b/recipes/ros-jazzy-ros-gz-sim/recipe.yaml new file mode 100644 index 00000000..a0d324b8 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-sim/recipe.yaml @@ -0,0 +1,124 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros-gz-sim + version: 1.0.7 +source: + git: https://github.com/ros2-gbp/ros_ign-release.git + tag: release/jazzy/ros_gz_sim/1.0.7-1 + target_directory: ros-jazzy-ros-gz-sim/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - gflags + - numpy + - pip + - pkg-config + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-index-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-sim-vendor + - ros-jazzy-gz-transport-vendor + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - gflags + - python + - ros-jazzy-ament-index-python + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-msgs-vendor + - ros-jazzy-gz-sim-vendor + - ros-jazzy-gz-transport-vendor + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-ros-gz/bld_ament_cmake.bat b/recipes/ros-jazzy-ros-gz/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros-gz/build_ament_cmake.sh b/recipes/ros-jazzy-ros-gz/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros-gz/recipe.yaml b/recipes/ros-jazzy-ros-gz/recipe.yaml new file mode 100644 index 00000000..3508f343 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros-gz + version: 1.0.7 +source: + git: https://github.com/ros2-gbp/ros_ign-release.git + tag: release/jazzy/ros_gz/1.0.7-1 + target_directory: ros-jazzy-ros-gz/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-gz-bridge + - ros-jazzy-ros-gz-image + - ros-jazzy-ros-gz-sim + - ros-jazzy-ros-gz-sim-demos + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros-testing/bld_ament_cmake.bat b/recipes/ros-jazzy-ros-testing/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros-testing/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros-testing/build_ament_cmake.sh b/recipes/ros-jazzy-ros-testing/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros-testing/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros-testing/recipe.yaml b/recipes/ros-jazzy-ros-testing/recipe.yaml new file mode 100644 index 00000000..0c9088a4 --- /dev/null +++ b/recipes/ros-jazzy-ros-testing/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros-testing + version: 0.6.0 +source: + git: https://github.com/ros2-gbp/ros_testing-release.git + tag: release/jazzy/ros_testing/0.6.0-3 + target_directory: ros-jazzy-ros-testing/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-dependencies + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2test + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-workspace + - ros-jazzy-ros2test + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros-workspace/activate.bat b/recipes/ros-jazzy-ros-workspace/activate.bat new file mode 100644 index 00000000..48ff1d71 --- /dev/null +++ b/recipes/ros-jazzy-ros-workspace/activate.bat @@ -0,0 +1,15 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +@if not defined CONDA_PREFIX goto:eof + +@REM Don't do anything when we are in conda build. +@if defined SYS_PREFIX exit /b 0 + +@set "QT_PLUGIN_PATH=%CONDA_PREFIX%\Library\plugins" + +@call "%CONDA_PREFIX%\Library\local_setup.bat" +@set PYTHONHOME= +@set "ROS_OS_OVERRIDE=conda:win64" +@set "ROS_ETC_DIR=%CONDA_PREFIX%\Library\etc\ros" +@set "AMENT_PREFIX_PATH=%CONDA_PREFIX%\Library" +@set "AMENT_PYTHON_EXECUTABLE=%CONDA_PREFIX%\python.exe" diff --git a/recipes/ros-jazzy-ros-workspace/activate.ps1 b/recipes/ros-jazzy-ros-workspace/activate.ps1 new file mode 100644 index 00000000..137e67ae --- /dev/null +++ b/recipes/ros-jazzy-ros-workspace/activate.ps1 @@ -0,0 +1,16 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if ($null -eq ${env:CONDA_PREFIX}) { Exit } + +# Don't do anything when we are in conda build. +if ($null -ne ${env:SYS_PREFIX}) { Exit 0 } + +$Env:QT_PLUGIN_PATH="${env:CONDA_PREFIX}\Library\plugins" + +& "${env:CONDA_PREFIX}\Library\local_setup.ps1" + +$Env:PYTHONHOME='' +$Env:ROS_OS_OVERRIDE='conda:win64' +$Env:ROS_ETC_DIR="${env:CONDA_PREFIX}\Library\etc\ros" +$Env:AMENT_PREFIX_PATH="${env:CONDA_PREFIX}\Library" +$Env:AMENT_PYTHON_EXECUTABLE="${env:CONDA_PREFIX}\python.exe" diff --git a/recipes/ros-jazzy-ros-workspace/activate.sh b/recipes/ros-jazzy-ros-workspace/activate.sh new file mode 100644 index 00000000..aece9708 --- /dev/null +++ b/recipes/ros-jazzy-ros-workspace/activate.sh @@ -0,0 +1,26 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +# if [ -z "${CONDA_PREFIX}" ]; then +# exit 0; +# fi + +# Not sure if this is necessary on UNIX? +# export QT_PLUGIN_PATH=$CONDA_PREFIX\plugins + +if [ "$CONDA_BUILD" = "1" -a "$target_platform" != "$build_platform" ]; then + # ignore sourcing + echo "Not activating ROS when cross-compiling"; +else + source $CONDA_PREFIX/setup.sh +fi + +case "$OSTYPE" in + darwin*) export ROS_OS_OVERRIDE="conda:osx"; export RMW_IMPLEMENTATION="rmw_cyclonedds_cpp";; + linux*) export ROS_OS_OVERRIDE="conda:linux";; +esac + +export ROS_ETC_DIR=$CONDA_PREFIX/etc/ros +export AMENT_PREFIX_PATH=$CONDA_PREFIX + +# Looks unnecessary for UNIX +# unset PYTHONHOME= diff --git a/recipes/ros-jazzy-ros-workspace/bld_catkin.bat b/recipes/ros-jazzy-ros-workspace/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-ros-workspace/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-ros-workspace/build_catkin.sh b/recipes/ros-jazzy-ros-workspace/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/recipes/ros-jazzy-ros-workspace/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-ros-workspace/deactivate.bat b/recipes/ros-jazzy-ros-workspace/deactivate.bat new file mode 100644 index 00000000..6de79cca --- /dev/null +++ b/recipes/ros-jazzy-ros-workspace/deactivate.bat @@ -0,0 +1,18 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +@if not defined CONDA_PREFIX goto:eof + +@set ROS_OS_OVERRIDE= +@set ROS_DISTRO= +@set ROS_ETC_DIR= +@set ROS_PACKAGE_PATH= +@set ROS_PYTHON_VERSION= +@set ROS_VERSION= +@set PYTHONHOME= +@set PYTHONPATH= +@set CMAKE_PREFIX_PATH= +@set AMENT_PREFIX_PATH= +@set COLCON_PREFIX_PATH= +@set QT_PLUGIN_PATH= +@set ROS_LOCALHOST_ONLY= +@set ament_python_executable= diff --git a/recipes/ros-jazzy-ros-workspace/deactivate.ps1 b/recipes/ros-jazzy-ros-workspace/deactivate.ps1 new file mode 100644 index 00000000..9db51e1c --- /dev/null +++ b/recipes/ros-jazzy-ros-workspace/deactivate.ps1 @@ -0,0 +1,18 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! +if ($null -eq ${env:CONDA_PREFIX}) { Exit } + +$Env:ROS_OS_OVERRIDE='' +$Env:ROS_DISTRO='' +$Env:ROS_ETC_DIR='' +$Env:ROS_PACKAGE_PATH='' +$Env:ROS_PYTHON_VERSION='' +$Env:ROS_VERSION='' +$Env:PYTHONHOME='' +$Env:PYTHONPATH='' +$Env:CMAKE_PREFIX_PATH='' +$Env:AMENT_PREFIX_PATH='' +$Env:COLCON_PREFIX_PATH='' +$Env:QT_PLUGIN_PATH='' +$Env:ROS_LOCALHOST_ONLY='' +$Env:ament_python_executable='' diff --git a/recipes/ros-jazzy-ros-workspace/deactivate.sh b/recipes/ros-jazzy-ros-workspace/deactivate.sh new file mode 100644 index 00000000..87d4d835 --- /dev/null +++ b/recipes/ros-jazzy-ros-workspace/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-jazzy-ros-workspace/recipe.yaml b/recipes/ros-jazzy-ros-workspace/recipe.yaml new file mode 100644 index 00000000..77524cec --- /dev/null +++ b/recipes/ros-jazzy-ros-workspace/recipe.yaml @@ -0,0 +1,82 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros-workspace + version: 1.0.3 +source: + git: https://github.com/ros2-gbp/ros_workspace-release.git + tag: release/jazzy/ros_workspace/1.0.3-7 + target_directory: ros-jazzy-ros-workspace/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-package + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2action/bld_ament_python.bat b/recipes/ros-jazzy-ros2action/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2action/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2action/build_ament_python.sh b/recipes/ros-jazzy-ros2action/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2action/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2action/recipe.yaml b/recipes/ros-jazzy-ros2action/recipe.yaml new file mode 100644 index 00000000..82d5b1f4 --- /dev/null +++ b/recipes/ros-jazzy-ros2action/recipe.yaml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2action + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2action/0.32.2-1 + target_directory: ros-jazzy-ros2action/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-timeout + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-ament-index-python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-rosidl-runtime-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2bag/bld_ament_python.bat b/recipes/ros-jazzy-ros2bag/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2bag/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2bag/build_ament_python.sh b/recipes/ros-jazzy-ros2bag/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2bag/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2bag/recipe.yaml b/recipes/ros-jazzy-ros2bag/recipe.yaml new file mode 100644 index 00000000..658d70ad --- /dev/null +++ b/recipes/ros-jazzy-ros2bag/recipe.yaml @@ -0,0 +1,97 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2bag + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/ros2bag/0.26.6-1 + target_directory: ros-jazzy-ros2bag/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-storage-default-plugins + - ros-jazzy-rosbag2-test-common + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - pyyaml + - ros-jazzy-ament-index-python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-rosbag2-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2cli-common-extensions/bld_ament_cmake.bat b/recipes/ros-jazzy-ros2cli-common-extensions/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros2cli-common-extensions/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2cli-common-extensions/build_ament_cmake.sh b/recipes/ros-jazzy-ros2cli-common-extensions/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros2cli-common-extensions/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros2cli-common-extensions/recipe.yaml b/recipes/ros-jazzy-ros2cli-common-extensions/recipe.yaml new file mode 100644 index 00000000..62bb6ad4 --- /dev/null +++ b/recipes/ros-jazzy-ros2cli-common-extensions/recipe.yaml @@ -0,0 +1,103 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2cli-common-extensions + version: 0.3.0 +source: + git: https://github.com/ros2-gbp/ros2cli_common_extensions-release.git + tag: release/jazzy/ros2cli_common_extensions/0.3.0-3 + target_directory: ros-jazzy-ros2cli-common-extensions/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-launch-xml + - ros-jazzy-launch-yaml + - ros-jazzy-ros-workspace + - ros-jazzy-ros2action + - ros-jazzy-ros2cli + - ros-jazzy-ros2component + - ros-jazzy-ros2doctor + - ros-jazzy-ros2interface + - ros-jazzy-ros2launch + - ros-jazzy-ros2lifecycle + - ros-jazzy-ros2multicast + - ros-jazzy-ros2node + - ros-jazzy-ros2param + - ros-jazzy-ros2pkg + - ros-jazzy-ros2run + - ros-jazzy-ros2service + - ros-jazzy-ros2topic + - ros-jazzy-sros2 + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2cli-test-interfaces/bld_ament_cmake.bat b/recipes/ros-jazzy-ros2cli-test-interfaces/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros2cli-test-interfaces/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2cli-test-interfaces/build_ament_cmake.sh b/recipes/ros-jazzy-ros2cli-test-interfaces/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros2cli-test-interfaces/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros2cli-test-interfaces/recipe.yaml b/recipes/ros-jazzy-ros2cli-test-interfaces/recipe.yaml new file mode 100644 index 00000000..aac0ac58 --- /dev/null +++ b/recipes/ros-jazzy-ros2cli-test-interfaces/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2cli-test-interfaces + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2cli_test_interfaces/0.32.2-1 + target_directory: ros-jazzy-ros2cli-test-interfaces/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2cli/bld_ament_python.bat b/recipes/ros-jazzy-ros2cli/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2cli/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2cli/build_ament_python.sh b/recipes/ros-jazzy-ros2cli/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2cli/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2cli/recipe.yaml b/recipes/ros-jazzy-ros2cli/recipe.yaml new file mode 100644 index 00000000..0a1604ff --- /dev/null +++ b/recipes/ros-jazzy-ros2cli/recipe.yaml @@ -0,0 +1,96 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2cli + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2cli/0.32.2-1 + target_directory: ros-jazzy-ros2cli/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-timeout + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - argcomplete + - importlib-metadata + - packaging + - psutil + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2component/bld_ament_python.bat b/recipes/ros-jazzy-ros2component/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2component/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2component/build_ament_python.sh b/recipes/ros-jazzy-ros2component/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2component/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2component/recipe.yaml b/recipes/ros-jazzy-ros2component/recipe.yaml new file mode 100644 index 00000000..80c0f3c7 --- /dev/null +++ b/recipes/ros-jazzy-ros2component/recipe.yaml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2component + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2component/0.32.2-1 + target_directory: ros-jazzy-ros2component/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-timeout + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ament-index-python + - ros-jazzy-composition-interfaces + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp-components + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-ros2node + - ros-jazzy-ros2param + - ros-jazzy-ros2pkg + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2doctor/bld_ament_python.bat b/recipes/ros-jazzy-ros2doctor/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2doctor/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2doctor/build_ament_python.sh b/recipes/ros-jazzy-ros2doctor/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2doctor/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2doctor/recipe.yaml b/recipes/ros-jazzy-ros2doctor/recipe.yaml new file mode 100644 index 00000000..5855cd76 --- /dev/null +++ b/recipes/ros-jazzy-ros2doctor/recipe.yaml @@ -0,0 +1,104 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2doctor + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2doctor/0.32.2-1 + target_directory: ros-jazzy-ros2doctor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-timeout + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - catkin_pkg + - importlib-metadata + - psutil + - python + - ros-jazzy-ament-index-python + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - rosdistro + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2interface/bld_ament_python.bat b/recipes/ros-jazzy-ros2interface/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2interface/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2interface/build_ament_python.sh b/recipes/ros-jazzy-ros2interface/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2interface/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2interface/recipe.yaml b/recipes/ros-jazzy-ros2interface/recipe.yaml new file mode 100644 index 00000000..aeb5ab59 --- /dev/null +++ b/recipes/ros-jazzy-ros2interface/recipe.yaml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2interface + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2interface/0.32.2-1 + target_directory: ros-jazzy-ros2interface/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-timeout + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli-test-interfaces + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ament-index-python + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-rosidl-adapter + - ros-jazzy-rosidl-runtime-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2launch/bld_ament_python.bat b/recipes/ros-jazzy-ros2launch/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2launch/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2launch/build_ament_python.sh b/recipes/ros-jazzy-ros2launch/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2launch/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2launch/recipe.yaml b/recipes/ros-jazzy-ros2launch/recipe.yaml new file mode 100644 index 00000000..2ff60d0a --- /dev/null +++ b/recipes/ros-jazzy-ros2launch/recipe.yaml @@ -0,0 +1,102 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2launch + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/launch_ros-release.git + tag: release/jazzy/ros2launch/0.26.6-1 + target_directory: ros-jazzy-ros2launch/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-index-python + - ros-jazzy-ament-pep257 + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-xml + - ros-jazzy-launch-yaml + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-ros2pkg + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ament-index-python + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-xml + - ros-jazzy-launch-yaml + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-ros2pkg + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2lifecycle-test-fixtures/bld_ament_cmake.bat b/recipes/ros-jazzy-ros2lifecycle-test-fixtures/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros2lifecycle-test-fixtures/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2lifecycle-test-fixtures/build_ament_cmake.sh b/recipes/ros-jazzy-ros2lifecycle-test-fixtures/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros2lifecycle-test-fixtures/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros2lifecycle-test-fixtures/recipe.yaml b/recipes/ros-jazzy-ros2lifecycle-test-fixtures/recipe.yaml new file mode 100644 index 00000000..c70b16f5 --- /dev/null +++ b/recipes/ros-jazzy-ros2lifecycle-test-fixtures/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2lifecycle-test-fixtures + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2lifecycle_test_fixtures/0.32.2-1 + target_directory: ros-jazzy-ros2lifecycle-test-fixtures/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2lifecycle/bld_ament_python.bat b/recipes/ros-jazzy-ros2lifecycle/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2lifecycle/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2lifecycle/build_ament_python.sh b/recipes/ros-jazzy-ros2lifecycle/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2lifecycle/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2lifecycle/recipe.yaml b/recipes/ros-jazzy-ros2lifecycle/recipe.yaml new file mode 100644 index 00000000..d4da643e --- /dev/null +++ b/recipes/ros-jazzy-ros2lifecycle/recipe.yaml @@ -0,0 +1,100 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2lifecycle + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2lifecycle/0.32.2-1 + target_directory: ros-jazzy-ros2lifecycle/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-timeout + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2lifecycle-test-fixtures + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-lifecycle-msgs + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-ros2node + - ros-jazzy-ros2service + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2multicast/bld_ament_python.bat b/recipes/ros-jazzy-ros2multicast/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2multicast/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2multicast/build_ament_python.sh b/recipes/ros-jazzy-ros2multicast/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2multicast/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2multicast/recipe.yaml b/recipes/ros-jazzy-ros2multicast/recipe.yaml new file mode 100644 index 00000000..76f73afa --- /dev/null +++ b/recipes/ros-jazzy-ros2multicast/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2multicast + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2multicast/0.32.2-1 + target_directory: ros-jazzy-ros2multicast/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-timeout + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2node/bld_ament_python.bat b/recipes/ros-jazzy-ros2node/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2node/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2node/build_ament_python.sh b/recipes/ros-jazzy-ros2node/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2node/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2node/recipe.yaml b/recipes/ros-jazzy-ros2node/recipe.yaml new file mode 100644 index 00000000..f64627c8 --- /dev/null +++ b/recipes/ros-jazzy-ros2node/recipe.yaml @@ -0,0 +1,98 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2node + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2node/0.32.2-1 + target_directory: ros-jazzy-ros2node/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-timeout + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2param/bld_ament_python.bat b/recipes/ros-jazzy-ros2param/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2param/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2param/build_ament_python.sh b/recipes/ros-jazzy-ros2param/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2param/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2param/recipe.yaml b/recipes/ros-jazzy-ros2param/recipe.yaml new file mode 100644 index 00000000..87ac5747 --- /dev/null +++ b/recipes/ros-jazzy-ros2param/recipe.yaml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2param + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2param/0.32.2-1 + target_directory: ros-jazzy-ros2param/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-timeout + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-ros2node + - ros-jazzy-ros2service + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2pkg/bld_ament_python.bat b/recipes/ros-jazzy-ros2pkg/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2pkg/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2pkg/build_ament_python.sh b/recipes/ros-jazzy-ros2pkg/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2pkg/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2pkg/recipe.yaml b/recipes/ros-jazzy-ros2pkg/recipe.yaml new file mode 100644 index 00000000..c35c441c --- /dev/null +++ b/recipes/ros-jazzy-ros2pkg/recipe.yaml @@ -0,0 +1,98 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2pkg + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2pkg/0.32.2-1 + target_directory: ros-jazzy-ros2pkg/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-timeout + - python + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - catkin_pkg + - empy + - importlib_resources + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-index-python + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2run/bld_ament_python.bat b/recipes/ros-jazzy-ros2run/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2run/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2run/build_ament_python.sh b/recipes/ros-jazzy-ros2run/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2run/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2run/recipe.yaml b/recipes/ros-jazzy-ros2run/recipe.yaml new file mode 100644 index 00000000..b5b8dd05 --- /dev/null +++ b/recipes/ros-jazzy-ros2run/recipe.yaml @@ -0,0 +1,92 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2run + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2run/0.32.2-1 + target_directory: ros-jazzy-ros2run/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-timeout + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-ros2pkg + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2service/bld_ament_python.bat b/recipes/ros-jazzy-ros2service/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2service/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2service/build_ament_python.sh b/recipes/ros-jazzy-ros2service/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2service/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2service/recipe.yaml b/recipes/ros-jazzy-ros2service/recipe.yaml new file mode 100644 index 00000000..134b3e88 --- /dev/null +++ b/recipes/ros-jazzy-ros2service/recipe.yaml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2service + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2service/0.32.2-1 + target_directory: ros-jazzy-ros2service/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-timeout + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - pyyaml + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-rosidl-runtime-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2test/bld_ament_python.bat b/recipes/ros-jazzy-ros2test/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2test/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2test/build_ament_python.sh b/recipes/ros-jazzy-ros2test/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2test/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2test/recipe.yaml b/recipes/ros-jazzy-ros2test/recipe.yaml new file mode 100644 index 00000000..95670f54 --- /dev/null +++ b/recipes/ros-jazzy-ros2test/recipe.yaml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2test + version: 0.6.0 +source: + git: https://github.com/ros2-gbp/ros_testing-release.git + tag: release/jazzy/ros2test/0.6.0-3 + target_directory: ros-jazzy-ros2test/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-domain-coordinator + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2topic/bld_ament_python.bat b/recipes/ros-jazzy-ros2topic/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2topic/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2topic/build_ament_python.sh b/recipes/ros-jazzy-ros2topic/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2topic/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-ros2topic/recipe.yaml b/recipes/ros-jazzy-ros2topic/recipe.yaml new file mode 100644 index 00000000..a2b799e7 --- /dev/null +++ b/recipes/ros-jazzy-ros2topic/recipe.yaml @@ -0,0 +1,103 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ros2topic + version: 0.32.2 +source: + git: https://github.com/ros2-gbp/ros2cli-release.git + tag: release/jazzy/ros2topic/0.32.2-1 + target_directory: ros-jazzy-ros2topic/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - pytest-timeout + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-geometry-msgs + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosgraph-msgs + - ros-jazzy-std-msgs + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - numpy + - python + - pyyaml + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-rosidl-runtime-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2-compression-zstd/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2-compression-zstd/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-compression-zstd/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2-compression-zstd/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2-compression-zstd/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-compression-zstd/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2-compression-zstd/recipe.yaml b/recipes/ros-jazzy-rosbag2-compression-zstd/recipe.yaml new file mode 100644 index 00000000..9e86a6d3 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-compression-zstd/recipe.yaml @@ -0,0 +1,97 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2-compression-zstd + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2_compression_zstd/0.26.6-1 + target_directory: ros-jazzy-rosbag2-compression-zstd/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-compression + - ros-jazzy-rosbag2-test-common + - ros-jazzy-zstd-vendor + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-pluginlib + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-compression + - ros-jazzy-zstd-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2-compression/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2-compression/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-compression/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2-compression/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2-compression/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-compression/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2-compression/recipe.yaml b/recipes/ros-jazzy-rosbag2-compression/recipe.yaml new file mode 100644 index 00000000..7651f54b --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-compression/recipe.yaml @@ -0,0 +1,98 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2-compression + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2_compression/0.26.6-1 + target_directory: ros-jazzy-rosbag2-compression/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rclcpp + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-cpp + - ros-jazzy-rosbag2-storage + - ros-jazzy-rosbag2-test-common + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-cpp + - ros-jazzy-rosbag2-storage + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2-cpp/recipe.yaml b/recipes/ros-jazzy-rosbag2-cpp/recipe.yaml new file mode 100644 index 00000000..081801ff --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-cpp/recipe.yaml @@ -0,0 +1,117 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2-cpp + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2_cpp/0.26.6-1 + target_directory: ros-jazzy-rosbag2-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-implementation + - ros-jazzy-rmw-implementation-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-storage + - ros-jazzy-rosbag2-storage-default-plugins + - ros-jazzy-rosbag2-test-common + - ros-jazzy-rosbag2-test-msgdefs + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-cpp + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros-jazzy-std-msgs + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-implementation + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-storage + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-cpp + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2-interfaces/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2-interfaces/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-interfaces/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2-interfaces/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2-interfaces/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-interfaces/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2-interfaces/recipe.yaml b/recipes/ros-jazzy-rosbag2-interfaces/recipe.yaml new file mode 100644 index 00000000..488ba1a2 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-interfaces/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2-interfaces + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2_interfaces/0.26.6-1 + target_directory: ros-jazzy-rosbag2-interfaces/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2-py/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2-py/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-py/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2-py/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2-py/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-py/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2-py/recipe.yaml b/recipes/ros-jazzy-rosbag2-py/recipe.yaml new file mode 100644 index 00000000..f9b1d98d --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-py/recipe.yaml @@ -0,0 +1,112 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2-py + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2_py/0.26.6-1 + target_directory: ros-jazzy-rosbag2-py/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - pybind11 + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-pybind11-vendor + - ros-jazzy-python-cmake-module + - ros-jazzy-rcl-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-compression + - ros-jazzy-rosbag2-compression-zstd + - ros-jazzy-rosbag2-cpp + - ros-jazzy-rosbag2-storage + - ros-jazzy-rosbag2-storage-default-plugins + - ros-jazzy-rosbag2-test-common + - ros-jazzy-rosbag2-test-msgdefs + - ros-jazzy-rosbag2-transport + - ros-jazzy-rosidl-runtime-py + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - pybind11 + run: + - python + - ros-jazzy-pybind11-vendor + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-compression + - ros-jazzy-rosbag2-cpp + - ros-jazzy-rosbag2-storage + - ros-jazzy-rosbag2-transport + - ros-jazzy-rpyutils + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2-storage-default-plugins/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2-storage-default-plugins/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-storage-default-plugins/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2-storage-default-plugins/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2-storage-default-plugins/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-storage-default-plugins/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2-storage-default-plugins/recipe.yaml b/recipes/ros-jazzy-rosbag2-storage-default-plugins/recipe.yaml new file mode 100644 index 00000000..aa48c5ca --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-storage-default-plugins/recipe.yaml @@ -0,0 +1,86 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2-storage-default-plugins + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2_storage_default_plugins/0.26.6-1 + target_directory: ros-jazzy-rosbag2-storage-default-plugins/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-storage-mcap + - ros-jazzy-rosbag2-storage-sqlite3 + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2-storage-mcap/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2-storage-mcap/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-storage-mcap/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2-storage-mcap/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2-storage-mcap/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-storage-mcap/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2-storage-mcap/recipe.yaml b/recipes/ros-jazzy-rosbag2-storage-mcap/recipe.yaml new file mode 100644 index 00000000..e5eac0c3 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-storage-mcap/recipe.yaml @@ -0,0 +1,103 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2-storage-mcap + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2_storage_mcap/0.26.6-1 + target_directory: ros-jazzy-rosbag2-storage-mcap/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-clang-format + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-mcap-vendor + - ros-jazzy-pluginlib + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-storage + - ros-jazzy-rosbag2-test-common + - ros-jazzy-std-msgs + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-mcap-vendor + - ros-jazzy-pluginlib + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-storage + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2-storage-sqlite3/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2-storage-sqlite3/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-storage-sqlite3/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2-storage-sqlite3/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2-storage-sqlite3/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-storage-sqlite3/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2-storage-sqlite3/recipe.yaml b/recipes/ros-jazzy-rosbag2-storage-sqlite3/recipe.yaml new file mode 100644 index 00000000..896fcbe1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-storage-sqlite3/recipe.yaml @@ -0,0 +1,102 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2-storage-sqlite3 + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2_storage_sqlite3/0.26.6-1 + target_directory: ros-jazzy-rosbag2-storage-sqlite3/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-pluginlib + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-storage + - ros-jazzy-rosbag2-test-common + - ros-jazzy-sqlite3-vendor + - ros-jazzy-std-msgs + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-pluginlib + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-storage + - ros-jazzy-sqlite3-vendor + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2-storage/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2-storage/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-storage/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2-storage/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2-storage/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-storage/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2-storage/recipe.yaml b/recipes/ros-jazzy-rosbag2-storage/recipe.yaml new file mode 100644 index 00000000..9bd5761e --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-storage/recipe.yaml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2-storage + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2_storage/0.26.6-1 + target_directory: ros-jazzy-rosbag2-storage/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-test-common + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2-test-common/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2-test-common/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-test-common/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2-test-common/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2-test-common/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-test-common/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2-test-common/recipe.yaml b/recipes/ros-jazzy-rosbag2-test-common/recipe.yaml new file mode 100644 index 00000000..bef1fffb --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-test-common/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2-test-common + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2_test_common/0.26.6-1 + target_directory: ros-jazzy-rosbag2-test-common/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-python-cmake-module + - ros-jazzy-rclcpp + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2-test-msgdefs/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2-test-msgdefs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-test-msgdefs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2-test-msgdefs/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2-test-msgdefs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-test-msgdefs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2-test-msgdefs/recipe.yaml b/recipes/ros-jazzy-rosbag2-test-msgdefs/recipe.yaml new file mode 100644 index 00000000..b566a5e0 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-test-msgdefs/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2-test-msgdefs + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2_test_msgdefs/0.26.6-1 + target_directory: ros-jazzy-rosbag2-test-msgdefs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2-tests/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2-tests/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-tests/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2-tests/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2-tests/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-tests/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2-tests/recipe.yaml b/recipes/ros-jazzy-rosbag2-tests/recipe.yaml new file mode 100644 index 00000000..d5d143f8 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-tests/recipe.yaml @@ -0,0 +1,102 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2-tests + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2_tests/0.26.6-1 + target_directory: ros-jazzy-rosbag2-tests/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rclcpp + - ros-jazzy-rcpputils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2bag + - ros-jazzy-rosbag2-compression + - ros-jazzy-rosbag2-compression-zstd + - ros-jazzy-rosbag2-cpp + - ros-jazzy-rosbag2-interfaces + - ros-jazzy-rosbag2-storage + - ros-jazzy-rosbag2-storage-default-plugins + - ros-jazzy-rosbag2-test-common + - ros-jazzy-rosbag2-transport + - ros-jazzy-std-msgs + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2-transport/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2-transport/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-transport/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2-transport/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2-transport/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-transport/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2-transport/recipe.yaml b/recipes/ros-jazzy-rosbag2-transport/recipe.yaml new file mode 100644 index 00000000..7367e949 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-transport/recipe.yaml @@ -0,0 +1,116 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2-transport + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2_transport/0.26.6-1 + target_directory: ros-jazzy-rosbag2-transport/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-composition-interfaces + - ros-jazzy-keyboard-handler + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-rmw-implementation-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-compression + - ros-jazzy-rosbag2-compression-zstd + - ros-jazzy-rosbag2-cpp + - ros-jazzy-rosbag2-interfaces + - ros-jazzy-rosbag2-storage + - ros-jazzy-rosbag2-storage-default-plugins + - ros-jazzy-rosbag2-test-common + - ros-jazzy-test-msgs + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-keyboard-handler + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-compression + - ros-jazzy-rosbag2-cpp + - ros-jazzy-rosbag2-interfaces + - ros-jazzy-rosbag2-storage + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbag2/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbag2/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbag2/build_ament_cmake.sh b/recipes/ros-jazzy-rosbag2/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbag2/recipe.yaml b/recipes/ros-jazzy-rosbag2/recipe.yaml new file mode 100644 index 00000000..d1959ba3 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosbag2 + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/rosbag2/0.26.6-1 + target_directory: ros-jazzy-rosbag2/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-test-common + - ros-jazzy-rosbag2-tests + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-ros2bag + - ros-jazzy-rosbag2-compression + - ros-jazzy-rosbag2-compression-zstd + - ros-jazzy-rosbag2-cpp + - ros-jazzy-rosbag2-py + - ros-jazzy-rosbag2-storage + - ros-jazzy-rosbag2-storage-default-plugins + - ros-jazzy-rosbag2-transport + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosgraph-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-rosgraph-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosgraph-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosgraph-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-rosgraph-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosgraph-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosgraph-msgs/recipe.yaml b/recipes/ros-jazzy-rosgraph-msgs/recipe.yaml new file mode 100644 index 00000000..76eb5176 --- /dev/null +++ b/recipes/ros-jazzy-rosgraph-msgs/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosgraph-msgs + version: 2.0.2 +source: + git: https://github.com/ros2-gbp/rcl_interfaces-release.git + tag: release/jazzy/rosgraph_msgs/2.0.2-2 + target_directory: ros-jazzy-rosgraph-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-adapter/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-adapter/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-adapter/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-adapter/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-adapter/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-adapter/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-adapter/recipe.yaml b/recipes/ros-jazzy-rosidl-adapter/recipe.yaml new file mode 100644 index 00000000..8342c382 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-adapter/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-adapter + version: 4.6.5 +source: + git: https://github.com/ros2-gbp/rosidl-release.git + tag: release/jazzy/rosidl_adapter/4.6.5-1 + target_directory: ros-jazzy-rosidl-adapter/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - empy + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-cli/bld_ament_python.bat b/recipes/ros-jazzy-rosidl-cli/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rosidl-cli/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-cli/build_ament_python.sh b/recipes/ros-jazzy-rosidl-cli/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rosidl-cli/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rosidl-cli/recipe.yaml b/recipes/ros-jazzy-rosidl-cli/recipe.yaml new file mode 100644 index 00000000..b77b56bf --- /dev/null +++ b/recipes/ros-jazzy-rosidl-cli/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-cli + version: 4.6.5 +source: + git: https://github.com/ros2-gbp/rosidl-release.git + tag: release/jazzy/rosidl_cli/4.6.5-1 + target_directory: ros-jazzy-rosidl-cli/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - argcomplete + - importlib-metadata + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-cmake/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-cmake/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-cmake/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-cmake/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-cmake/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-cmake/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-cmake/recipe.yaml b/recipes/ros-jazzy-rosidl-cmake/recipe.yaml new file mode 100644 index 00000000..6508bfdb --- /dev/null +++ b/recipes/ros-jazzy-rosidl-cmake/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-cmake + version: 4.6.5 +source: + git: https://github.com/ros2-gbp/rosidl-release.git + tag: release/jazzy/rosidl_cmake/4.6.5-1 + target_directory: ros-jazzy-rosidl-cmake/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - empy + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - empy + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-pycommon + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-core-generators/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-core-generators/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-core-generators/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-core-generators/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-core-generators/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-core-generators/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-core-generators/recipe.yaml b/recipes/ros-jazzy-rosidl-core-generators/recipe.yaml new file mode 100644 index 00000000..e1983f47 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-core-generators/recipe.yaml @@ -0,0 +1,110 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-core-generators + version: 0.2.0 +source: + git: https://github.com/ros2-gbp/rosidl_core-release.git + tag: release/jazzy/rosidl_core_generators/0.2.0-3 + target_directory: ros-jazzy-rosidl-core-generators/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cmake + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-generator-cpp + - ros-jazzy-rosidl-generator-py + - ros-jazzy-rosidl-generator-type-description + - ros-jazzy-rosidl-typesupport-c + - ros-jazzy-rosidl-typesupport-cpp + - ros-jazzy-rosidl-typesupport-fastrtps-c + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-rosidl-typesupport-introspection-c + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cmake + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-generator-cpp + - ros-jazzy-rosidl-generator-py + - ros-jazzy-rosidl-generator-type-description + - ros-jazzy-rosidl-typesupport-c + - ros-jazzy-rosidl-typesupport-cpp + - ros-jazzy-rosidl-typesupport-fastrtps-c + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-rosidl-typesupport-introspection-c + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-core-runtime/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-core-runtime/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-core-runtime/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-core-runtime/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-core-runtime/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-core-runtime/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-core-runtime/recipe.yaml b/recipes/ros-jazzy-rosidl-core-runtime/recipe.yaml new file mode 100644 index 00000000..c028a906 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-core-runtime/recipe.yaml @@ -0,0 +1,104 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-core-runtime + version: 0.2.0 +source: + git: https://github.com/ros2-gbp/rosidl_core-release.git + tag: release/jazzy/rosidl_core_runtime/0.2.0-3 + target_directory: ros-jazzy-rosidl-core-runtime/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-generator-py + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-c + - ros-jazzy-rosidl-typesupport-cpp + - ros-jazzy-rosidl-typesupport-fastrtps-c + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-rosidl-typesupport-introspection-c + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-generator-py + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-c + - ros-jazzy-rosidl-typesupport-cpp + - ros-jazzy-rosidl-typesupport-fastrtps-c + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-rosidl-typesupport-introspection-c + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-default-generators/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-default-generators/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-default-generators/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-default-generators/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-default-generators/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-default-generators/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-default-generators/recipe.yaml b/recipes/ros-jazzy-rosidl-default-generators/recipe.yaml new file mode 100644 index 00000000..7cdc6dd4 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-default-generators/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-default-generators + version: 1.6.0 +source: + git: https://github.com/ros2-gbp/rosidl_defaults-release.git + tag: release/jazzy/rosidl_default_generators/1.6.0-3 + target_directory: ros-jazzy-rosidl-default-generators/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-action-msgs + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-generators + - ros-jazzy-service-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-generators + - ros-jazzy-service-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-default-runtime/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-default-runtime/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-default-runtime/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-default-runtime/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-default-runtime/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-default-runtime/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-default-runtime/recipe.yaml b/recipes/ros-jazzy-rosidl-default-runtime/recipe.yaml new file mode 100644 index 00000000..039816c8 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-default-runtime/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-default-runtime + version: 1.6.0 +source: + git: https://github.com/ros2-gbp/rosidl_defaults-release.git + tag: release/jazzy/rosidl_default_runtime/1.6.0-3 + target_directory: ros-jazzy-rosidl-default-runtime/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-runtime + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-runtime + - ros-jazzy-service-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-dynamic-typesupport-fastrtps/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-dynamic-typesupport-fastrtps/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-dynamic-typesupport-fastrtps/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-dynamic-typesupport-fastrtps/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-dynamic-typesupport-fastrtps/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-dynamic-typesupport-fastrtps/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-dynamic-typesupport-fastrtps/recipe.yaml b/recipes/ros-jazzy-rosidl-dynamic-typesupport-fastrtps/recipe.yaml new file mode 100644 index 00000000..a13669e8 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-dynamic-typesupport-fastrtps/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-dynamic-typesupport-fastrtps + version: 0.1.0 +source: + git: https://github.com/ros2-gbp/rosidl_dynamic_typesupport_fastrtps-release.git + tag: release/jazzy/rosidl_dynamic_typesupport_fastrtps/0.1.0-3 + target_directory: ros-jazzy-rosidl-dynamic-typesupport-fastrtps/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-fastcdr + - ros-jazzy-fastrtps + - ros-jazzy-fastrtps-cmake-module + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-dynamic-typesupport + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-fastcdr + - ros-jazzy-fastrtps + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-dynamic-typesupport + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-dynamic-typesupport/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-dynamic-typesupport/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-dynamic-typesupport/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-dynamic-typesupport/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-dynamic-typesupport/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-dynamic-typesupport/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-dynamic-typesupport/recipe.yaml b/recipes/ros-jazzy-rosidl-dynamic-typesupport/recipe.yaml new file mode 100644 index 00000000..955881c9 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-dynamic-typesupport/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-dynamic-typesupport + version: 0.1.2 +source: + git: https://github.com/ros2-gbp/rosidl_dynamic_typesupport-release.git + tag: release/jazzy/rosidl_dynamic_typesupport/0.1.2-3 + target_directory: ros-jazzy-rosidl-dynamic-typesupport/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-generator-c/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-generator-c/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-c/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-generator-c/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-generator-c/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-c/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-generator-c/recipe.yaml b/recipes/ros-jazzy-rosidl-generator-c/recipe.yaml new file mode 100644 index 00000000..b8854017 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-c/recipe.yaml @@ -0,0 +1,102 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-generator-c + version: 4.6.5 +source: + git: https://github.com/ros2-gbp/rosidl-release.git + tag: release/jazzy/rosidl_generator_c/4.6.5-1 + target_directory: ros-jazzy-rosidl-generator-c/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cmake + - ros-jazzy-rosidl-generator-type-description + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-typesupport-interface + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-index-python + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros-jazzy-rosidl-cmake + - ros-jazzy-rosidl-generator-type-description + - ros-jazzy-rosidl-parser + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-typesupport-interface + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-generator-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-generator-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-generator-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-generator-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-generator-cpp/recipe.yaml b/recipes/ros-jazzy-rosidl-generator-cpp/recipe.yaml new file mode 100644 index 00000000..6dc599a8 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-cpp/recipe.yaml @@ -0,0 +1,100 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-generator-cpp + version: 4.6.5 +source: + git: https://github.com/ros2-gbp/rosidl-release.git + tag: release/jazzy/rosidl_generator_cpp/4.6.5-1 + target_directory: ros-jazzy-rosidl-generator-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cmake + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-runtime-cpp + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-index-python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros-jazzy-rosidl-cmake + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-generator-type-description + - ros-jazzy-rosidl-parser + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-runtime-cpp + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-generator-py/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-generator-py/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-py/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-generator-py/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-generator-py/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-py/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-generator-py/recipe.yaml b/recipes/ros-jazzy-rosidl-generator-py/recipe.yaml new file mode 100644 index 00000000..841fead3 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-py/recipe.yaml @@ -0,0 +1,121 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-generator-py + version: 0.22.0 +source: + git: https://github.com/ros2-gbp/rosidl_python-release.git + tag: release/jazzy/rosidl_generator_py/0.22.0-2 + target_directory: ros-jazzy-rosidl-generator-py/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-index-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-python-cmake-module + - ros-jazzy-rmw + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cmake + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-generator-cpp + - ros-jazzy-rosidl-parser + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-typesupport-c + - ros-jazzy-rosidl-typesupport-fastrtps-c + - ros-jazzy-rosidl-typesupport-interface + - ros-jazzy-rosidl-typesupport-introspection-c + - ros-jazzy-rpyutils + - ros-jazzy-test-interface-files + - ros2-distro-mutex 0.6.* jazzy_* + run: + - numpy + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-cppcheck + - ros-jazzy-ament-cmake-cpplint + - ros-jazzy-ament-cmake-flake8 + - ros-jazzy-ament-cmake-pep257 + - ros-jazzy-ament-cmake-uncrustify + - ros-jazzy-ament-index-python + - ros-jazzy-python-cmake-module + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-parser + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-typesupport-c + - ros-jazzy-rosidl-typesupport-interface + - ros-jazzy-rpyutils + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-generator-type-description/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-generator-type-description/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-type-description/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-generator-type-description/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-generator-type-description/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-type-description/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-generator-type-description/recipe.yaml b/recipes/ros-jazzy-rosidl-generator-type-description/recipe.yaml new file mode 100644 index 00000000..e5182d6e --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-type-description/recipe.yaml @@ -0,0 +1,92 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-generator-type-description + version: 4.6.5 +source: + git: https://github.com/ros2-gbp/rosidl-release.git + tag: release/jazzy/rosidl_generator_type_description/4.6.5-1 + target_directory: ros-jazzy-rosidl-generator-type-description/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-index-python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros-jazzy-rosidl-parser + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-parser/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-parser/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-parser/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-parser/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-parser/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-parser/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-parser/recipe.yaml b/recipes/ros-jazzy-rosidl-parser/recipe.yaml new file mode 100644 index 00000000..d9a5803b --- /dev/null +++ b/recipes/ros-jazzy-rosidl-parser/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-parser + version: 4.6.5 +source: + git: https://github.com/ros2-gbp/rosidl-release.git + tag: release/jazzy/rosidl_parser/4.6.5-1 + target_directory: ros-jazzy-rosidl-parser/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - lark-parser + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-adapter + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-pycommon/bld_ament_python.bat b/recipes/ros-jazzy-rosidl-pycommon/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rosidl-pycommon/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-pycommon/build_ament_python.sh b/recipes/ros-jazzy-rosidl-pycommon/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rosidl-pycommon/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rosidl-pycommon/recipe.yaml b/recipes/ros-jazzy-rosidl-pycommon/recipe.yaml new file mode 100644 index 00000000..e78e3855 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-pycommon/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-pycommon + version: 4.6.5 +source: + git: https://github.com/ros2-gbp/rosidl-release.git + tag: release/jazzy/rosidl_pycommon/4.6.5-1 + target_directory: ros-jazzy-rosidl-pycommon/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-parser + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-runtime-c/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-runtime-c/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-runtime-c/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-runtime-c/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-runtime-c/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-runtime-c/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-runtime-c/recipe.yaml b/recipes/ros-jazzy-rosidl-runtime-c/recipe.yaml new file mode 100644 index 00000000..4d55a202 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-runtime-c/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-runtime-c + version: 4.6.5 +source: + git: https://github.com/ros2-gbp/rosidl-release.git + tag: release/jazzy/rosidl_runtime_c/4.6.5-1 + target_directory: ros-jazzy-rosidl-runtime-c/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-performance-test-fixture + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-typesupport-interface + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-typesupport-interface + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-runtime-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-runtime-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-runtime-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-runtime-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-runtime-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-runtime-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-runtime-cpp/recipe.yaml b/recipes/ros-jazzy-rosidl-runtime-cpp/recipe.yaml new file mode 100644 index 00000000..344ab00a --- /dev/null +++ b/recipes/ros-jazzy-rosidl-runtime-cpp/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-runtime-cpp + version: 4.6.5 +source: + git: https://github.com/ros2-gbp/rosidl-release.git + tag: release/jazzy/rosidl_runtime_cpp/4.6.5-1 + target_directory: ros-jazzy-rosidl-runtime-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-performance-test-fixture + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-runtime-py/bld_ament_python.bat b/recipes/ros-jazzy-rosidl-runtime-py/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rosidl-runtime-py/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-runtime-py/build_ament_python.sh b/recipes/ros-jazzy-rosidl-runtime-py/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rosidl-runtime-py/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rosidl-runtime-py/recipe.yaml b/recipes/ros-jazzy-rosidl-runtime-py/recipe.yaml new file mode 100644 index 00000000..27a2e5eb --- /dev/null +++ b/recipes/ros-jazzy-rosidl-runtime-py/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-runtime-py + version: 0.13.1 +source: + git: https://github.com/ros2-gbp/rosidl_runtime_py-release.git + tag: release/jazzy/rosidl_runtime_py/0.13.1-2 + target_directory: ros-jazzy-rosidl-runtime-py/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - numpy + - python + - pyyaml + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-parser + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-typesupport-c/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-typesupport-c/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-c/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-typesupport-c/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-typesupport-c/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-c/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-typesupport-c/recipe.yaml b/recipes/ros-jazzy-rosidl-typesupport-c/recipe.yaml new file mode 100644 index 00000000..d6c1f366 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-c/recipe.yaml @@ -0,0 +1,105 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-typesupport-c + version: 3.2.2 +source: + git: https://github.com/ros2-gbp/rosidl_typesupport-release.git + tag: release/jazzy/rosidl_typesupport_c/3.2.2-1 + target_directory: ros-jazzy-rosidl-typesupport-c/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-mimick-vendor + - ros-jazzy-performance-test-fixture + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-typesupport-fastrtps-c + - ros-jazzy-rosidl-typesupport-introspection-c + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-index-python + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-typesupport-fastrtps-c + - ros-jazzy-rosidl-typesupport-interface + - ros-jazzy-rosidl-typesupport-introspection-c + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-typesupport-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-typesupport-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-typesupport-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-typesupport-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-typesupport-cpp/recipe.yaml b/recipes/ros-jazzy-rosidl-typesupport-cpp/recipe.yaml new file mode 100644 index 00000000..3d779bea --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-cpp/recipe.yaml @@ -0,0 +1,109 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-typesupport-cpp + version: 3.2.2 +source: + git: https://github.com/ros2-gbp/rosidl_typesupport-release.git + tag: release/jazzy/rosidl_typesupport_cpp/3.2.2-1 + target_directory: ros-jazzy-rosidl-typesupport-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-performance-test-fixture + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-c + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-index-python + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-generator-type-description + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-c + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-rosidl-typesupport-interface + - ros-jazzy-rosidl-typesupport-introspection-cpp + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-typesupport-fastrtps-c/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-typesupport-fastrtps-c/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-fastrtps-c/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-typesupport-fastrtps-c/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-typesupport-fastrtps-c/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-fastrtps-c/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-typesupport-fastrtps-c/recipe.yaml b/recipes/ros-jazzy-rosidl-typesupport-fastrtps-c/recipe.yaml new file mode 100644 index 00000000..79946d72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-fastrtps-c/recipe.yaml @@ -0,0 +1,114 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-typesupport-fastrtps-c + version: 3.6.1 +source: + git: https://github.com/ros2-gbp/rosidl_typesupport_fastrtps-release.git + tag: release/jazzy/rosidl_typesupport_fastrtps_c/3.6.1-1 + target_directory: ros-jazzy-rosidl-typesupport-fastrtps-c/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-index-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-fastcdr + - ros-jazzy-fastrtps-cmake-module + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-performance-test-fixture + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-rosidl-typesupport-interface + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-index-python + - ros-jazzy-fastcdr + - ros-jazzy-fastrtps-cmake-module + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-rosidl-typesupport-interface + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-typesupport-fastrtps-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-typesupport-fastrtps-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-fastrtps-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-typesupport-fastrtps-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-typesupport-fastrtps-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-fastrtps-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-typesupport-fastrtps-cpp/recipe.yaml b/recipes/ros-jazzy-rosidl-typesupport-fastrtps-cpp/recipe.yaml new file mode 100644 index 00000000..f579814c --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-fastrtps-cpp/recipe.yaml @@ -0,0 +1,114 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-typesupport-fastrtps-cpp + version: 3.6.1 +source: + git: https://github.com/ros2-gbp/rosidl_typesupport_fastrtps-release.git + tag: release/jazzy/rosidl_typesupport_fastrtps_cpp/3.6.1-1 + target_directory: ros-jazzy-rosidl-typesupport-fastrtps-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-index-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-fastcdr + - ros-jazzy-fastrtps-cmake-module + - ros-jazzy-osrf-testing-tools-cpp + - ros-jazzy-performance-test-fixture + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-generator-cpp + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-interface + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-index-python + - ros-jazzy-fastcdr + - ros-jazzy-fastrtps-cmake-module + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-generator-cpp + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-interface + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-typesupport-interface/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-typesupport-interface/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-interface/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-typesupport-interface/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-typesupport-interface/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-interface/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-typesupport-interface/recipe.yaml b/recipes/ros-jazzy-rosidl-typesupport-interface/recipe.yaml new file mode 100644 index 00000000..31fd3a1c --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-interface/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-typesupport-interface + version: 4.6.5 +source: + git: https://github.com/ros2-gbp/rosidl-release.git + tag: release/jazzy/rosidl_typesupport_interface/4.6.5-1 + target_directory: ros-jazzy-rosidl-typesupport-interface/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-typesupport-introspection-c/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-typesupport-introspection-c/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-introspection-c/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-typesupport-introspection-c/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-typesupport-introspection-c/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-introspection-c/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-typesupport-introspection-c/recipe.yaml b/recipes/ros-jazzy-rosidl-typesupport-introspection-c/recipe.yaml new file mode 100644 index 00000000..10279f75 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-introspection-c/recipe.yaml @@ -0,0 +1,101 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-typesupport-introspection-c + version: 4.6.5 +source: + git: https://github.com/ros2-gbp/rosidl-release.git + tag: release/jazzy/rosidl_typesupport_introspection_c/4.6.5-1 + target_directory: ros-jazzy-rosidl-typesupport-introspection-c/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cmake + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-typesupport-interface + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-index-python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros-jazzy-rosidl-cmake + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-parser + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-typesupport-interface + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosidl-typesupport-introspection-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-rosidl-typesupport-introspection-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-introspection-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosidl-typesupport-introspection-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-rosidl-typesupport-introspection-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-introspection-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosidl-typesupport-introspection-cpp/recipe.yaml b/recipes/ros-jazzy-rosidl-typesupport-introspection-cpp/recipe.yaml new file mode 100644 index 00000000..e0dc48af --- /dev/null +++ b/recipes/ros-jazzy-rosidl-typesupport-introspection-cpp/recipe.yaml @@ -0,0 +1,106 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rosidl-typesupport-introspection-cpp + version: 4.6.5 +source: + git: https://github.com/ros2-gbp/rosidl-release.git + tag: release/jazzy/rosidl_typesupport_introspection_cpp/4.6.5-1 + target_directory: ros-jazzy-rosidl-typesupport-introspection-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cmake + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-generator-cpp + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-introspection-c + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-index-python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros-jazzy-rosidl-cmake + - ros-jazzy-rosidl-generator-c + - ros-jazzy-rosidl-generator-cpp + - ros-jazzy-rosidl-parser + - ros-jazzy-rosidl-pycommon + - ros-jazzy-rosidl-runtime-c + - ros-jazzy-rosidl-runtime-cpp + - ros-jazzy-rosidl-typesupport-interface + - ros-jazzy-rosidl-typesupport-introspection-c + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rpyutils/bld_ament_python.bat b/recipes/ros-jazzy-rpyutils/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rpyutils/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rpyutils/build_ament_python.sh b/recipes/ros-jazzy-rpyutils/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rpyutils/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rpyutils/recipe.yaml b/recipes/ros-jazzy-rpyutils/recipe.yaml new file mode 100644 index 00000000..c0166700 --- /dev/null +++ b/recipes/ros-jazzy-rpyutils/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rpyutils + version: 0.4.1 +source: + git: https://github.com/ros2-gbp/rpyutils-release.git + tag: release/jazzy/rpyutils/0.4.1-3 + target_directory: ros-jazzy-rpyutils/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-action/bld_ament_python.bat b/recipes/ros-jazzy-rqt-action/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-action/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-action/build_ament_python.sh b/recipes/ros-jazzy-rqt-action/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-action/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-action/recipe.yaml b/recipes/ros-jazzy-rqt-action/recipe.yaml new file mode 100644 index 00000000..1c31f06f --- /dev/null +++ b/recipes/ros-jazzy-rqt-action/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-action + version: 2.2.0 +source: + git: https://github.com/ros2-gbp/rqt_action-release.git + tag: release/jazzy/rqt_action/2.2.0-3 + target_directory: ros-jazzy-rqt-action/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros-jazzy-rqt-msg + - ros-jazzy-rqt-py-common + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-bag-plugins/bld_ament_python.bat b/recipes/ros-jazzy-rqt-bag-plugins/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-bag-plugins/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-bag-plugins/build_ament_python.sh b/recipes/ros-jazzy-rqt-bag-plugins/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-bag-plugins/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-bag-plugins/recipe.yaml b/recipes/ros-jazzy-rqt-bag-plugins/recipe.yaml new file mode 100644 index 00000000..002b3469 --- /dev/null +++ b/recipes/ros-jazzy-rqt-bag-plugins/recipe.yaml @@ -0,0 +1,96 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-bag-plugins + version: 1.5.4 +source: + git: https://github.com/ros2-gbp/rqt_bag-release.git + tag: release/jazzy/rqt_bag_plugins/1.5.4-1 + target_directory: ros-jazzy-rqt-bag-plugins/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - pillow + - pycairo + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2 + - ros-jazzy-rqt-bag + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros-jazzy-rqt-plot + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-bag/bld_ament_python.bat b/recipes/ros-jazzy-rqt-bag/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-bag/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-bag/build_ament_python.sh b/recipes/ros-jazzy-rqt-bag/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-bag/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-bag/recipe.yaml b/recipes/ros-jazzy-rqt-bag/recipe.yaml new file mode 100644 index 00000000..759824c9 --- /dev/null +++ b/recipes/ros-jazzy-rqt-bag/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-bag + version: 1.5.4 +source: + git: https://github.com/ros2-gbp/rqt_bag-release.git + tag: release/jazzy/rqt_bag/1.5.4-1 + target_directory: ros-jazzy-rqt-bag/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-python-qt-binding + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-py + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-common-plugins/bld_ament_cmake.bat b/recipes/ros-jazzy-rqt-common-plugins/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rqt-common-plugins/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-common-plugins/build_ament_cmake.sh b/recipes/ros-jazzy-rqt-common-plugins/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rqt-common-plugins/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rqt-common-plugins/recipe.yaml b/recipes/ros-jazzy-rqt-common-plugins/recipe.yaml new file mode 100644 index 00000000..bac7fe52 --- /dev/null +++ b/recipes/ros-jazzy-rqt-common-plugins/recipe.yaml @@ -0,0 +1,100 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-common-plugins + version: 1.2.0 +source: + git: https://github.com/ros2-gbp/rqt_common_plugins-release.git + tag: release/jazzy/rqt_common_plugins/1.2.0-4 + target_directory: ros-jazzy-rqt-common-plugins/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-action + - ros-jazzy-rqt-bag + - ros-jazzy-rqt-bag-plugins + - ros-jazzy-rqt-console + - ros-jazzy-rqt-graph + - ros-jazzy-rqt-image-view + - ros-jazzy-rqt-msg + - ros-jazzy-rqt-plot + - ros-jazzy-rqt-publisher + - ros-jazzy-rqt-py-common + - ros-jazzy-rqt-py-console + - ros-jazzy-rqt-reconfigure + - ros-jazzy-rqt-service-caller + - ros-jazzy-rqt-shell + - ros-jazzy-rqt-srv + - ros-jazzy-rqt-topic + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-console/bld_ament_python.bat b/recipes/ros-jazzy-rqt-console/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-console/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-console/build_ament_python.sh b/recipes/ros-jazzy-rqt-console/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-console/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-console/recipe.yaml b/recipes/ros-jazzy-rqt-console/recipe.yaml new file mode 100644 index 00000000..27d1f874 --- /dev/null +++ b/recipes/ros-jazzy-rqt-console/recipe.yaml @@ -0,0 +1,92 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-console + version: 2.2.1 +source: + git: https://github.com/ros2-gbp/rqt_console-release.git + tag: release/jazzy/rqt_console/2.2.1-3 + target_directory: ros-jazzy-rqt-console/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ament-index-python + - ros-jazzy-python-qt-binding + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros-jazzy-rqt-py-common + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-graph/bld_ament_python.bat b/recipes/ros-jazzy-rqt-graph/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-graph/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-graph/build_ament_python.sh b/recipes/ros-jazzy-rqt-graph/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-graph/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-graph/recipe.yaml b/recipes/ros-jazzy-rqt-graph/recipe.yaml new file mode 100644 index 00000000..f9bcd48a --- /dev/null +++ b/recipes/ros-jazzy-rqt-graph/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-graph + version: 1.5.4 +source: + git: https://github.com/ros2-gbp/rqt_graph-release.git + tag: release/jazzy/rqt_graph/1.5.4-1 + target_directory: ros-jazzy-rqt-graph/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ament-index-python + - ros-jazzy-python-qt-binding + - ros-jazzy-qt-dotgraph + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-gui-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-rqt-gui-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rqt-gui-cpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-gui-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-rqt-gui-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rqt-gui-cpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rqt-gui-cpp/recipe.yaml b/recipes/ros-jazzy-rqt-gui-cpp/recipe.yaml new file mode 100644 index 00000000..658f896a --- /dev/null +++ b/recipes/ros-jazzy-rqt-gui-cpp/recipe.yaml @@ -0,0 +1,106 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-gui-cpp + version: 1.6.0 +source: + git: https://github.com/ros2-gbp/rqt-release.git + tag: release/jazzy/rqt_gui_cpp/1.6.0-2 + target_directory: ros-jazzy-rqt-gui-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - qt-main + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-pluginlib + - ros-jazzy-qt-gui-cpp + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-pluginlib + - ros-jazzy-qt-gui-cpp + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-rqt-gui-py/bld_ament_python.bat b/recipes/ros-jazzy-rqt-gui-py/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-gui-py/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-gui-py/build_ament_python.sh b/recipes/ros-jazzy-rqt-gui-py/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-gui-py/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-gui-py/recipe.yaml b/recipes/ros-jazzy-rqt-gui-py/recipe.yaml new file mode 100644 index 00000000..aa9b4986 --- /dev/null +++ b/recipes/ros-jazzy-rqt-gui-py/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-gui-py + version: 1.6.0 +source: + git: https://github.com/ros2-gbp/rqt-release.git + tag: release/jazzy/rqt_gui_py/1.6.0-2 + target_directory: ros-jazzy-rqt-gui-py/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-qt-gui + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-gui + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-qt-gui + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-gui + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-gui/bld_ament_python.bat b/recipes/ros-jazzy-rqt-gui/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-gui/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-gui/build_ament_python.sh b/recipes/ros-jazzy-rqt-gui/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-gui/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-gui/recipe.yaml b/recipes/ros-jazzy-rqt-gui/recipe.yaml new file mode 100644 index 00000000..98b47a7d --- /dev/null +++ b/recipes/ros-jazzy-rqt-gui/recipe.yaml @@ -0,0 +1,92 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-gui + version: 1.6.0 +source: + git: https://github.com/ros2-gbp/rqt-release.git + tag: release/jazzy/rqt_gui/1.6.0-2 + target_directory: ros-jazzy-rqt-gui/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-qt-gui + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - catkin_pkg + - python + - ros-jazzy-ament-index-python + - ros-jazzy-python-qt-binding + - ros-jazzy-qt-gui + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-image-view/bld_ament_cmake.bat b/recipes/ros-jazzy-rqt-image-view/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rqt-image-view/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-image-view/build_ament_cmake.sh b/recipes/ros-jazzy-rqt-image-view/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rqt-image-view/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rqt-image-view/recipe.yaml b/recipes/ros-jazzy-rqt-image-view/recipe.yaml new file mode 100644 index 00000000..823fc851 --- /dev/null +++ b/recipes/ros-jazzy-rqt-image-view/recipe.yaml @@ -0,0 +1,116 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-image-view + version: 1.3.0 +source: + git: https://github.com/ros2-gbp/rqt_image_view-release.git + tag: release/jazzy/rqt_image_view/1.3.0-2 + target_directory: ros-jazzy-rqt-image-view/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - qt-main + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-cv-bridge + - ros-jazzy-geometry-msgs + - ros-jazzy-image-transport + - ros-jazzy-qt-gui-cpp + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-cpp + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-cv-bridge + - ros-jazzy-geometry-msgs + - ros-jazzy-image-transport + - ros-jazzy-qt-gui-cpp + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-cpp + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-rqt-msg/bld_ament_python.bat b/recipes/ros-jazzy-rqt-msg/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-msg/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-msg/build_ament_python.sh b/recipes/ros-jazzy-rqt-msg/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-msg/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-msg/recipe.yaml b/recipes/ros-jazzy-rqt-msg/recipe.yaml new file mode 100644 index 00000000..5bd448e7 --- /dev/null +++ b/recipes/ros-jazzy-rqt-msg/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-msg + version: 1.5.1 +source: + git: https://github.com/ros2-gbp/rqt_msg-release.git + tag: release/jazzy/rqt_msg/1.5.1-3 + target_directory: ros-jazzy-rqt-msg/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ament-index-python + - ros-jazzy-python-qt-binding + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-py + - ros-jazzy-rqt-console + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros-jazzy-rqt-py-common + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-plot/bld_ament_python.bat b/recipes/ros-jazzy-rqt-plot/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-plot/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-plot/build_ament_python.sh b/recipes/ros-jazzy-rqt-plot/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-plot/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-plot/recipe.yaml b/recipes/ros-jazzy-rqt-plot/recipe.yaml new file mode 100644 index 00000000..5c818887 --- /dev/null +++ b/recipes/ros-jazzy-rqt-plot/recipe.yaml @@ -0,0 +1,96 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-plot + version: 1.4.0 +source: + git: https://github.com/ros2-gbp/rqt_plot-release.git + tag: release/jazzy/rqt_plot/1.4.0-2 + target_directory: ros-jazzy-rqt-plot/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - catkin_pkg + - matplotlib-base + - numpy + - python + - ros-jazzy-python-qt-binding + - ros-jazzy-qt-gui-py-common + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros-jazzy-rqt-py-common + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-publisher/bld_ament_python.bat b/recipes/ros-jazzy-rqt-publisher/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-publisher/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-publisher/build_ament_python.sh b/recipes/ros-jazzy-rqt-publisher/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-publisher/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-publisher/recipe.yaml b/recipes/ros-jazzy-rqt-publisher/recipe.yaml new file mode 100644 index 00000000..79516cb2 --- /dev/null +++ b/recipes/ros-jazzy-rqt-publisher/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-publisher + version: 1.7.2 +source: + git: https://github.com/ros2-gbp/rqt_publisher-release.git + tag: release/jazzy/rqt_publisher/1.7.2-2 + target_directory: ros-jazzy-rqt-publisher/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - numpy + - python + - ros-jazzy-ament-index-python + - ros-jazzy-python-qt-binding + - ros-jazzy-qt-gui-py-common + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-py + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros-jazzy-rqt-py-common + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-py-common/bld_ament_cmake.bat b/recipes/ros-jazzy-rqt-py-common/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rqt-py-common/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-py-common/build_ament_cmake.sh b/recipes/ros-jazzy-rqt-py-common/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rqt-py-common/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rqt-py-common/recipe.yaml b/recipes/ros-jazzy-rqt-py-common/recipe.yaml new file mode 100644 index 00000000..b2f7a7ec --- /dev/null +++ b/recipes/ros-jazzy-rqt-py-common/recipe.yaml @@ -0,0 +1,109 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-py-common + version: 1.6.0 +source: + git: https://github.com/ros2-gbp/rqt-release.git + tag: release/jazzy/rqt_py_common/1.6.0-2 + target_directory: ros-jazzy-rqt-py-common/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - qt-main + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-python-cmake-module + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - qt-main + - ros-jazzy-python-qt-binding + - ros-jazzy-qt-gui + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-rqt-py-console/bld_ament_python.bat b/recipes/ros-jazzy-rqt-py-console/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-py-console/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-py-console/build_ament_python.sh b/recipes/ros-jazzy-rqt-py-console/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-py-console/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-py-console/recipe.yaml b/recipes/ros-jazzy-rqt-py-console/recipe.yaml new file mode 100644 index 00000000..5978fe1e --- /dev/null +++ b/recipes/ros-jazzy-rqt-py-console/recipe.yaml @@ -0,0 +1,92 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-py-console + version: 1.2.2 +source: + git: https://github.com/ros2-gbp/rqt_py_console-release.git + tag: release/jazzy/rqt_py_console/1.2.2-3 + target_directory: ros-jazzy-rqt-py-console/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ament-index-python + - ros-jazzy-python-qt-binding + - ros-jazzy-qt-gui + - ros-jazzy-qt-gui-py-common + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-reconfigure/bld_ament_python.bat b/recipes/ros-jazzy-rqt-reconfigure/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-reconfigure/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-reconfigure/build_ament_python.sh b/recipes/ros-jazzy-rqt-reconfigure/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-reconfigure/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-reconfigure/recipe.yaml b/recipes/ros-jazzy-rqt-reconfigure/recipe.yaml new file mode 100644 index 00000000..269ee9ad --- /dev/null +++ b/recipes/ros-jazzy-rqt-reconfigure/recipe.yaml @@ -0,0 +1,97 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-reconfigure + version: 1.6.2 +source: + git: https://github.com/ros2-gbp/rqt_reconfigure-release.git + tag: release/jazzy/rqt_reconfigure/1.6.2-3 + target_directory: ros-jazzy-rqt-reconfigure/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - pyyaml + - ros-jazzy-ament-index-python + - ros-jazzy-python-qt-binding + - ros-jazzy-qt-gui-py-common + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-console + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros-jazzy-rqt-py-common + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-service-caller/bld_ament_python.bat b/recipes/ros-jazzy-rqt-service-caller/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-service-caller/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-service-caller/build_ament_python.sh b/recipes/ros-jazzy-rqt-service-caller/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-service-caller/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-service-caller/recipe.yaml b/recipes/ros-jazzy-rqt-service-caller/recipe.yaml new file mode 100644 index 00000000..556f934b --- /dev/null +++ b/recipes/ros-jazzy-rqt-service-caller/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-service-caller + version: 1.2.1 +source: + git: https://github.com/ros2-gbp/rqt_service_caller-release.git + tag: release/jazzy/rqt_service_caller/1.2.1-3 + target_directory: ros-jazzy-rqt-service-caller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros-jazzy-rqt-py-common + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-shell/bld_ament_python.bat b/recipes/ros-jazzy-rqt-shell/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-shell/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-shell/build_ament_python.sh b/recipes/ros-jazzy-rqt-shell/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-shell/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-shell/recipe.yaml b/recipes/ros-jazzy-rqt-shell/recipe.yaml new file mode 100644 index 00000000..d3156f7a --- /dev/null +++ b/recipes/ros-jazzy-rqt-shell/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-shell + version: 1.2.2 +source: + git: https://github.com/ros2-gbp/rqt_shell-release.git + tag: release/jazzy/rqt_shell/1.2.2-2 + target_directory: ros-jazzy-rqt-shell/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - catkin_pkg + - python + - ros-jazzy-python-qt-binding + - ros-jazzy-qt-gui + - ros-jazzy-qt-gui-py-common + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-srv/bld_ament_python.bat b/recipes/ros-jazzy-rqt-srv/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-srv/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-srv/build_ament_python.sh b/recipes/ros-jazzy-rqt-srv/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-srv/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-srv/recipe.yaml b/recipes/ros-jazzy-rqt-srv/recipe.yaml new file mode 100644 index 00000000..3de09ffb --- /dev/null +++ b/recipes/ros-jazzy-rqt-srv/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-srv + version: 1.2.2 +source: + git: https://github.com/ros2-gbp/rqt_srv-release.git + tag: release/jazzy/rqt_srv/1.2.2-3 + target_directory: ros-jazzy-rqt-srv/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros-jazzy-rqt-msg + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rqt-topic/bld_ament_python.bat b/recipes/ros-jazzy-rqt-topic/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-rqt-topic/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rqt-topic/build_ament_python.sh b/recipes/ros-jazzy-rqt-topic/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-rqt-topic/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-rqt-topic/recipe.yaml b/recipes/ros-jazzy-rqt-topic/recipe.yaml new file mode 100644 index 00000000..40124537 --- /dev/null +++ b/recipes/ros-jazzy-rqt-topic/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rqt-topic + version: 1.7.3 +source: + git: https://github.com/ros2-gbp/rqt_topic-release.git + tag: release/jazzy/rqt_topic/1.7.3-1 + target_directory: ros-jazzy-rqt-topic/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-python-qt-binding + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2topic + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros-jazzy-rqt-py-common + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rti-connext-dds-cmake-module/bld_ament_cmake.bat b/recipes/ros-jazzy-rti-connext-dds-cmake-module/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rti-connext-dds-cmake-module/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rti-connext-dds-cmake-module/build_ament_cmake.sh b/recipes/ros-jazzy-rti-connext-dds-cmake-module/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rti-connext-dds-cmake-module/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rti-connext-dds-cmake-module/recipe.yaml b/recipes/ros-jazzy-rti-connext-dds-cmake-module/recipe.yaml new file mode 100644 index 00000000..fd61a8af --- /dev/null +++ b/recipes/ros-jazzy-rti-connext-dds-cmake-module/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rti-connext-dds-cmake-module + version: 0.22.0 +source: + git: https://github.com/ros2-gbp/rmw_connextdds-release.git + tag: release/jazzy/rti_connext_dds_cmake_module/0.22.0-2 + target_directory: ros-jazzy-rti-connext-dds-cmake-module/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rviz-assimp-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-rviz-assimp-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rviz-assimp-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rviz-assimp-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-rviz-assimp-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rviz-assimp-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rviz-assimp-vendor/recipe.yaml b/recipes/ros-jazzy-rviz-assimp-vendor/recipe.yaml new file mode 100644 index 00000000..09f07721 --- /dev/null +++ b/recipes/ros-jazzy-rviz-assimp-vendor/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rviz-assimp-vendor + version: 14.1.6 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_assimp_vendor/14.1.6-1 + target_directory: ros-jazzy-rviz-assimp-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - assimp + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ament-lint-auto + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - assimp + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rviz-common/bld_ament_cmake.bat b/recipes/ros-jazzy-rviz-common/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rviz-common/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rviz-common/build_ament_cmake.sh b/recipes/ros-jazzy-rviz-common/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rviz-common/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rviz-common/recipe.yaml b/recipes/ros-jazzy-rviz-common/recipe.yaml new file mode 100644 index 00000000..14a5fa35 --- /dev/null +++ b/recipes/ros-jazzy-rviz-common/recipe.yaml @@ -0,0 +1,139 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rviz-common + version: 14.1.6 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_common/14.1.6-1 + target_directory: ros-jazzy-rviz-common/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - qt-main + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-cppcheck + - ros-jazzy-ament-cmake-cpplint + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-uncrustify + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ament-lint-auto + - ros-jazzy-geometry-msgs + - ros-jazzy-message-filters + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-resource-retriever + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-ogre-vendor + - ros-jazzy-rviz-rendering + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros-jazzy-tinyxml2-vendor + - ros-jazzy-urdf + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - qt-main + - ros-jazzy-geometry-msgs + - ros-jazzy-message-filters + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-resource-retriever + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-ogre-vendor + - ros-jazzy-rviz-rendering + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros-jazzy-tinyxml2-vendor + - ros-jazzy-urdf + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-rviz-default-plugins/bld_ament_cmake.bat b/recipes/ros-jazzy-rviz-default-plugins/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rviz-default-plugins/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rviz-default-plugins/build_ament_cmake.sh b/recipes/ros-jazzy-rviz-default-plugins/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rviz-default-plugins/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rviz-default-plugins/recipe.yaml b/recipes/ros-jazzy-rviz-default-plugins/recipe.yaml new file mode 100644 index 00000000..e6a0187d --- /dev/null +++ b/recipes/ros-jazzy-rviz-default-plugins/recipe.yaml @@ -0,0 +1,150 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rviz-default-plugins + version: 14.1.6 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_default_plugins/14.1.6-1 + target_directory: ros-jazzy-rviz-default-plugins/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - qt-main + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - qt-main + - ros-jazzy-ament-cmake-cppcheck + - ros-jazzy-ament-cmake-cpplint + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-cmake-uncrustify + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-geometry-msgs + - ros-jazzy-gz-math-vendor + - ros-jazzy-image-transport + - ros-jazzy-interactive-markers + - ros-jazzy-laser-geometry + - ros-jazzy-map-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-point-cloud-transport + - ros-jazzy-rclcpp + - ros-jazzy-resource-retriever + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-common + - ros-jazzy-rviz-ogre-vendor + - ros-jazzy-rviz-rendering + - ros-jazzy-rviz-rendering-tests + - ros-jazzy-rviz-visual-testing-framework + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-urdf + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - qt-main + - ros-jazzy-geometry-msgs + - ros-jazzy-gz-math-vendor + - ros-jazzy-image-transport + - ros-jazzy-interactive-markers + - ros-jazzy-laser-geometry + - ros-jazzy-map-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-point-cloud-transport + - ros-jazzy-rclcpp + - ros-jazzy-resource-retriever + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-common + - ros-jazzy-rviz-ogre-vendor + - ros-jazzy-rviz-rendering + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-urdf + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-rviz-ogre-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-rviz-ogre-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rviz-ogre-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rviz-ogre-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-rviz-ogre-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rviz-ogre-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rviz-ogre-vendor/patch/ros-jazzy-rviz-ogre-vendor.patch b/recipes/ros-jazzy-rviz-ogre-vendor/patch/ros-jazzy-rviz-ogre-vendor.patch new file mode 100644 index 00000000..fce0b1dc --- /dev/null +++ b/recipes/ros-jazzy-rviz-ogre-vendor/patch/ros-jazzy-rviz-ogre-vendor.patch @@ -0,0 +1,65 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8d23a299a..f58c62831 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -76,7 +76,11 @@ endif() + + if(APPLE) + list(APPEND OGRE_CMAKE_ARGS -DOGRE_ENABLE_PRECOMPILED_HEADERS:BOOL=OFF) +- list(APPEND OGRE_CMAKE_ARGS -DCMAKE_OSX_ARCHITECTURES=arm64;x86_64) ++ if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm64") ++ list(APPEND OGRE_CMAKE_ARGS "-DCMAKE_OSX_ARCHITECTURES='arm64'") ++ else() ++ list(APPEND OGRE_CMAKE_ARGS "-DCMAKE_OSX_ARCHITECTURES='x86_64'") ++ endif() + endif() + + ament_vendor(ogre_vendor +diff --git a/patches/0005-fix-macos-arm64.patch b/patches/0005-fix-macos-arm64.patch +new file mode 100644 +index 000000000..9494cc9ae +--- /dev/null ++++ b/patches/0005-fix-macos-arm64.patch +@@ -0,0 +1,19 @@ ++diff --git a/CMakeLists.txt b/CMakeLists.txt ++index f4d8fd4..ffae9c8 100644 ++--- a/CMakeLists.txt +++++ b/CMakeLists.txt ++@@ -270,14 +270,6 @@ elseif(EMSCRIPTEN) ++ set(OGRE_CONFIG_THREADS "0" CACHE STRING "Threading is unstable on Emscripten" FORCE) ++ elseif (APPLE AND NOT APPLE_IOS) ++ ++- set(XCODE_ATTRIBUTE_SDKROOT macosx) ++- if(CMAKE_GENERATOR STREQUAL "Unix Makefiles") ++- execute_process(COMMAND xcodebuild -version -sdk "${XCODE_ATTRIBUTE_SDKROOT}" Path | head -n 1 OUTPUT_VARIABLE CMAKE_OSX_SYSROOT) ++- string(REGEX REPLACE "(\r?\n)+$" "" CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT}") ++- else() ++- set(CMAKE_OSX_SYSROOT macosx) ++- endif() ++- ++ # Make sure that the OpenGL render system is selected for non-iOS Apple builds ++ set(OGRE_BUILD_RENDERSYSTEM_GLES2 FALSE) ++ endif () +diff --git a/patches/0006-fix-char16.patch b/patches/0006-fix-char16.patch +new file mode 100644 +index 000000000..dfc080bb9 +--- /dev/null ++++ b/patches/0006-fix-char16.patch +@@ -0,0 +1,17 @@ ++diff --git a/Components/Overlay/include/OgreUTFString.h b/Components/Overlay/include/OgreUTFString.h ++index 4b29f9d..bb55630 100644 ++--- a/Components/Overlay/include/OgreUTFString.h +++++ b/Components/Overlay/include/OgreUTFString.h ++@@ -183,10 +183,10 @@ namespace Ogre { ++ static const size_type npos = static_cast(~0); ++ ++ //! a single 32-bit Unicode character ++- typedef uint32 unicode_char; +++ typedef char32_t unicode_char; ++ ++ //! a single UTF-16 code point ++- typedef uint16 code_point; +++ typedef char16_t code_point; ++ ++ //! value type typedef for use in iterators ++ typedef code_point value_type; diff --git a/recipes/ros-jazzy-rviz-ogre-vendor/recipe.yaml b/recipes/ros-jazzy-rviz-ogre-vendor/recipe.yaml new file mode 100644 index 00000000..8c42398d --- /dev/null +++ b/recipes/ros-jazzy-rviz-ogre-vendor/recipe.yaml @@ -0,0 +1,116 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rviz-ogre-vendor + version: 14.1.6 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_ogre_vendor/14.1.6-1 + target_directory: ros-jazzy-rviz-ogre-vendor/src/work + patches: + - patch/ros-jazzy-rviz-ogre-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - vcstool + - patch + host: + - ${{ 'libglu' if linux }} + - assimp + - if: build_platform == target_platform + then: + - pkg-config + - freeimage + - freetype + - numpy + - pip + - pugixml + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ament-lint-auto + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - xorg-libx11 + - xorg-xorgproto + - zlib + - zziplib + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - assimp + - freetype + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - xorg-libx11 + - xorg-xorgproto + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-rviz-rendering-tests/bld_ament_cmake.bat b/recipes/ros-jazzy-rviz-rendering-tests/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rviz-rendering-tests/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rviz-rendering-tests/build_ament_cmake.sh b/recipes/ros-jazzy-rviz-rendering-tests/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rviz-rendering-tests/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rviz-rendering-tests/recipe.yaml b/recipes/ros-jazzy-rviz-rendering-tests/recipe.yaml new file mode 100644 index 00000000..19ab6e4c --- /dev/null +++ b/recipes/ros-jazzy-rviz-rendering-tests/recipe.yaml @@ -0,0 +1,113 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rviz-rendering-tests + version: 14.1.6 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_rendering_tests/14.1.6-1 + target_directory: ros-jazzy-rviz-rendering-tests/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - qt-main + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-cppcheck + - ros-jazzy-ament-cmake-cpplint + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-uncrustify + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-resource-retriever + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-rendering + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-resource-retriever + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-rendering + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-rviz-rendering/bld_ament_cmake.bat b/recipes/ros-jazzy-rviz-rendering/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rviz-rendering/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rviz-rendering/build_ament_cmake.sh b/recipes/ros-jazzy-rviz-rendering/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rviz-rendering/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rviz-rendering/recipe.yaml b/recipes/ros-jazzy-rviz-rendering/recipe.yaml new file mode 100644 index 00000000..465e243d --- /dev/null +++ b/recipes/ros-jazzy-rviz-rendering/recipe.yaml @@ -0,0 +1,122 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rviz-rendering + version: 14.1.6 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_rendering/14.1.6-1 + target_directory: ros-jazzy-rviz-rendering/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - qt-main + host: + - if: build_platform == target_platform + then: + - pkg-config + - eigen + - glew + - numpy + - pip + - python + - qt-main + - ros-jazzy-ament-cmake-cppcheck + - ros-jazzy-ament-cmake-cpplint + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-cmake-uncrustify + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-resource-retriever + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-assimp-vendor + - ros-jazzy-rviz-ogre-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - eigen + - python + - qt-main + - ros-jazzy-ament-index-cpp + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-resource-retriever + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-assimp-vendor + - ros-jazzy-rviz-ogre-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-rviz-visual-testing-framework/bld_ament_cmake.bat b/recipes/ros-jazzy-rviz-visual-testing-framework/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rviz-visual-testing-framework/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rviz-visual-testing-framework/build_ament_cmake.sh b/recipes/ros-jazzy-rviz-visual-testing-framework/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rviz-visual-testing-framework/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rviz-visual-testing-framework/recipe.yaml b/recipes/ros-jazzy-rviz-visual-testing-framework/recipe.yaml new file mode 100644 index 00000000..b15ab0e0 --- /dev/null +++ b/recipes/ros-jazzy-rviz-visual-testing-framework/recipe.yaml @@ -0,0 +1,127 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rviz-visual-testing-framework + version: 14.1.6 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_visual_testing_framework/14.1.6-1 + target_directory: ros-jazzy-rviz-visual-testing-framework/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - qt-main + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-cppcheck + - ros-jazzy-ament-cmake-cpplint + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-uncrustify + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ament-lint-auto + - ros-jazzy-geometry-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-common + - ros-jazzy-rviz-ogre-vendor + - ros-jazzy-rviz-rendering + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-geometry-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-common + - ros-jazzy-rviz-ogre-vendor + - ros-jazzy-rviz-rendering + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-rviz2/bld_ament_cmake.bat b/recipes/ros-jazzy-rviz2/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rviz2/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rviz2/build_ament_cmake.sh b/recipes/ros-jazzy-rviz2/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rviz2/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rviz2/recipe.yaml b/recipes/ros-jazzy-rviz2/recipe.yaml new file mode 100644 index 00000000..3a2b72cd --- /dev/null +++ b/recipes/ros-jazzy-rviz2/recipe.yaml @@ -0,0 +1,116 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rviz2 + version: 14.1.6 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz2/14.1.6-1 + target_directory: ros-jazzy-rviz2/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - qt-main + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - pyyaml + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-cppcheck + - ros-jazzy-ament-cmake-cpplint + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-uncrustify + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ament-lint-auto + - ros-jazzy-geometry-msgs + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-common + - ros-jazzy-rviz-ogre-vendor + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-common + - ros-jazzy-rviz-default-plugins + - ros-jazzy-rviz-ogre-vendor + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-sdformat-test-files/bld_catkin.bat b/recipes/ros-jazzy-sdformat-test-files/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-sdformat-test-files/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-sdformat-test-files/build_catkin.sh b/recipes/ros-jazzy-sdformat-test-files/build_catkin.sh new file mode 100755 index 00000000..6fd0f9d3 --- /dev/null +++ b/recipes/ros-jazzy-sdformat-test-files/build_catkin.sh @@ -0,0 +1,132 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" + export CMAKE_AUTOMOC_EXECUTABLE="$BUILD_PREFIX/bin/moc" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_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 + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "Ninja" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-sdformat-test-files/recipe.yaml b/recipes/ros-jazzy-sdformat-test-files/recipe.yaml new file mode 100644 index 00000000..ab3ecda9 --- /dev/null +++ b/recipes/ros-jazzy-sdformat-test-files/recipe.yaml @@ -0,0 +1,84 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-sdformat-test-files + version: 1.0.2 +source: + git: https://github.com/ros2-gbp/sdformat_urdf-release.git + tag: release/jazzy/sdformat_test_files/1.0.2-1 + target_directory: ros-jazzy-sdformat-test-files/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - cmake + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-sdformat-urdf/bld_ament_cmake.bat b/recipes/ros-jazzy-sdformat-urdf/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-sdformat-urdf/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-sdformat-urdf/build_ament_cmake.sh b/recipes/ros-jazzy-sdformat-urdf/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-sdformat-urdf/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-sdformat-urdf/recipe.yaml b/recipes/ros-jazzy-sdformat-urdf/recipe.yaml new file mode 100644 index 00000000..a939984c --- /dev/null +++ b/recipes/ros-jazzy-sdformat-urdf/recipe.yaml @@ -0,0 +1,103 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-sdformat-urdf + version: 1.0.2 +source: + git: https://github.com/ros2-gbp/sdformat_urdf-release.git + tag: release/jazzy/sdformat_urdf/1.0.2-1 + target_directory: ros-jazzy-sdformat-urdf/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-pluginlib + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sdformat-test-files + - ros-jazzy-sdformat-vendor + - ros-jazzy-tinyxml2-vendor + - ros-jazzy-urdf + - ros-jazzy-urdf-parser-plugin + - ros2-distro-mutex 0.6.* jazzy_* + - urdfdom_headers + run: + - python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-pluginlib + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-sdformat-vendor + - ros-jazzy-tinyxml2-vendor + - ros-jazzy-urdf + - ros-jazzy-urdf-parser-plugin + - ros2-distro-mutex 0.6.* jazzy_* + - urdfdom_headers + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-sdformat-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-sdformat-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-sdformat-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-sdformat-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-sdformat-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-sdformat-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-sdformat-vendor/patch/ros-jazzy-sdformat-vendor.patch b/recipes/ros-jazzy-sdformat-vendor/patch/ros-jazzy-sdformat-vendor.patch new file mode 100644 index 00000000..afae280c --- /dev/null +++ b/recipes/ros-jazzy-sdformat-vendor/patch/ros-jazzy-sdformat-vendor.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 723d6a6..08a726c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -38,7 +38,7 @@ if(NOT $ENV{GZ_RELAX_VERSION_MATCH} STREQUAL "") + set(VERSION_MATCH "") + endif() + +-find_package(${LIB_NAME_FULL} ${VERSION_MATCH} ${LIB_VER} COMPONENTS all QUIET) ++find_package(${LIB_NAME_FULL} COMPONENTS all QUIET) + + ament_vendor(${LIB_NAME_UNDERSCORE}_vendor + SATISFIED ${${LIB_NAME_FULL}_FOUND} diff --git a/recipes/ros-jazzy-sdformat-vendor/recipe.yaml b/recipes/ros-jazzy-sdformat-vendor/recipe.yaml new file mode 100644 index 00000000..6b4d79f9 --- /dev/null +++ b/recipes/ros-jazzy-sdformat-vendor/recipe.yaml @@ -0,0 +1,113 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-sdformat-vendor + version: 0.0.8 +source: + git: https://github.com/ros2-gbp/sdformat_vendor-release.git + tag: release/jazzy/sdformat_vendor/0.0.8-1 + target_directory: ros-jazzy-sdformat-vendor/src/work + patches: + - patch/ros-jazzy-sdformat-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - pybind11 + host: + - if: build_platform == target_platform + then: + - pkg-config + - libxml2 + - numpy + - pip + - psutil + - pybind11 + - pytest + - python + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-urdfdom + - ros2-distro-mutex 0.6.* jazzy_* + - sdformat14 + - tinyxml2 + run: + - pybind11 + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-math-vendor + - ros-jazzy-gz-tools-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-workspace + - ros-jazzy-urdfdom + - ros2-distro-mutex 0.6.* jazzy_* + - sdformat14 + - tinyxml2 + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-sdl2-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-sdl2-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-sdl2-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-sdl2-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-sdl2-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-sdl2-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-sdl2-vendor/recipe.yaml b/recipes/ros-jazzy-sdl2-vendor/recipe.yaml new file mode 100644 index 00000000..97b44f93 --- /dev/null +++ b/recipes/ros-jazzy-sdl2-vendor/recipe.yaml @@ -0,0 +1,86 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-sdl2-vendor + version: 3.3.0 +source: + git: https://github.com/ros2-gbp/joystick_drivers-release.git + tag: release/jazzy/sdl2_vendor/3.3.0-3 + target_directory: ros-jazzy-sdl2-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - sdl2 + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - sdl2 + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-sensor-msgs-py/bld_ament_python.bat b/recipes/ros-jazzy-sensor-msgs-py/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-sensor-msgs-py/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-sensor-msgs-py/build_ament_python.sh b/recipes/ros-jazzy-sensor-msgs-py/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-sensor-msgs-py/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-sensor-msgs-py/recipe.yaml b/recipes/ros-jazzy-sensor-msgs-py/recipe.yaml new file mode 100644 index 00000000..dc5d0525 --- /dev/null +++ b/recipes/ros-jazzy-sensor-msgs-py/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-sensor-msgs-py + version: 5.3.5 +source: + git: https://github.com/ros2-gbp/common_interfaces-release.git + tag: release/jazzy/sensor_msgs_py/5.3.5-1 + target_directory: ros-jazzy-sensor-msgs-py/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - numpy + - python + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-sensor-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-sensor-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-sensor-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-sensor-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-sensor-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-sensor-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-sensor-msgs/recipe.yaml b/recipes/ros-jazzy-sensor-msgs/recipe.yaml new file mode 100644 index 00000000..79bdff76 --- /dev/null +++ b/recipes/ros-jazzy-sensor-msgs/recipe.yaml @@ -0,0 +1,96 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-sensor-msgs + version: 5.3.5 +source: + git: https://github.com/ros2-gbp/common_interfaces-release.git + tag: release/jazzy/sensor_msgs/5.3.5-1 + target_directory: ros-jazzy-sensor-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cmake + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-service-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-service-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-service-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-service-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-service-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-service-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-service-msgs/recipe.yaml b/recipes/ros-jazzy-service-msgs/recipe.yaml new file mode 100644 index 00000000..ce0aa2b7 --- /dev/null +++ b/recipes/ros-jazzy-service-msgs/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-service-msgs + version: 2.0.2 +source: + git: https://github.com/ros2-gbp/rcl_interfaces-release.git + tag: release/jazzy/service_msgs/2.0.2-2 + target_directory: ros-jazzy-service-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-shape-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-shape-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-shape-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-shape-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-shape-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-shape-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-shape-msgs/recipe.yaml b/recipes/ros-jazzy-shape-msgs/recipe.yaml new file mode 100644 index 00000000..96ca952c --- /dev/null +++ b/recipes/ros-jazzy-shape-msgs/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-shape-msgs + version: 5.3.5 +source: + git: https://github.com/ros2-gbp/common_interfaces-release.git + tag: release/jazzy/shape_msgs/5.3.5-1 + target_directory: ros-jazzy-shape-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-spdlog-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-spdlog-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-spdlog-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-spdlog-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-spdlog-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-spdlog-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-spdlog-vendor/recipe.yaml b/recipes/ros-jazzy-spdlog-vendor/recipe.yaml new file mode 100644 index 00000000..28a97849 --- /dev/null +++ b/recipes/ros-jazzy-spdlog-vendor/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-spdlog-vendor + version: 1.6.1 +source: + git: https://github.com/ros2-gbp/spdlog_vendor-release.git + tag: release/jazzy/spdlog_vendor/1.6.1-1 + target_directory: ros-jazzy-spdlog-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - spdlog + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - spdlog + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-sqlite3-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-sqlite3-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-sqlite3-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-sqlite3-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-sqlite3-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-sqlite3-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-sqlite3-vendor/recipe.yaml b/recipes/ros-jazzy-sqlite3-vendor/recipe.yaml new file mode 100644 index 00000000..5ab4929f --- /dev/null +++ b/recipes/ros-jazzy-sqlite3-vendor/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-sqlite3-vendor + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/sqlite3_vendor/0.26.6-1 + target_directory: ros-jazzy-sqlite3-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - sqlite + - sqlite 3.* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - sqlite + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-sros2-cmake/bld_ament_cmake.bat b/recipes/ros-jazzy-sros2-cmake/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-sros2-cmake/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-sros2-cmake/build_ament_cmake.sh b/recipes/ros-jazzy-sros2-cmake/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-sros2-cmake/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-sros2-cmake/recipe.yaml b/recipes/ros-jazzy-sros2-cmake/recipe.yaml new file mode 100644 index 00000000..99ee7ba8 --- /dev/null +++ b/recipes/ros-jazzy-sros2-cmake/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-sros2-cmake + version: 0.13.2 +source: + git: https://github.com/ros2-gbp/sros2-release.git + tag: release/jazzy/sros2_cmake/0.13.2-1 + target_directory: ros-jazzy-sros2-cmake/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-sros2 + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-sros2 + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-sros2/bld_ament_python.bat b/recipes/ros-jazzy-sros2/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-sros2/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-sros2/build_ament_python.sh b/recipes/ros-jazzy-sros2/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-sros2/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-sros2/recipe.yaml b/recipes/ros-jazzy-sros2/recipe.yaml new file mode 100644 index 00000000..3d32f32f --- /dev/null +++ b/recipes/ros-jazzy-sros2/recipe.yaml @@ -0,0 +1,98 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-sros2 + version: 0.13.2 +source: + git: https://github.com/ros2-gbp/sros2-release.git + tag: release/jazzy/sros2/0.13.2-1 + target_directory: ros-jazzy-sros2/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-mypy + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-testing + - ros-jazzy-ros-workspace + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - argcomplete + - cryptography + - importlib_resources + - lxml + - python + - ros-jazzy-ament-index-python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-statistics-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-statistics-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-statistics-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-statistics-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-statistics-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-statistics-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-statistics-msgs/recipe.yaml b/recipes/ros-jazzy-statistics-msgs/recipe.yaml new file mode 100644 index 00000000..cf788666 --- /dev/null +++ b/recipes/ros-jazzy-statistics-msgs/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-statistics-msgs + version: 2.0.2 +source: + git: https://github.com/ros2-gbp/rcl_interfaces-release.git + tag: release/jazzy/statistics_msgs/2.0.2-2 + target_directory: ros-jazzy-statistics-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-std-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-std-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-std-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-std-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-std-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-std-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-std-msgs/recipe.yaml b/recipes/ros-jazzy-std-msgs/recipe.yaml new file mode 100644 index 00000000..7694990b --- /dev/null +++ b/recipes/ros-jazzy-std-msgs/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-std-msgs + version: 5.3.5 +source: + git: https://github.com/ros2-gbp/common_interfaces-release.git + tag: release/jazzy/std_msgs/5.3.5-1 + target_directory: ros-jazzy-std-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-std-srvs/bld_ament_cmake.bat b/recipes/ros-jazzy-std-srvs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-std-srvs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-std-srvs/build_ament_cmake.sh b/recipes/ros-jazzy-std-srvs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-std-srvs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-std-srvs/recipe.yaml b/recipes/ros-jazzy-std-srvs/recipe.yaml new file mode 100644 index 00000000..d3bd123a --- /dev/null +++ b/recipes/ros-jazzy-std-srvs/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-std-srvs + version: 5.3.5 +source: + git: https://github.com/ros2-gbp/common_interfaces-release.git + tag: release/jazzy/std_srvs/5.3.5-1 + target_directory: ros-jazzy-std-srvs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-stereo-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-stereo-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-stereo-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-stereo-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-stereo-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-stereo-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-stereo-msgs/recipe.yaml b/recipes/ros-jazzy-stereo-msgs/recipe.yaml new file mode 100644 index 00000000..c6f78758 --- /dev/null +++ b/recipes/ros-jazzy-stereo-msgs/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-stereo-msgs + version: 5.3.5 +source: + git: https://github.com/ros2-gbp/common_interfaces-release.git + tag: release/jazzy/stereo_msgs/5.3.5-1 + target_directory: ros-jazzy-stereo-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tango-icons-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-tango-icons-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tango-icons-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tango-icons-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-tango-icons-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tango-icons-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tango-icons-vendor/recipe.yaml b/recipes/ros-jazzy-tango-icons-vendor/recipe.yaml new file mode 100644 index 00000000..af77ce1b --- /dev/null +++ b/recipes/ros-jazzy-tango-icons-vendor/recipe.yaml @@ -0,0 +1,86 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tango-icons-vendor + version: 0.3.0 +source: + git: https://github.com/ros2-gbp/tango_icons_vendor-release.git + tag: release/jazzy/tango_icons_vendor/0.3.0-3 + target_directory: ros-jazzy-tango-icons-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-teleop-twist-joy/bld_ament_cmake.bat b/recipes/ros-jazzy-teleop-twist-joy/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-teleop-twist-joy/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-teleop-twist-joy/build_ament_cmake.sh b/recipes/ros-jazzy-teleop-twist-joy/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-teleop-twist-joy/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-teleop-twist-joy/recipe.yaml b/recipes/ros-jazzy-teleop-twist-joy/recipe.yaml new file mode 100644 index 00000000..aa615497 --- /dev/null +++ b/recipes/ros-jazzy-teleop-twist-joy/recipe.yaml @@ -0,0 +1,98 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-teleop-twist-joy + version: 2.6.2 +source: + git: https://github.com/ros2-gbp/teleop_twist_joy-release.git + tag: release/jazzy/teleop_twist_joy/2.6.2-1 + target_directory: ros-jazzy-teleop-twist-joy/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-geometry-msgs + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-launch-testing-ros + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-joy + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-teleop-twist-keyboard/bld_ament_python.bat b/recipes/ros-jazzy-teleop-twist-keyboard/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-teleop-twist-keyboard/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-teleop-twist-keyboard/build_ament_python.sh b/recipes/ros-jazzy-teleop-twist-keyboard/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-teleop-twist-keyboard/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-teleop-twist-keyboard/recipe.yaml b/recipes/ros-jazzy-teleop-twist-keyboard/recipe.yaml new file mode 100644 index 00000000..e8fdb0d1 --- /dev/null +++ b/recipes/ros-jazzy-teleop-twist-keyboard/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-teleop-twist-keyboard + version: 2.4.0 +source: + git: https://github.com/ros2-gbp/teleop_twist_keyboard-release.git + tag: release/jazzy/teleop_twist_keyboard/2.4.0-2 + target_directory: ros-jazzy-teleop-twist-keyboard/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-test-interface-files/bld_ament_cmake.bat b/recipes/ros-jazzy-test-interface-files/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-test-interface-files/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-test-interface-files/build_ament_cmake.sh b/recipes/ros-jazzy-test-interface-files/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-test-interface-files/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-test-interface-files/recipe.yaml b/recipes/ros-jazzy-test-interface-files/recipe.yaml new file mode 100644 index 00000000..ae1bd329 --- /dev/null +++ b/recipes/ros-jazzy-test-interface-files/recipe.yaml @@ -0,0 +1,84 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-test-interface-files + version: 0.11.0 +source: + git: https://github.com/ros2-gbp/test_interface_files-release.git + tag: release/jazzy/test_interface_files/0.11.0-3 + target_directory: ros-jazzy-test-interface-files/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-test-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-test-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-test-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-test-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-test-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-test-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-test-msgs/recipe.yaml b/recipes/ros-jazzy-test-msgs/recipe.yaml new file mode 100644 index 00000000..f39a0932 --- /dev/null +++ b/recipes/ros-jazzy-test-msgs/recipe.yaml @@ -0,0 +1,92 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-test-msgs + version: 2.0.2 +source: + git: https://github.com/ros2-gbp/rcl_interfaces-release.git + tag: release/jazzy/test_msgs/2.0.2-2 + target_directory: ros-jazzy-test-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-test-interface-files + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tf2-bullet/bld_ament_cmake.bat b/recipes/ros-jazzy-tf2-bullet/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tf2-bullet/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tf2-bullet/build_ament_cmake.sh b/recipes/ros-jazzy-tf2-bullet/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tf2-bullet/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tf2-bullet/recipe.yaml b/recipes/ros-jazzy-tf2-bullet/recipe.yaml new file mode 100644 index 00000000..b5bd3aaa --- /dev/null +++ b/recipes/ros-jazzy-tf2-bullet/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tf2-bullet + version: 0.36.7 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_bullet/0.36.7-1 + target_directory: ros-jazzy-tf2-bullet/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - bullet + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.6.* jazzy_* + run: + - bullet + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tf2-eigen-kdl/bld_ament_cmake.bat b/recipes/ros-jazzy-tf2-eigen-kdl/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tf2-eigen-kdl/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tf2-eigen-kdl/build_ament_cmake.sh b/recipes/ros-jazzy-tf2-eigen-kdl/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tf2-eigen-kdl/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tf2-eigen-kdl/recipe.yaml b/recipes/ros-jazzy-tf2-eigen-kdl/recipe.yaml new file mode 100644 index 00000000..c4cf8072 --- /dev/null +++ b/recipes/ros-jazzy-tf2-eigen-kdl/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tf2-eigen-kdl + version: 0.36.7 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_eigen_kdl/0.36.7-1 + target_directory: ros-jazzy-tf2-eigen-kdl/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - eigen + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros2-distro-mutex 0.6.* jazzy_* + run: + - eigen + - python + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tf2-eigen/bld_ament_cmake.bat b/recipes/ros-jazzy-tf2-eigen/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tf2-eigen/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tf2-eigen/build_ament_cmake.sh b/recipes/ros-jazzy-tf2-eigen/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tf2-eigen/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tf2-eigen/recipe.yaml b/recipes/ros-jazzy-tf2-eigen/recipe.yaml new file mode 100644 index 00000000..f3224aad --- /dev/null +++ b/recipes/ros-jazzy-tf2-eigen/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tf2-eigen + version: 0.36.7 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_eigen/0.36.7-1 + target_directory: ros-jazzy-tf2-eigen/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - eigen + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.6.* jazzy_* + run: + - eigen + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tf2-geometry-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-tf2-geometry-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tf2-geometry-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tf2-geometry-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-tf2-geometry-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tf2-geometry-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tf2-geometry-msgs/recipe.yaml b/recipes/ros-jazzy-tf2-geometry-msgs/recipe.yaml new file mode 100644 index 00000000..8da23e20 --- /dev/null +++ b/recipes/ros-jazzy-tf2-geometry-msgs/recipe.yaml @@ -0,0 +1,100 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tf2-geometry-msgs + version: 0.36.7 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_geometry_msgs/0.36.7-1 + target_directory: ros-jazzy-tf2-geometry-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-geometry-msgs + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-python-cmake-module + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.6.* jazzy_* + run: + - numpy + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros-jazzy-tf2-ros-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tf2-kdl/bld_ament_cmake.bat b/recipes/ros-jazzy-tf2-kdl/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tf2-kdl/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tf2-kdl/build_ament_cmake.sh b/recipes/ros-jazzy-tf2-kdl/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tf2-kdl/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tf2-kdl/recipe.yaml b/recipes/ros-jazzy-tf2-kdl/recipe.yaml new file mode 100644 index 00000000..ede57954 --- /dev/null +++ b/recipes/ros-jazzy-tf2-kdl/recipe.yaml @@ -0,0 +1,98 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tf2-kdl + version: 0.36.7 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_kdl/0.36.7-1 + target_directory: ros-jazzy-tf2-kdl/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros-jazzy-tf2-ros-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tf2-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-tf2-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tf2-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tf2-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-tf2-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tf2-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tf2-msgs/recipe.yaml b/recipes/ros-jazzy-tf2-msgs/recipe.yaml new file mode 100644 index 00000000..516eff48 --- /dev/null +++ b/recipes/ros-jazzy-tf2-msgs/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tf2-msgs + version: 0.36.7 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_msgs/0.36.7-1 + target_directory: ros-jazzy-tf2-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tf2-py/bld_ament_cmake.bat b/recipes/ros-jazzy-tf2-py/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tf2-py/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tf2-py/build_ament_cmake.sh b/recipes/ros-jazzy-tf2-py/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tf2-py/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tf2-py/recipe.yaml b/recipes/ros-jazzy-tf2-py/recipe.yaml new file mode 100644 index 00000000..f579496f --- /dev/null +++ b/recipes/ros-jazzy-tf2-py/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tf2-py + version: 0.36.7 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_py/0.36.7-1 + target_directory: ros-jazzy-tf2-py/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-geometry-msgs + - ros-jazzy-python-cmake-module + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rpyutils + - ros-jazzy-tf2 + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tf2-ros-py/bld_ament_python.bat b/recipes/ros-jazzy-tf2-ros-py/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-tf2-ros-py/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tf2-ros-py/build_ament_python.sh b/recipes/ros-jazzy-tf2-ros-py/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-tf2-ros-py/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-tf2-ros-py/recipe.yaml b/recipes/ros-jazzy-tf2-ros-py/recipe.yaml new file mode 100644 index 00000000..3730c562 --- /dev/null +++ b/recipes/ros-jazzy-tf2-ros-py/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tf2-ros-py + version: 0.36.7 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_ros_py/0.36.7-1 + target_directory: ros-jazzy-tf2-ros-py/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-tf2-msgs + - ros-jazzy-tf2-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tf2-ros/bld_ament_cmake.bat b/recipes/ros-jazzy-tf2-ros/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tf2-ros/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tf2-ros/build_ament_cmake.sh b/recipes/ros-jazzy-tf2-ros/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tf2-ros/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tf2-ros/recipe.yaml b/recipes/ros-jazzy-tf2-ros/recipe.yaml new file mode 100644 index 00000000..5738340a --- /dev/null +++ b/recipes/ros-jazzy-tf2-ros/recipe.yaml @@ -0,0 +1,106 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tf2-ros + version: 0.36.7 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_ros/0.36.7-1 + target_directory: ros-jazzy-tf2-ros/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-message-filters + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosgraph-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-message-filters + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tf2-sensor-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-tf2-sensor-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tf2-sensor-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tf2-sensor-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-tf2-sensor-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tf2-sensor-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tf2-sensor-msgs/recipe.yaml b/recipes/ros-jazzy-tf2-sensor-msgs/recipe.yaml new file mode 100644 index 00000000..5cd1cc91 --- /dev/null +++ b/recipes/ros-jazzy-tf2-sensor-msgs/recipe.yaml @@ -0,0 +1,106 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tf2-sensor-msgs + version: 0.36.7 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_sensor_msgs/0.36.7-1 + target_directory: ros-jazzy-tf2-sensor-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - eigen + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-geometry-msgs + - ros-jazzy-python-cmake-module + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.6.* jazzy_* + run: + - eigen + - numpy + - python + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-sensor-msgs-py + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros-jazzy-tf2-ros-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tf2-tools/bld_ament_python.bat b/recipes/ros-jazzy-tf2-tools/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-tf2-tools/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tf2-tools/build_ament_python.sh b/recipes/ros-jazzy-tf2-tools/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-tf2-tools/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-tf2-tools/recipe.yaml b/recipes/ros-jazzy-tf2-tools/recipe.yaml new file mode 100644 index 00000000..73b7db6c --- /dev/null +++ b/recipes/ros-jazzy-tf2-tools/recipe.yaml @@ -0,0 +1,94 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tf2-tools + version: 0.36.7 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_tools/0.36.7-1 + target_directory: ros-jazzy-tf2-tools/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - graphviz + - python + - pyyaml + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-msgs + - ros-jazzy-tf2-py + - ros-jazzy-tf2-ros-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tf2/bld_ament_cmake.bat b/recipes/ros-jazzy-tf2/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tf2/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tf2/build_ament_cmake.sh b/recipes/ros-jazzy-tf2/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tf2/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tf2/recipe.yaml b/recipes/ros-jazzy-tf2/recipe.yaml new file mode 100644 index 00000000..db473ed9 --- /dev/null +++ b/recipes/ros-jazzy-tf2/recipe.yaml @@ -0,0 +1,101 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tf2 + version: 0.36.7 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2/0.36.7-1 + target_directory: ros-jazzy-tf2/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-cppcheck + - ros-jazzy-ament-cmake-cpplint + - ros-jazzy-ament-cmake-google-benchmark + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-lint-cmake + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-cmake-uncrustify + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-cpp + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-cpp + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-theora-image-transport/bld_ament_cmake.bat b/recipes/ros-jazzy-theora-image-transport/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-theora-image-transport/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-theora-image-transport/build_ament_cmake.sh b/recipes/ros-jazzy-theora-image-transport/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-theora-image-transport/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-theora-image-transport/recipe.yaml b/recipes/ros-jazzy-theora-image-transport/recipe.yaml new file mode 100644 index 00000000..51396dec --- /dev/null +++ b/recipes/ros-jazzy-theora-image-transport/recipe.yaml @@ -0,0 +1,123 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-theora-image-transport + version: 4.0.3 +source: + git: https://github.com/ros2-gbp/image_transport_plugins-release.git + tag: release/jazzy/theora_image_transport/4.0.3-1 + target_directory: ros-jazzy-theora-image-transport/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - libogg + - libopencv + - libtheora + - numpy + - pip + - pkg-config + - py-opencv + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - libogg + - libopencv + - libtheora + - py-opencv + - python + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-tinyxml2-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-tinyxml2-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tinyxml2-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tinyxml2-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-tinyxml2-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tinyxml2-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tinyxml2-vendor/recipe.yaml b/recipes/ros-jazzy-tinyxml2-vendor/recipe.yaml new file mode 100644 index 00000000..f39eb5e7 --- /dev/null +++ b/recipes/ros-jazzy-tinyxml2-vendor/recipe.yaml @@ -0,0 +1,86 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tinyxml2-vendor + version: 0.9.1 +source: + git: https://github.com/ros2-gbp/tinyxml2_vendor-release.git + tag: release/jazzy/tinyxml2_vendor/0.9.1-3 + target_directory: ros-jazzy-tinyxml2-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - tinyxml2 + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-topic-monitor/bld_ament_python.bat b/recipes/ros-jazzy-topic-monitor/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-topic-monitor/bld_ament_python.bat @@ -0,0 +1,25 @@ +:: 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 +set "PKG_NAME_SHORT=%PKG_NAME:*ros-jazzy-=%" +set "PKG_NAME_SHORT=%PKG_NAME_SHORT:-=_%" + +:: If there is a setup.cfg that contains install-scripts then use pip to install +findstr install[-_]scripts setup.cfg +if "%errorlevel%" == "0" ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\lib\%PKG_NAME_SHORT% +) else ( + %PYTHON% setup.py install --single-version-externally-managed --record=files.txt ^ + --prefix=%LIBRARY_PREFIX% ^ + --install-lib=%SP_DIR% ^ + --install-scripts=%LIBRARY_PREFIX%\bin +) + +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-topic-monitor/build_ament_python.sh b/recipes/ros-jazzy-topic-monitor/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-topic-monitor/build_ament_python.sh @@ -0,0 +1,19 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +pushd $SRC_DIR/$PKG_NAME/src/work + +# If there is a setup.cfg that contains install-scripts then we should not set it here +if [ -f setup.cfg ] && grep -q "install[-_]scripts" setup.cfg; then + # Remove e.g. ros-humble- from PKG_NAME + PKG_NAME_SHORT=${PKG_NAME#*ros-jazzy-} + # 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 --single-version-externally-managed --record=files.txt +else + $PYTHON -m pip install . --no-deps -vvv +fi diff --git a/recipes/ros-jazzy-topic-monitor/recipe.yaml b/recipes/ros-jazzy-topic-monitor/recipe.yaml new file mode 100644 index 00000000..cd408faf --- /dev/null +++ b/recipes/ros-jazzy-topic-monitor/recipe.yaml @@ -0,0 +1,92 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-topic-monitor + version: 0.33.5 +source: + git: https://github.com/ros2-gbp/demos-release.git + tag: release/jazzy/topic_monitor/0.33.5-1 + target_directory: ros-jazzy-topic-monitor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pytest + - python + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tracetools/bld_ament_cmake.bat b/recipes/ros-jazzy-tracetools/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tracetools/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tracetools/build_ament_cmake.sh b/recipes/ros-jazzy-tracetools/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tracetools/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tracetools/recipe.yaml b/recipes/ros-jazzy-tracetools/recipe.yaml new file mode 100644 index 00000000..40e1060d --- /dev/null +++ b/recipes/ros-jazzy-tracetools/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tracetools + version: 8.2.3 +source: + git: https://github.com/ros2-gbp/ros2_tracing-release.git + tag: release/jazzy/tracetools/8.2.3-1 + target_directory: ros-jazzy-tracetools/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - ${{ "lttng-ust" if linux }} + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pkg-config + - python + - ros-jazzy-ament-cmake-gen-version-h + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - ${{ "lttng-ust" if linux }} + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-trajectory-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-trajectory-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-trajectory-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-trajectory-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-trajectory-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-trajectory-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-trajectory-msgs/recipe.yaml b/recipes/ros-jazzy-trajectory-msgs/recipe.yaml new file mode 100644 index 00000000..c478e459 --- /dev/null +++ b/recipes/ros-jazzy-trajectory-msgs/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-trajectory-msgs + version: 5.3.5 +source: + git: https://github.com/ros2-gbp/common_interfaces-release.git + tag: release/jazzy/trajectory_msgs/5.3.5-1 + target_directory: ros-jazzy-trajectory-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-turtlesim/bld_ament_cmake.bat b/recipes/ros-jazzy-turtlesim/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-turtlesim/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-turtlesim/build_ament_cmake.sh b/recipes/ros-jazzy-turtlesim/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-turtlesim/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-turtlesim/recipe.yaml b/recipes/ros-jazzy-turtlesim/recipe.yaml new file mode 100644 index 00000000..33f77203 --- /dev/null +++ b/recipes/ros-jazzy-turtlesim/recipe.yaml @@ -0,0 +1,119 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-turtlesim + version: 1.8.3 +source: + git: https://github.com/ros2-gbp/ros_tutorials-release.git + tag: release/jazzy/turtlesim/1.8.3-1 + target_directory: ros-jazzy-turtlesim/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - if: build_platform != target_platform + then: + - qt-main + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-geometry-msgs + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros2-distro-mutex 0.6.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - qt-main + - ros-jazzy-ament-index-cpp + - ros-jazzy-geometry-msgs + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-type-description-interfaces/bld_ament_cmake.bat b/recipes/ros-jazzy-type-description-interfaces/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-type-description-interfaces/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-type-description-interfaces/build_ament_cmake.sh b/recipes/ros-jazzy-type-description-interfaces/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-type-description-interfaces/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-type-description-interfaces/recipe.yaml b/recipes/ros-jazzy-type-description-interfaces/recipe.yaml new file mode 100644 index 00000000..97e27b35 --- /dev/null +++ b/recipes/ros-jazzy-type-description-interfaces/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-type-description-interfaces + version: 2.0.2 +source: + git: https://github.com/ros2-gbp/rcl_interfaces-release.git + tag: release/jazzy/type_description_interfaces/2.0.2-2 + target_directory: ros-jazzy-type-description-interfaces/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-generators + - ros-jazzy-service-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-runtime + - ros-jazzy-service-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-uncrustify-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-uncrustify-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-uncrustify-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-uncrustify-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-uncrustify-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-uncrustify-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-uncrustify-vendor/recipe.yaml b/recipes/ros-jazzy-uncrustify-vendor/recipe.yaml new file mode 100644 index 00000000..c24a701f --- /dev/null +++ b/recipes/ros-jazzy-uncrustify-vendor/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-uncrustify-vendor + version: 3.0.0 +source: + git: https://github.com/ros2-gbp/uncrustify_vendor-release.git + tag: release/jazzy/uncrustify_vendor/3.0.0-2 + target_directory: ros-jazzy-uncrustify-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - vcstool + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - uncrustify + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - uncrustify + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-unique-identifier-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-unique-identifier-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-unique-identifier-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-unique-identifier-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-unique-identifier-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-unique-identifier-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-unique-identifier-msgs/recipe.yaml b/recipes/ros-jazzy-unique-identifier-msgs/recipe.yaml new file mode 100644 index 00000000..ff22b7b3 --- /dev/null +++ b/recipes/ros-jazzy-unique-identifier-msgs/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-unique-identifier-msgs + version: 2.5.0 +source: + git: https://github.com/ros2-gbp/unique_identifier_msgs-release.git + tag: release/jazzy/unique_identifier_msgs/2.5.0-3 + target_directory: ros-jazzy-unique-identifier-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-urdf-parser-plugin/bld_ament_cmake.bat b/recipes/ros-jazzy-urdf-parser-plugin/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-urdf-parser-plugin/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-urdf-parser-plugin/build_ament_cmake.sh b/recipes/ros-jazzy-urdf-parser-plugin/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-urdf-parser-plugin/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-urdf-parser-plugin/recipe.yaml b/recipes/ros-jazzy-urdf-parser-plugin/recipe.yaml new file mode 100644 index 00000000..26a028b1 --- /dev/null +++ b/recipes/ros-jazzy-urdf-parser-plugin/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-urdf-parser-plugin + version: 2.10.0 +source: + git: https://github.com/ros2-gbp/urdf-release.git + tag: release/jazzy/urdf_parser_plugin/2.10.0-3 + target_directory: ros-jazzy-urdf-parser-plugin/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-urdfdom-headers + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-urdfdom-headers + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-urdf/bld_ament_cmake.bat b/recipes/ros-jazzy-urdf/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-urdf/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-urdf/build_ament_cmake.sh b/recipes/ros-jazzy-urdf/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-urdf/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-urdf/recipe.yaml b/recipes/ros-jazzy-urdf/recipe.yaml new file mode 100644 index 00000000..9fbf3a21 --- /dev/null +++ b/recipes/ros-jazzy-urdf/recipe.yaml @@ -0,0 +1,97 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-urdf + version: 2.10.0 +source: + git: https://github.com/ros2-gbp/urdf-release.git + tag: release/jazzy/urdf/2.10.0-3 + target_directory: ros-jazzy-urdf/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-google-benchmark + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-pluginlib + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tinyxml2-vendor + - ros-jazzy-urdf-parser-plugin + - ros-jazzy-urdfdom + - ros-jazzy-urdfdom-headers + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-pluginlib + - ros-jazzy-ros-workspace + - ros-jazzy-tinyxml2-vendor + - ros-jazzy-urdf-parser-plugin + - ros-jazzy-urdfdom + - ros-jazzy-urdfdom-headers + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-urdfdom-headers/recipe.yaml b/recipes/ros-jazzy-urdfdom-headers/recipe.yaml new file mode 100644 index 00000000..9d803884 --- /dev/null +++ b/recipes/ros-jazzy-urdfdom-headers/recipe.yaml @@ -0,0 +1,20 @@ +package: + name: ros-jazzy-urdfdom-headers + version: "1.1.2" + +build: + number: 0 + +requirements: + run: + - urdfdom_headers ==1.1.2 + - python 3.11.* *_cpython + +about: + homepage: https://github.com/conda-forge/urdfdom_headers-feedstock + license: BSD-3-Clause + summary: | + Headers for URDF parsers +extra: + recipe-maintainers: + - ros-forge diff --git a/recipes/ros-jazzy-urdfdom-py/recipe.yaml b/recipes/ros-jazzy-urdfdom-py/recipe.yaml new file mode 100644 index 00000000..fbb6a3ff --- /dev/null +++ b/recipes/ros-jazzy-urdfdom-py/recipe.yaml @@ -0,0 +1,20 @@ +package: + name: ros-jazzy-urdfdom-py + version: "1.2.1" + +build: + number: 0 + +requirements: + run: + - urdfdom-py 1.2.1.* + - python 3.11.* *_cpython + +about: + homepage: https://github.com/ros/urdf_parser_py + license: BSD-3-Clause + summary: | + Standalone URDF parser for Python. +extra: + recipe-maintainers: + - ros-forge \ No newline at end of file diff --git a/recipes/ros-jazzy-urdfdom/recipe.yaml b/recipes/ros-jazzy-urdfdom/recipe.yaml new file mode 100644 index 00000000..af152596 --- /dev/null +++ b/recipes/ros-jazzy-urdfdom/recipe.yaml @@ -0,0 +1,20 @@ +package: + name: ros-jazzy-urdfdom + version: "4.0.1" + +build: + number: 0 + +requirements: + run: + - urdfdom ==4.0.1 + - python 3.11.* *_cpython + +about: + homepage: https://github.com/conda-forge/urdfdom-feedstock + license: BSD-3-Clause + summary: | + URDF parser +extra: + recipe-maintainers: + - ros-forge diff --git a/recipes/ros-jazzy-vision-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-vision-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-vision-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-vision-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-vision-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-vision-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-vision-msgs/recipe.yaml b/recipes/ros-jazzy-vision-msgs/recipe.yaml new file mode 100644 index 00000000..6c575d14 --- /dev/null +++ b/recipes/ros-jazzy-vision-msgs/recipe.yaml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-vision-msgs + version: 4.1.1 +source: + git: https://github.com/ros2-gbp/vision_msgs-release.git + tag: release/jazzy/vision_msgs/4.1.1-3 + target_directory: ros-jazzy-vision-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-visualization-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-visualization-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-visualization-msgs/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-visualization-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-visualization-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-visualization-msgs/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-visualization-msgs/recipe.yaml b/recipes/ros-jazzy-visualization-msgs/recipe.yaml new file mode 100644 index 00000000..d1711799 --- /dev/null +++ b/recipes/ros-jazzy-visualization-msgs/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-visualization-msgs + version: 5.3.5 +source: + git: https://github.com/ros2-gbp/common_interfaces-release.git + tag: release/jazzy/visualization_msgs/5.3.5-1 + target_directory: ros-jazzy-visualization-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-xacro/bld_ament_cmake.bat b/recipes/ros-jazzy-xacro/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-xacro/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-xacro/build_ament_cmake.sh b/recipes/ros-jazzy-xacro/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-xacro/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-xacro/recipe.yaml b/recipes/ros-jazzy-xacro/recipe.yaml new file mode 100644 index 00000000..758d6dca --- /dev/null +++ b/recipes/ros-jazzy-xacro/recipe.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-xacro + version: 2.0.11 +source: + git: https://github.com/ros2-gbp/xacro-release.git + tag: release/jazzy/xacro/2.0.11-2 + target_directory: ros-jazzy-xacro/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - pyyaml + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-index-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - pyyaml + - ros-jazzy-ament-index-python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-yaml-cpp-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-yaml-cpp-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-yaml-cpp-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-yaml-cpp-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-yaml-cpp-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-yaml-cpp-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-yaml-cpp-vendor/recipe.yaml b/recipes/ros-jazzy-yaml-cpp-vendor/recipe.yaml new file mode 100644 index 00000000..1786a384 --- /dev/null +++ b/recipes/ros-jazzy-yaml-cpp-vendor/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-yaml-cpp-vendor + version: 9.0.1 +source: + git: https://github.com/ros2-gbp/yaml_cpp_vendor-release.git + tag: release/jazzy/yaml_cpp_vendor/9.0.1-1 + target_directory: ros-jazzy-yaml-cpp-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - yaml-cpp + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - yaml-cpp + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-zstd-image-transport/bld_ament_cmake.bat b/recipes/ros-jazzy-zstd-image-transport/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-zstd-image-transport/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-zstd-image-transport/build_ament_cmake.sh b/recipes/ros-jazzy-zstd-image-transport/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-zstd-image-transport/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-zstd-image-transport/recipe.yaml b/recipes/ros-jazzy-zstd-image-transport/recipe.yaml new file mode 100644 index 00000000..1aead7db --- /dev/null +++ b/recipes/ros-jazzy-zstd-image-transport/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-zstd-image-transport + version: 4.0.3 +source: + git: https://github.com/ros2-gbp/image_transport_plugins-release.git + tag: release/jazzy/zstd_image_transport/4.0.3-1 + target_directory: ros-jazzy-zstd-image-transport/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-image-transport + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - zlib + run: + - python + - ros-jazzy-image-transport + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - zlib + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-zstd-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-zstd-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-zstd-vendor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: 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" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +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 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-zstd-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-zstd-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-zstd-vendor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || 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; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +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=$PYTHON_INSTALL_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_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-zstd-vendor/recipe.yaml b/recipes/ros-jazzy-zstd-vendor/recipe.yaml new file mode 100644 index 00000000..b1a3236e --- /dev/null +++ b/recipes/ros-jazzy-zstd-vendor/recipe.yaml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-zstd-vendor + version: 0.26.6 +source: + git: https://github.com/ros2-gbp/rosbag2-release.git + tag: release/jazzy/zstd_vendor/0.26.6-1 + target_directory: ros-jazzy-zstd-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - ${{ 'zstd-static' if not win }} + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-vendor-package + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - zstd + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - zstd + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros2-distro-mutex/recipe.yaml b/recipes/ros2-distro-mutex/recipe.yaml new file mode 100644 index 00000000..9f35c219 --- /dev/null +++ b/recipes/ros2-distro-mutex/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros2-distro-mutex + version: 0.6.0 + +build: + number: 0 + # Note: keep in sync with build number + # Cannot be done automatically, see https://github.com/mamba-org/boa/issues/278 + string: jazzy_0 + +requirements: + # NOTE: + # The idea with automatically adding versions to run_exports doesn't + # work since we don't want all these dependencies as run deps of all ROS + # packages. Therefore I am currently manually adding them to run_constrained. + # This has to be synchronized with our current conda_build_config all the time :( + # host: + # # values here should + # - log4cxx + # - poco + # - pcl + # - opencv + # - gazebo + # - ogre + # - qt + # run: + # values here should be applied from run_exports! + # if the upstream package does not have run_exports + # please change it in the conda_build_config.yaml! + run_constraints: + - libboost 1.86.* + - libboost-devel 1.86.* + - pcl 1.14.1.* + - gazebo 11.* + - libprotobuf 5.28.2.* + + run_exports: + weak: + - ${{ pin_subpackage('ros2-distro-mutex', upper_bound='x.x') }} + + +about: + homepage: https://github.com/robostack/ros-jazzy + license: BSD-3-Clause + summary: | + The ROS2 distro mutex. To switch between ROS2 versions, you need to change the mutex. + E.g. mamba install ros2-distro-mutex=*=jazzy to switch to jazzy. + +extra: + recipe-maintainers: + - ros-forge + diff --git a/vinca.yaml b/vinca.yaml new file mode 100644 index 00000000..ce542135 --- /dev/null +++ b/vinca.yaml @@ -0,0 +1,51 @@ +ros_distro: jazzy + +# mapping for package keys +conda_index: + - robostack.yaml + - packages-ignore.yaml + +build_number: 1 + +mutex_package: ros2-distro-mutex 0.6.* jazzy_* + +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: + - cartographer + - urdfdom + - urdfdom_py + - urdfdom_headers + - pcl_conversions + - pendulum_control + - rttest + - tlsf + - tlsf_cpp + - gripper_controllers + +packages_remove_from_deps: + - cartographer + - pcl_conversions + - pendulum_control + - rttest + - tlsf + - tlsf_cpp + - gripper_controllers + +skip_existing: + # - output + - https://conda.anaconda.org/robostack-jazzy/ + +packages_select_by_deps: + - ament_cmake_core + - desktop + - ros_base + - ros_environment + - ros_gz + - ros_workspace + +patch_dir: patch diff --git a/vinca_ab9d5091c9.json b/vinca_ab9d5091c9.json new file mode 100644 index 00000000..789bbfbf --- /dev/null +++ b/vinca_ab9d5091c9.json @@ -0,0 +1 @@ +{"packages":{},"packages.conda":{},"info":{"default_numpy_version":"1.7","default_python_version":"2.7","platform":"win","arch":"x86_64","subdir":"win-64"}} \ No newline at end of file