diff --git a/.github/workflows/osx.yml b/.github/workflows/osx.yml new file mode 100644 index 00000000..45d58251 --- /dev/null +++ b/.github/workflows/osx.yml @@ -0,0 +1,3133 @@ +jobs: + stage_0_job_0: + name: mutex ament-package ament-cmake-core + runs-on: macos-13 + strategy: + fail-fast: false + needs: [] + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros2-distro-mutex ros-jazzy-ament-package ros-jazzy-ament-cmake-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros2-distro-mutex ros-jazzy-ament-package ros-jazzy-ament-cmake-core + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_1_job_1: + name: ros-workspace ros-environment + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_0_job_0 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ros-workspace ros-jazzy-ros-environment + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros-workspace ros-jazzy-ros-environment + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_2_job_2: + name: ament-lint ament-cmake-python gtest-vendor ament-cmake-libraries ament-cmake-include-directories + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_1_job_1 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + 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: macos-13 + strategy: + fail-fast: false + needs: + - stage_1_job_1 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_2_job_4: + name: ament-pycodestyle osrf-pycommon google-benchmark-vendor osrf-testing-tools-cpp + test-interface-files + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_1_job_1 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_2_job_5: + name: iceoryx-hoofs sdformat-test-files ruckig ros-industrial-cmake-boilerplate + ompl + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_1_job_1 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-iceoryx-hoofs ros-jazzy-sdformat-test-files ros-jazzy-ruckig + ros-jazzy-ros-industrial-cmake-boilerplate ros-jazzy-ompl + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-iceoryx-hoofs ros-jazzy-sdformat-test-files ros-jazzy-ruckig + ros-jazzy-ros-industrial-cmake-boilerplate ros-jazzy-ompl + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_2_job_6: + name: gtsam apriltag + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_1_job_1 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-gtsam ros-jazzy-apriltag + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-gtsam ros-jazzy-apriltag + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_3_job_7: + name: ament-flake8 ament-cmake-test ament-cmake-export-dependencies ament-cmake-target-dependencies + ament-cmake-export-targets + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_2_job_2 + - stage_2_job_3 + - stage_2_job_4 + - stage_2_job_5 + - stage_2_job_6 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_3_job_8: + name: ament-cmake-export-interfaces gmock-vendor iceoryx-posh backward-ros stomp + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_2_job_2 + - stage_2_job_3 + - stage_2_job_4 + - stage_2_job_5 + - stage_2_job_6 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ament-cmake-export-interfaces ros-jazzy-gmock-vendor ros-jazzy-iceoryx-posh + ros-jazzy-backward-ros ros-jazzy-stomp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-cmake-export-interfaces ros-jazzy-gmock-vendor + ros-jazzy-iceoryx-posh ros-jazzy-backward-ros ros-jazzy-stomp + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_4_job_9: + name: ament-pep257 ament-cmake-gtest ament-cmake-vendor-package ament-mypy ament-lint-auto + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_3_job_7 + - stage_3_job_8 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_4_job_10: + name: ament-cmake-pytest ament-cmake-google-benchmark iceoryx-binding-c ament-cmake-catch2 + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_3_job_7 + - stage_3_job_8 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ament-cmake-pytest ros-jazzy-ament-cmake-google-benchmark + ros-jazzy-iceoryx-binding-c ros-jazzy-ament-cmake-catch2 + 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 ros-jazzy-ament-cmake-catch2 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_5_job_11: + name: ament-copyright ament-cmake-gen-version-h ament-cmake-gmock cyclonedds + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_4_job_9 + - stage_4_job_10 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ament-copyright ros-jazzy-ament-cmake-gen-version-h ros-jazzy-ament-cmake-gmock + ros-jazzy-cyclonedds + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_6_job_12: + name: ament-lint-cmake ament-cmake ament-xmllint ament-cpplint ament-cppcheck + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_5_job_11 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ament-lint-cmake ros-jazzy-ament-cmake ros-jazzy-ament-xmllint + ros-jazzy-ament-cpplint ros-jazzy-ament-cppcheck + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_6_job_13: + name: ament-index-python domain-coordinator generate-parameter-library-py ament-clang-format + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_5_job_11 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ament-index-python ros-jazzy-domain-coordinator ros-jazzy-generate-parameter-library-py + ros-jazzy-ament-clang-format + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ament-index-python ros-jazzy-domain-coordinator + ros-jazzy-generate-parameter-library-py ros-jazzy-ament-clang-format + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_7_job_14: + name: ament-cmake-lint-cmake uncrustify-vendor launch rosidl-cli fastcdr + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_6_job_12 + - stage_6_job_13 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ament-cmake-lint-cmake ros-jazzy-uncrustify-vendor ros-jazzy-launch + ros-jazzy-rosidl-cli ros-jazzy-fastcdr + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_7_job_15: + name: rpyutils tl-expected tcb-span pybind11-vendor tinyxml2-vendor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_6_job_12 + - stage_6_job_13 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rpyutils ros-jazzy-tl-expected ros-jazzy-tcb-span ros-jazzy-pybind11-vendor + ros-jazzy-tinyxml2-vendor + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rpyutils ros-jazzy-tl-expected ros-jazzy-tcb-span + ros-jazzy-pybind11-vendor ros-jazzy-tinyxml2-vendor + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_7_job_16: + name: ros2-control-test-assets yaml-cpp-vendor zstd-vendor liblz4-vendor libcurl-vendor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_6_job_12 + - stage_6_job_13 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ros2-control-test-assets ros-jazzy-yaml-cpp-vendor ros-jazzy-zstd-vendor + ros-jazzy-liblz4-vendor ros-jazzy-libcurl-vendor + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros2-control-test-assets ros-jazzy-yaml-cpp-vendor + ros-jazzy-zstd-vendor ros-jazzy-liblz4-vendor ros-jazzy-libcurl-vendor + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_7_job_17: + name: sqlite3-vendor xacro moveit-resources-panda-description random-numbers eigen-stl-containers + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_6_job_12 + - stage_6_job_13 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-sqlite3-vendor ros-jazzy-xacro ros-jazzy-moveit-resources-panda-description + ros-jazzy-random-numbers ros-jazzy-eigen-stl-containers + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-sqlite3-vendor ros-jazzy-xacro ros-jazzy-moveit-resources-panda-description + ros-jazzy-random-numbers ros-jazzy-eigen-stl-containers + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_7_job_18: + name: moveit-resources-pr2-description moveit-common angles moveit-resources-fanuc-description + ament-cmake-auto + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_6_job_12 + - stage_6_job_13 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-resources-pr2-description ros-jazzy-moveit-common + ros-jazzy-angles ros-jazzy-moveit-resources-fanuc-description ros-jazzy-ament-cmake-auto + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-resources-pr2-description ros-jazzy-moveit-common + ros-jazzy-angles ros-jazzy-moveit-resources-fanuc-description ros-jazzy-ament-cmake-auto + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_7_job_19: + name: sdl2-vendor ur-client-library zenoh-cpp-vendor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_6_job_12 + - stage_6_job_13 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-sdl2-vendor ros-jazzy-ur-client-library ros-jazzy-zenoh-cpp-vendor + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-sdl2-vendor ros-jazzy-ur-client-library ros-jazzy-zenoh-cpp-vendor + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_8_job_20: + name: ament-cmake-copyright ament-uncrustify launch-yaml launch-xml mcap-vendor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_7_job_14 + - stage_7_job_15 + - stage_7_job_16 + - stage_7_job_17 + - stage_7_job_18 + - stage_7_job_19 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ament-cmake-copyright ros-jazzy-ament-uncrustify ros-jazzy-launch-yaml + ros-jazzy-launch-xml ros-jazzy-mcap-vendor + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_8_job_21: + name: moveit-resources-prbt-support + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_7_job_14 + - stage_7_job_15 + - stage_7_job_16 + - stage_7_job_17 + - stage_7_job_18 + - stage_7_job_19 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-resources-prbt-support + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-resources-prbt-support + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_9_job_22: + name: ament-cmake-xmllint ament-cmake-uncrustify ament-cmake-pep257 ament-cmake-flake8 + ament-cmake-cpplint + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_8_job_20 + - stage_8_job_21 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_9_job_23: + name: ament-cmake-cppcheck launch-testing eigen3-cmake-module ament-cmake-clang-format + ament-cmake-mypy + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_8_job_20 + - stage_8_job_21 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ament-cmake-cppcheck ros-jazzy-launch-testing ros-jazzy-eigen3-cmake-module + ros-jazzy-ament-cmake-clang-format ros-jazzy-ament-cmake-mypy + 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 ros-jazzy-ament-cmake-mypy + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_10_job_24: + name: ament-lint-common foonathan-memory-vendor gz-cmake-vendor rviz-ogre-vendor + rviz-assimp-vendor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_9_job_22 + - stage_9_job_23 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_10_job_25: + name: gz-ogre-next-vendor gz-dartsim-vendor launch-pytest + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_9_job_22 + - stage_9_job_23 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-gz-ogre-next-vendor ros-jazzy-gz-dartsim-vendor ros-jazzy-launch-pytest + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-gz-ogre-next-vendor ros-jazzy-gz-dartsim-vendor + ros-jazzy-launch-pytest + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_11_job_26: + name: python-cmake-module rosidl-adapter performance-test-fixture mimick-vendor + ament-cmake-ros + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_10_job_24 + - stage_10_job_25 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_11_job_27: + name: rosidl-typesupport-interface fastrtps-cmake-module fastrtps rti-connext-dds-cmake-module + rmw-implementation-cmake + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_10_job_24 + - stage_10_job_25 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_11_job_28: + name: ament-index-cpp spdlog-vendor gz-utils-vendor gz-tools-vendor orocos-kdl-vendor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_10_job_24 + - stage_10_job_25 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_11_job_29: + name: python-qt-binding smclib osqp-vendor tango-icons-vendor keyboard-handler + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_10_job_24 + - stage_10_job_25 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-python-qt-binding ros-jazzy-smclib ros-jazzy-osqp-vendor + ros-jazzy-tango-icons-vendor ros-jazzy-keyboard-handler + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-python-qt-binding ros-jazzy-smclib ros-jazzy-osqp-vendor + ros-jazzy-tango-icons-vendor ros-jazzy-keyboard-handler + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_12_job_30: + name: launch-testing-ament-cmake rosidl-parser tracetools libyaml-vendor console-bridge-vendor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_11_job_26 + - stage_11_job_27 + - stage_11_job_28 + - stage_11_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-launch-testing-ament-cmake ros-jazzy-rosidl-parser ros-jazzy-tracetools + ros-jazzy-libyaml-vendor ros-jazzy-console-bridge-vendor + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_12_job_31: + name: urdf-parser-plugin gz-math-vendor python-orocos-kdl-vendor resource-retriever + gz-plugin-vendor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_11_job_26 + - stage_11_job_27 + - stage_11_job_28 + - stage_11_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-urdf-parser-plugin ros-jazzy-gz-math-vendor ros-jazzy-python-orocos-kdl-vendor + ros-jazzy-resource-retriever ros-jazzy-gz-plugin-vendor + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-urdf-parser-plugin ros-jazzy-gz-math-vendor ros-jazzy-python-orocos-kdl-vendor + ros-jazzy-resource-retriever ros-jazzy-gz-plugin-vendor + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_12_job_32: + name: qt-gui qt-gui-py-common tracetools-image-pipeline qt-dotgraph + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_11_job_26 + - stage_11_job_27 + - stage_11_job_28 + - stage_11_job_29 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-qt-gui ros-jazzy-qt-gui-py-common ros-jazzy-tracetools-image-pipeline + ros-jazzy-qt-dotgraph + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-qt-gui ros-jazzy-qt-gui-py-common ros-jazzy-tracetools-image-pipeline + ros-jazzy-qt-dotgraph + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_13_job_33: + name: rcutils rosidl-pycommon rosidl-generator-type-description sdformat-vendor + rviz-rendering + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_12_job_30 + - stage_12_job_31 + - stage_12_job_32 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rcutils ros-jazzy-rosidl-pycommon ros-jazzy-rosidl-generator-type-description + ros-jazzy-sdformat-vendor ros-jazzy-rviz-rendering + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_13_job_34: + name: gz-msgs-vendor gz-common-vendor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_12_job_30 + - stage_12_job_31 + - stage_12_job_32 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-gz-msgs-vendor ros-jazzy-gz-common-vendor + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-gz-msgs-vendor ros-jazzy-gz-common-vendor + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_14_job_35: + name: rosidl-runtime-c rosidl-cmake rcpputils rviz-rendering-tests gz-transport-vendor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_13_job_33 + - stage_13_job_34 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rosidl-runtime-c ros-jazzy-rosidl-cmake ros-jazzy-rcpputils + ros-jazzy-rviz-rendering-tests ros-jazzy-gz-transport-vendor + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_14_job_36: + name: gz-rendering-vendor gz-physics-vendor gz-fuel-tools-vendor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_13_job_33 + - stage_13_job_34 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-gz-rendering-vendor ros-jazzy-gz-physics-vendor ros-jazzy-gz-fuel-tools-vendor + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_15_job_37: + name: rosidl-runtime-cpp rosidl-generator-c rosidl-dynamic-typesupport rcl-logging-interface + class-loader + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_14_job_35 + - stage_14_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_15_job_38: + name: gz-sensors-vendor gz-gui-vendor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_14_job_35 + - stage_14_job_36 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-gz-sensors-vendor ros-jazzy-gz-gui-vendor + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-gz-sensors-vendor ros-jazzy-gz-gui-vendor + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_16_job_39: + name: rosidl-generator-cpp rmw rosidl-typesupport-introspection-c rosidl-dynamic-typesupport-fastrtps + rcl-logging-spdlog + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_15_job_37 + - stage_15_job_38 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_16_job_40: + name: pluginlib gz-sim-vendor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_15_job_37 + - stage_15_job_38 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-pluginlib ros-jazzy-gz-sim-vendor + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-pluginlib ros-jazzy-gz-sim-vendor + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_17_job_41: + name: rosidl-typesupport-fastrtps-cpp rosidl-typesupport-introspection-cpp rcl-yaml-param-parser + urdf qt-gui-cpp + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_16_job_39 + - stage_16_job_40 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_18_job_42: + name: rosidl-typesupport-fastrtps-c sdformat-urdf kdl-parser srdfdom + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_17_job_41 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rosidl-typesupport-fastrtps-c ros-jazzy-sdformat-urdf + ros-jazzy-kdl-parser ros-jazzy-srdfdom + 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-srdfdom + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_19_job_43: + name: rosidl-typesupport-c rmw-zenoh-cpp rosidl-typesupport-cpp rosidl-generator-py + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_18_job_42 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rosidl-typesupport-c ros-jazzy-rmw-zenoh-cpp ros-jazzy-rosidl-typesupport-cpp + ros-jazzy-rosidl-generator-py + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosidl-typesupport-c ros-jazzy-rmw-zenoh-cpp ros-jazzy-rosidl-typesupport-cpp + ros-jazzy-rosidl-generator-py + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_20_job_44: + name: rosidl-core-runtime rosidl-core-generators builtin-interfaces unique-identifier-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_19_job_43 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rosidl-core-runtime ros-jazzy-rosidl-core-generators ros-jazzy-builtin-interfaces + ros-jazzy-unique-identifier-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosidl-core-runtime ros-jazzy-rosidl-core-generators + ros-jazzy-builtin-interfaces ros-jazzy-unique-identifier-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_21_job_45: + name: service-msgs action-msgs type-description-interfaces + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_20_job_44 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-service-msgs ros-jazzy-action-msgs ros-jazzy-type-description-interfaces + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-service-msgs ros-jazzy-action-msgs ros-jazzy-type-description-interfaces + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_22_job_46: + name: rosidl-default-runtime rosidl-default-generators + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_21_job_45 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rosidl-default-runtime ros-jazzy-rosidl-default-generators + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosidl-default-runtime ros-jazzy-rosidl-default-generators + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_23_job_47: + name: rmw-dds-common test-msgs rcl-interfaces std-msgs statistics-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_22_job_46 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rmw-dds-common ros-jazzy-test-msgs ros-jazzy-rcl-interfaces + ros-jazzy-std-msgs ros-jazzy-statistics-msgs + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_23_job_48: + name: rosgraph-msgs lifecycle-msgs std-srvs example-interfaces ros2cli-test-interfaces + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_22_job_46 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rosgraph-msgs ros-jazzy-lifecycle-msgs ros-jazzy-std-srvs + ros-jazzy-example-interfaces ros-jazzy-ros2cli-test-interfaces + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_23_job_49: + name: topic-tools-interfaces rosbag2-test-msgdefs rosbag2-interfaces twist-mux-msgs + ur-dashboard-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_22_job_46 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-topic-tools-interfaces ros-jazzy-rosbag2-test-msgdefs + ros-jazzy-rosbag2-interfaces ros-jazzy-twist-mux-msgs ros-jazzy-ur-dashboard-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-topic-tools-interfaces ros-jazzy-rosbag2-test-msgdefs + ros-jazzy-rosbag2-interfaces ros-jazzy-twist-mux-msgs ros-jazzy-ur-dashboard-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_23_job_50: + name: rosbridge-msgs action-tutorials-interfaces pendulum-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_22_job_46 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rosbridge-msgs ros-jazzy-action-tutorials-interfaces ros-jazzy-pendulum-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosbridge-msgs ros-jazzy-action-tutorials-interfaces + ros-jazzy-pendulum-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_24_job_51: + name: rmw-fastrtps-shared-cpp rmw-connextdds-common rmw-cyclonedds-cpp composition-interfaces + geometry-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_23_job_47 + - stage_23_job_48 + - stage_23_job_49 + - stage_23_job_50 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_24_job_52: + name: rosidl-runtime-py controller-manager-msgs actionlib-msgs bond ackermann-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_23_job_47 + - stage_23_job_48 + - stage_23_job_49 + - stage_23_job_50 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rosidl-runtime-py ros-jazzy-controller-manager-msgs ros-jazzy-actionlib-msgs + ros-jazzy-bond ros-jazzy-ackermann-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosidl-runtime-py ros-jazzy-controller-manager-msgs + ros-jazzy-actionlib-msgs ros-jazzy-bond ros-jazzy-ackermann-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_24_job_53: + name: gps-msgs actuator-msgs velodyne-msgs rosapi-msgs rtcm-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_23_job_47 + - stage_23_job_48 + - stage_23_job_49 + - stage_23_job_50 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-gps-msgs ros-jazzy-actuator-msgs ros-jazzy-velodyne-msgs + ros-jazzy-rosapi-msgs ros-jazzy-rtcm-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-gps-msgs ros-jazzy-actuator-msgs ros-jazzy-velodyne-msgs + ros-jazzy-rosapi-msgs ros-jazzy-rtcm-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_24_job_54: + name: nmea-msgs apriltag-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_23_job_47 + - stage_23_job_48 + - stage_23_job_49 + - stage_23_job_50 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-nmea-msgs ros-jazzy-apriltag-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-nmea-msgs ros-jazzy-apriltag-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_25_job_55: + name: rmw-fastrtps-dynamic-cpp rmw-fastrtps-cpp rmw-connextdds sensor-msgs trajectory-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_24_job_51 + - stage_24_job_52 + - stage_24_job_53 + - stage_24_job_54 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - 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 + 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_25_job_56: + name: tf2-msgs tf2 diagnostic-msgs shape-msgs octomap-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_24_job_51 + - stage_24_job_52 + - stage_24_job_53 + - stage_24_job_54 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-tf2-msgs ros-jazzy-tf2 ros-jazzy-diagnostic-msgs ros-jazzy-shape-msgs + ros-jazzy-octomap-msgs + 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-octomap-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_25_job_57: + name: nav-msgs geographic-msgs nav-2d-msgs vision-msgs ros-gz-interfaces + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_24_job_51 + - stage_24_job_52 + - stage_24_job_53 + - stage_24_job_54 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-nav-msgs ros-jazzy-geographic-msgs ros-jazzy-nav-2d-msgs + ros-jazzy-vision-msgs ros-jazzy-ros-gz-interfaces + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-nav-msgs ros-jazzy-geographic-msgs ros-jazzy-nav-2d-msgs + ros-jazzy-vision-msgs ros-jazzy-ros-gz-interfaces + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_25_job_58: + name: ur-msgs graph-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_24_job_51 + - stage_24_job_52 + - stage_24_job_53 + - stage_24_job_54 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ur-msgs ros-jazzy-graph-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ur-msgs ros-jazzy-graph-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_26_job_59: + name: rmw-implementation control-msgs object-recognition-msgs visualization-msgs + stereo-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_25_job_55 + - stage_25_job_56 + - stage_25_job_57 + - stage_25_job_58 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rmw-implementation ros-jazzy-control-msgs ros-jazzy-object-recognition-msgs + ros-jazzy-visualization-msgs ros-jazzy-stereo-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rmw-implementation ros-jazzy-control-msgs ros-jazzy-object-recognition-msgs + ros-jazzy-visualization-msgs ros-jazzy-stereo-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_26_job_60: + name: sensor-msgs-py map-msgs tf2-eigen-kdl dwb-msgs image-geometry + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_25_job_55 + - stage_25_job_56 + - stage_25_job_57 + - stage_25_job_58 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-sensor-msgs-py ros-jazzy-map-msgs ros-jazzy-tf2-eigen-kdl + ros-jazzy-dwb-msgs ros-jazzy-image-geometry + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-sensor-msgs-py ros-jazzy-map-msgs ros-jazzy-tf2-eigen-kdl + ros-jazzy-dwb-msgs ros-jazzy-image-geometry + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_26_job_61: + name: pcl-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_25_job_55 + - stage_25_job_56 + - stage_25_job_57 + - stage_25_job_58 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-pcl-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-pcl-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_27_job_62: + name: rcl moveit-msgs common-interfaces + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_26_job_59 + - stage_26_job_60 + - stage_26_job_61 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rcl ros-jazzy-moveit-msgs ros-jazzy-common-interfaces + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rcl ros-jazzy-moveit-msgs ros-jazzy-common-interfaces + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_28_job_63: + name: libstatistics-collector rcl-lifecycle rcl-action + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_27_job_62 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-libstatistics-collector ros-jazzy-rcl-lifecycle ros-jazzy-rcl-action + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-libstatistics-collector ros-jazzy-rcl-lifecycle + ros-jazzy-rcl-action + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_29_job_64: + name: rclcpp rclpy + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_28_job_63 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rclcpp ros-jazzy-rclpy + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rclcpp ros-jazzy-rclpy + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_30_job_65: + name: rsl rclcpp-lifecycle rclcpp-action launch-ros ros2cli + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_29_job_64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rsl ros-jazzy-rclcpp-lifecycle ros-jazzy-rclcpp-action + ros-jazzy-launch-ros ros-jazzy-ros2cli + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rsl ros-jazzy-rclcpp-lifecycle ros-jazzy-rclcpp-action + ros-jazzy-launch-ros ros-jazzy-ros2cli + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_30_job_66: + name: rclcpp-components filters rosbag2-test-common tf2-py geometric-shapes + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_29_job_64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rclcpp-components ros-jazzy-filters ros-jazzy-rosbag2-test-common + ros-jazzy-tf2-py ros-jazzy-geometric-shapes + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rclcpp-components ros-jazzy-filters ros-jazzy-rosbag2-test-common + ros-jazzy-tf2-py ros-jazzy-geometric-shapes + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_30_job_67: + name: launch-param-builder cv-bridge laser-geometry behaviortree-cpp rqt-gui + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_29_job_64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-launch-param-builder ros-jazzy-cv-bridge ros-jazzy-laser-geometry + ros-jazzy-behaviortree-cpp ros-jazzy-rqt-gui + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-launch-param-builder ros-jazzy-cv-bridge ros-jazzy-laser-geometry + ros-jazzy-behaviortree-cpp ros-jazzy-rqt-gui + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_30_job_68: + name: rqt-py-common rqt-gui-cpp camera-calibration-parsers rosbridge-test-msgs + teleop-twist-keyboard + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_29_job_64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rqt-py-common ros-jazzy-rqt-gui-cpp ros-jazzy-camera-calibration-parsers + ros-jazzy-rosbridge-test-msgs ros-jazzy-teleop-twist-keyboard + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rqt-py-common ros-jazzy-rqt-gui-cpp ros-jazzy-camera-calibration-parsers + ros-jazzy-rosbridge-test-msgs ros-jazzy-teleop-twist-keyboard + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_30_job_69: + name: dummy-sensors dummy-map-server demo-nodes-py quality-of-service-demo-py + intra-process-demo + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_29_job_64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build 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 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_30_job_70: + name: examples-rclpy-minimal-subscriber examples-rclpy-minimal-service examples-rclpy-minimal-publisher + examples-rclpy-minimal-client examples-rclpy-minimal-action-server + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_29_job_64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build 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 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_30_job_71: + name: examples-rclpy-minimal-action-client examples-rclpy-executors examples-rclcpp-multithreaded-executor + examples-rclcpp-minimal-timer examples-rclcpp-minimal-service + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_29_job_64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build 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 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_30_job_72: + name: examples-rclcpp-minimal-publisher examples-rclcpp-minimal-client action-tutorials-py + plotjuggler + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_29_job_64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-examples-rclcpp-minimal-publisher ros-jazzy-examples-rclcpp-minimal-client + ros-jazzy-action-tutorials-py ros-jazzy-plotjuggler + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-examples-rclcpp-minimal-publisher ros-jazzy-examples-rclcpp-minimal-client + ros-jazzy-action-tutorials-py ros-jazzy-plotjuggler + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_31_job_73: + name: parameter-traits realtime-tools launch-testing-ros message-filters ros2lifecycle-test-fixtures + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_30_job_65 + - stage_30_job_66 + - stage_30_job_67 + - stage_30_job_68 + - stage_30_job_69 + - stage_30_job_70 + - stage_30_job_71 + - stage_30_job_72 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-parameter-traits ros-jazzy-realtime-tools ros-jazzy-launch-testing-ros + ros-jazzy-message-filters ros-jazzy-ros2lifecycle-test-fixtures + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-parameter-traits ros-jazzy-realtime-tools ros-jazzy-launch-testing-ros + ros-jazzy-message-filters ros-jazzy-ros2lifecycle-test-fixtures + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_31_job_74: + name: ros2multicast rosbag2-storage tf2-ros-py topic-tools nav2-common + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_30_job_65 + - stage_30_job_66 + - stage_30_job_67 + - stage_30_job_68 + - stage_30_job_69 + - stage_30_job_70 + - stage_30_job_71 + - stage_30_job_72 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ros2multicast ros-jazzy-rosbag2-storage ros-jazzy-tf2-ros-py + ros-jazzy-topic-tools ros-jazzy-nav2-common + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros2multicast ros-jazzy-rosbag2-storage ros-jazzy-tf2-ros-py + ros-jazzy-topic-tools ros-jazzy-nav2-common + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_31_job_75: + name: bondcpp moveit-configs-utils kinematics-interface ros-gz-bridge rqt-gui-py + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_30_job_65 + - stage_30_job_66 + - stage_30_job_67 + - stage_30_job_68 + - stage_30_job_69 + - stage_30_job_70 + - stage_30_job_71 + - stage_30_job_72 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-bondcpp ros-jazzy-moveit-configs-utils ros-jazzy-kinematics-interface + ros-jazzy-ros-gz-bridge ros-jazzy-rqt-gui-py + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-bondcpp ros-jazzy-moveit-configs-utils ros-jazzy-kinematics-interface + ros-jazzy-ros-gz-bridge ros-jazzy-rqt-gui-py + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_31_job_76: + name: ros-gz-sim camera-info-manager joy rosbridge-library velodyne-laserscan + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_30_job_65 + - stage_30_job_66 + - stage_30_job_67 + - stage_30_job_68 + - stage_30_job_69 + - stage_30_job_70 + - stage_30_job_71 + - stage_30_job_72 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ros-gz-sim ros-jazzy-camera-info-manager ros-jazzy-joy + ros-jazzy-rosbridge-library ros-jazzy-velodyne-laserscan + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros-gz-sim ros-jazzy-camera-info-manager ros-jazzy-joy + ros-jazzy-rosbridge-library ros-jazzy-velodyne-laserscan + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_31_job_77: + name: vision-opencv turtlesim topic-monitor quality-of-service-demo-cpp examples-rclcpp-minimal-subscriber + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_30_job_65 + - stage_30_job_66 + - stage_30_job_67 + - stage_30_job_68 + - stage_30_job_69 + - stage_30_job_70 + - stage_30_job_71 + - stage_30_job_72 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-vision-opencv ros-jazzy-turtlesim ros-jazzy-topic-monitor + ros-jazzy-quality-of-service-demo-cpp ros-jazzy-examples-rclcpp-minimal-subscriber + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-vision-opencv ros-jazzy-turtlesim ros-jazzy-topic-monitor + ros-jazzy-quality-of-service-demo-cpp ros-jazzy-examples-rclcpp-minimal-subscriber + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_31_job_78: + name: examples-rclcpp-minimal-composition examples-rclcpp-minimal-action-server + examples-rclcpp-minimal-action-client depthimage-to-laserscan action-tutorials-cpp + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_30_job_65 + - stage_30_job_66 + - stage_30_job_67 + - stage_30_job_68 + - stage_30_job_69 + - stage_30_job_70 + - stage_30_job_71 + - stage_30_job_72 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build 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 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_31_job_79: + name: flex-sync + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_30_job_65 + - stage_30_job_66 + - stage_30_job_67 + - stage_30_job_68 + - stage_30_job_69 + - stage_30_job_70 + - stage_30_job_71 + - stage_30_job_72 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-flex-sync + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-flex-sync + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_32_job_80: + name: generate-parameter-library ros2pkg ros2service ros2node tf2-ros + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_31_job_73 + - stage_31_job_74 + - stage_31_job_75 + - stage_31_job_76 + - stage_31_job_77 + - stage_31_job_78 + - stage_31_job_79 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-generate-parameter-library ros-jazzy-ros2pkg ros-jazzy-ros2service + ros-jazzy-ros2node ros-jazzy-tf2-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-generate-parameter-library ros-jazzy-ros2pkg ros-jazzy-ros2service + ros-jazzy-ros2node ros-jazzy-tf2-ros + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_32_job_81: + name: ros2test diagnostic-updater ros2topic ros2interface ros2doctor + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_31_job_73 + - stage_31_job_74 + - stage_31_job_75 + - stage_31_job_76 + - stage_31_job_77 + - stage_31_job_78 + - stage_31_job_79 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ros2test ros-jazzy-diagnostic-updater ros-jazzy-ros2topic + ros-jazzy-ros2interface ros-jazzy-ros2doctor + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros2test ros-jazzy-diagnostic-updater ros-jazzy-ros2topic + ros-jazzy-ros2interface ros-jazzy-ros2doctor + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_32_job_82: + name: ros2action rosbag2-storage-sqlite3 rosbag2-storage-mcap nav2-msgs nav2-voxel-grid + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_31_job_73 + - stage_31_job_74 + - stage_31_job_75 + - stage_31_job_76 + - stage_31_job_77 + - stage_31_job_78 + - stage_31_job_79 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ros2action ros-jazzy-rosbag2-storage-sqlite3 ros-jazzy-rosbag2-storage-mcap + ros-jazzy-nav2-msgs ros-jazzy-nav2-voxel-grid + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros2action ros-jazzy-rosbag2-storage-sqlite3 ros-jazzy-rosbag2-storage-mcap + ros-jazzy-nav2-msgs ros-jazzy-nav2-voxel-grid + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_32_job_83: + name: point-cloud-transport image-transport kinematics-interface-kdl rqt-plot + pcl-conversions + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_31_job_73 + - stage_31_job_74 + - stage_31_job_75 + - stage_31_job_76 + - stage_31_job_77 + - stage_31_job_78 + - stage_31_job_79 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-point-cloud-transport ros-jazzy-image-transport ros-jazzy-kinematics-interface-kdl + ros-jazzy-rqt-plot ros-jazzy-pcl-conversions + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-point-cloud-transport ros-jazzy-image-transport + ros-jazzy-kinematics-interface-kdl ros-jazzy-rqt-plot ros-jazzy-pcl-conversions + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_32_job_84: + name: rqt-console camera-calibration tf2-tools teleop-twist-joy ros2-controllers-test-nodes + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_31_job_73 + - stage_31_job_74 + - stage_31_job_75 + - stage_31_job_76 + - stage_31_job_77 + - stage_31_job_78 + - stage_31_job_79 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rqt-console ros-jazzy-camera-calibration ros-jazzy-tf2-tools + ros-jazzy-teleop-twist-joy ros-jazzy-ros2-controllers-test-nodes + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rqt-console ros-jazzy-camera-calibration ros-jazzy-tf2-tools + ros-jazzy-teleop-twist-joy ros-jazzy-ros2-controllers-test-nodes + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_32_job_85: + name: diagnostic-aggregator rqt-shell rqt-service-caller rqt-py-console rqt-publisher + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_31_job_73 + - stage_31_job_74 + - stage_31_job_75 + - stage_31_job_76 + - stage_31_job_77 + - stage_31_job_78 + - stage_31_job_79 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-diagnostic-aggregator ros-jazzy-rqt-shell ros-jazzy-rqt-service-caller + ros-jazzy-rqt-py-console ros-jazzy-rqt-publisher + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-diagnostic-aggregator ros-jazzy-rqt-shell ros-jazzy-rqt-service-caller + ros-jazzy-rqt-py-console ros-jazzy-rqt-publisher + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_32_job_86: + name: rqt-graph logging-demo image-tools demo-nodes-cpp-native demo-nodes-cpp + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_31_job_73 + - stage_31_job_74 + - stage_31_job_75 + - stage_31_job_76 + - stage_31_job_77 + - stage_31_job_78 + - stage_31_job_79 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rqt-graph ros-jazzy-logging-demo ros-jazzy-image-tools + ros-jazzy-demo-nodes-cpp-native ros-jazzy-demo-nodes-cpp + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rqt-graph ros-jazzy-logging-demo ros-jazzy-image-tools + ros-jazzy-demo-nodes-cpp-native ros-jazzy-demo-nodes-cpp + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_32_job_87: + name: composition + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_31_job_73 + - stage_31_job_74 + - stage_31_job_75 + - stage_31_job_76 + - stage_31_job_77 + - stage_31_job_78 + - stage_31_job_79 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-composition + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-composition + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_33_job_88: + name: joint-limits ros2run ros2param robot-state-publisher ros-testing + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_32_job_80 + - stage_32_job_81 + - stage_32_job_82 + - stage_32_job_83 + - stage_32_job_84 + - stage_32_job_85 + - stage_32_job_86 + - stage_32_job_87 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-joint-limits ros-jazzy-ros2run ros-jazzy-ros2param ros-jazzy-robot-state-publisher + ros-jazzy-ros-testing + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-joint-limits ros-jazzy-ros2run ros-jazzy-ros2param + ros-jazzy-robot-state-publisher ros-jazzy-ros-testing + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_33_job_89: + name: ros2lifecycle ros2launch joint-state-publisher control-toolbox tf2-kdl + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_32_job_80 + - stage_32_job_81 + - stage_32_job_82 + - stage_32_job_83 + - stage_32_job_84 + - stage_32_job_85 + - stage_32_job_86 + - stage_32_job_87 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ros2lifecycle ros-jazzy-ros2launch ros-jazzy-joint-state-publisher + ros-jazzy-control-toolbox ros-jazzy-tf2-kdl + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros2lifecycle ros-jazzy-ros2launch ros-jazzy-joint-state-publisher + ros-jazzy-control-toolbox ros-jazzy-tf2-kdl + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_33_job_90: + name: tf2-geometry-msgs tf2-eigen rosbag2-storage-default-plugins rviz-common + tf2-sensor-msgs + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_32_job_80 + - stage_32_job_81 + - stage_32_job_82 + - stage_32_job_83 + - stage_32_job_84 + - stage_32_job_85 + - stage_32_job_86 + - stage_32_job_87 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-tf2-geometry-msgs ros-jazzy-tf2-eigen ros-jazzy-rosbag2-storage-default-plugins + ros-jazzy-rviz-common ros-jazzy-tf2-sensor-msgs + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-tf2-geometry-msgs ros-jazzy-tf2-eigen ros-jazzy-rosbag2-storage-default-plugins + ros-jazzy-rviz-common ros-jazzy-tf2-sensor-msgs + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_33_job_91: + name: zstd-image-transport theora-image-transport compressed-image-transport compressed-depth-image-transport + ros-gz-image + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_32_job_80 + - stage_32_job_81 + - stage_32_job_82 + - stage_32_job_83 + - stage_32_job_84 + - stage_32_job_85 + - stage_32_job_86 + - stage_32_job_87 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build 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 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: 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 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_33_job_92: + name: nav2-simple-commander rqt-topic rqt-image-view twist-mux image-view + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_32_job_80 + - stage_32_job_81 + - stage_32_job_82 + - stage_32_job_83 + - stage_32_job_84 + - stage_32_job_85 + - stage_32_job_86 + - stage_32_job_87 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-nav2-simple-commander ros-jazzy-rqt-topic ros-jazzy-rqt-image-view + ros-jazzy-twist-mux ros-jazzy-image-view + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-nav2-simple-commander ros-jazzy-rqt-topic ros-jazzy-rqt-image-view + ros-jazzy-twist-mux ros-jazzy-image-view + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_33_job_93: + name: image-publisher tf2-bullet rqt-msg velodyne-pointcloud velodyne-driver + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_32_job_80 + - stage_32_job_81 + - stage_32_job_82 + - stage_32_job_83 + - stage_32_job_84 + - stage_32_job_85 + - stage_32_job_86 + - stage_32_job_87 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-image-publisher ros-jazzy-tf2-bullet ros-jazzy-rqt-msg + ros-jazzy-velodyne-pointcloud ros-jazzy-velodyne-driver + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-image-publisher ros-jazzy-tf2-bullet ros-jazzy-rqt-msg + ros-jazzy-velodyne-pointcloud ros-jazzy-velodyne-driver + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_33_job_94: + name: rqt-reconfigure image-common self-test diagnostic-common-diagnostics apriltag-ros + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_32_job_80 + - stage_32_job_81 + - stage_32_job_82 + - stage_32_job_83 + - stage_32_job_84 + - stage_32_job_85 + - stage_32_job_86 + - stage_32_job_87 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rqt-reconfigure ros-jazzy-image-common ros-jazzy-self-test + ros-jazzy-diagnostic-common-diagnostics ros-jazzy-apriltag-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rqt-reconfigure ros-jazzy-image-common ros-jazzy-self-test + ros-jazzy-diagnostic-common-diagnostics ros-jazzy-apriltag-ros + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_34_job_95: + name: hardware-interface sros2 ros2component joint-state-publisher-gui nav2-util + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_33_job_88 + - stage_33_job_89 + - stage_33_job_90 + - stage_33_job_91 + - stage_33_job_92 + - stage_33_job_93 + - stage_33_job_94 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-hardware-interface ros-jazzy-sros2 ros-jazzy-ros2component + ros-jazzy-joint-state-publisher-gui ros-jazzy-nav2-util + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-hardware-interface ros-jazzy-sros2 ros-jazzy-ros2component + ros-jazzy-joint-state-publisher-gui ros-jazzy-nav2-util + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_34_job_96: + name: rosbag2-cpp rviz-visual-testing-framework interactive-markers warehouse-ros + robot-localization + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_33_job_88 + - stage_33_job_89 + - stage_33_job_90 + - stage_33_job_91 + - stage_33_job_92 + - stage_33_job_93 + - stage_33_job_94 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rosbag2-cpp ros-jazzy-rviz-visual-testing-framework ros-jazzy-interactive-markers + ros-jazzy-warehouse-ros ros-jazzy-robot-localization + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosbag2-cpp ros-jazzy-rviz-visual-testing-framework + ros-jazzy-interactive-markers ros-jazzy-warehouse-ros ros-jazzy-robot-localization + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_34_job_97: + name: image-transport-plugins image-proc image-rotate pcl-ros rosapi + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_33_job_88 + - stage_33_job_89 + - stage_33_job_90 + - stage_33_job_91 + - stage_33_job_92 + - stage_33_job_93 + - stage_33_job_94 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-image-transport-plugins ros-jazzy-image-proc ros-jazzy-image-rotate + ros-jazzy-pcl-ros ros-jazzy-rosapi + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-image-transport-plugins ros-jazzy-image-proc ros-jazzy-image-rotate + ros-jazzy-pcl-ros ros-jazzy-rosapi + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_34_job_98: + name: geometry2 rqt-srv rqt-action velodyne laser-filters + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_33_job_88 + - stage_33_job_89 + - stage_33_job_90 + - stage_33_job_91 + - stage_33_job_92 + - stage_33_job_93 + - stage_33_job_94 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-geometry2 ros-jazzy-rqt-srv ros-jazzy-rqt-action ros-jazzy-velodyne + ros-jazzy-laser-filters + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-geometry2 ros-jazzy-rqt-srv ros-jazzy-rqt-action + ros-jazzy-velodyne ros-jazzy-laser-filters + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_34_job_99: + name: lifecycle dummy-robot-bringup sbg-driver diagnostics + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_33_job_88 + - stage_33_job_89 + - stage_33_job_90 + - stage_33_job_91 + - stage_33_job_92 + - stage_33_job_93 + - stage_33_job_94 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-lifecycle ros-jazzy-dummy-robot-bringup ros-jazzy-sbg-driver + ros-jazzy-diagnostics + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-lifecycle ros-jazzy-dummy-robot-bringup ros-jazzy-sbg-driver + ros-jazzy-diagnostics + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_35_job_100: + name: hardware-interface-testing controller-interface ros2cli-common-extensions + nav2-map-server nav2-lifecycle-manager + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_34_job_95 + - stage_34_job_96 + - stage_34_job_97 + - stage_34_job_98 + - stage_34_job_99 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-hardware-interface-testing ros-jazzy-controller-interface + ros-jazzy-ros2cli-common-extensions ros-jazzy-nav2-map-server ros-jazzy-nav2-lifecycle-manager + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-hardware-interface-testing ros-jazzy-controller-interface + ros-jazzy-ros2cli-common-extensions ros-jazzy-nav2-map-server ros-jazzy-nav2-lifecycle-manager + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_35_job_101: + name: rosbag2-compression nav2-behavior-tree rviz-default-plugins nav-2d-utils + opennav-docking-core + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_34_job_95 + - stage_34_job_96 + - stage_34_job_97 + - stage_34_job_98 + - stage_34_job_99 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rosbag2-compression ros-jazzy-nav2-behavior-tree ros-jazzy-rviz-default-plugins + ros-jazzy-nav-2d-utils ros-jazzy-opennav-docking-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosbag2-compression ros-jazzy-nav2-behavior-tree + ros-jazzy-rviz-default-plugins ros-jazzy-nav-2d-utils ros-jazzy-opennav-docking-core + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_35_job_102: + name: nav2-velocity-smoother nav2-amcl stereo-image-proc depth-image-proc sros2-cmake + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_34_job_95 + - stage_34_job_96 + - stage_34_job_97 + - stage_34_job_98 + - stage_34_job_99 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-nav2-velocity-smoother ros-jazzy-nav2-amcl ros-jazzy-stereo-image-proc + ros-jazzy-depth-image-proc ros-jazzy-sros2-cmake + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-nav2-velocity-smoother ros-jazzy-nav2-amcl ros-jazzy-stereo-image-proc + ros-jazzy-depth-image-proc ros-jazzy-sros2-cmake + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_35_job_103: + name: warehouse-ros-sqlite transmission-interface rosbridge-server perception-pcl + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_34_job_95 + - stage_34_job_96 + - stage_34_job_97 + - stage_34_job_98 + - stage_34_job_99 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-warehouse-ros-sqlite ros-jazzy-transmission-interface + ros-jazzy-rosbridge-server ros-jazzy-perception-pcl + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-warehouse-ros-sqlite ros-jazzy-transmission-interface + ros-jazzy-rosbridge-server ros-jazzy-perception-pcl + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_36_job_104: + name: controller-manager nav2-costmap-2d rosbag2-compression-zstd rviz2 nav2-rviz-plugins + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_35_job_100 + - stage_35_job_101 + - stage_35_job_102 + - stage_35_job_103 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-controller-manager ros-jazzy-nav2-costmap-2d ros-jazzy-rosbag2-compression-zstd + ros-jazzy-rviz2 ros-jazzy-nav2-rviz-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-controller-manager ros-jazzy-nav2-costmap-2d ros-jazzy-rosbag2-compression-zstd + ros-jazzy-rviz2 ros-jazzy-nav2-rviz-plugins + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_36_job_105: + name: slam-toolbox image-pipeline ros-core rosbridge-suite + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_35_job_100 + - stage_35_job_101 + - stage_35_job_102 + - stage_35_job_103 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-slam-toolbox ros-jazzy-image-pipeline ros-jazzy-ros-core + ros-jazzy-rosbridge-suite + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-slam-toolbox ros-jazzy-image-pipeline ros-jazzy-ros-core + ros-jazzy-rosbridge-suite + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_37_job_106: + name: forward-command-controller gripper-controllers steering-controllers-library + joint-trajectory-controller nav2-core + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_36_job_104 + - stage_36_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-forward-command-controller ros-jazzy-gripper-controllers + ros-jazzy-steering-controllers-library ros-jazzy-joint-trajectory-controller + ros-jazzy-nav2-core + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-forward-command-controller ros-jazzy-gripper-controllers + ros-jazzy-steering-controllers-library ros-jazzy-joint-trajectory-controller + ros-jazzy-nav2-core + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_37_job_107: + name: rosbag2-transport tricycle-controller range-sensor-broadcaster pose-broadcaster + pid-controller + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_36_job_104 + - stage_36_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-rosbag2-transport ros-jazzy-tricycle-controller ros-jazzy-range-sensor-broadcaster + ros-jazzy-pose-broadcaster ros-jazzy-pid-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-rosbag2-transport ros-jazzy-tricycle-controller + ros-jazzy-range-sensor-broadcaster ros-jazzy-pose-broadcaster ros-jazzy-pid-controller + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_37_job_108: + name: parallel-gripper-controller mecanum-drive-controller joint-state-broadcaster + imu-sensor-broadcaster gpio-controllers + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_36_job_104 + - stage_36_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-parallel-gripper-controller ros-jazzy-mecanum-drive-controller + ros-jazzy-joint-state-broadcaster ros-jazzy-imu-sensor-broadcaster ros-jazzy-gpio-controllers + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-parallel-gripper-controller ros-jazzy-mecanum-drive-controller + ros-jazzy-joint-state-broadcaster ros-jazzy-imu-sensor-broadcaster ros-jazzy-gpio-controllers + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_37_job_109: + name: force-torque-sensor-broadcaster diff-drive-controller costmap-queue nav2-collision-monitor + ur-description + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_36_job_104 + - stage_36_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-force-torque-sensor-broadcaster ros-jazzy-diff-drive-controller + ros-jazzy-costmap-queue ros-jazzy-nav2-collision-monitor ros-jazzy-ur-description + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-force-torque-sensor-broadcaster ros-jazzy-diff-drive-controller + ros-jazzy-costmap-queue ros-jazzy-nav2-collision-monitor ros-jazzy-ur-description + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_37_job_110: + name: ros-gz-sim-demos gz-ros2-control ros2controlcli rviz-visual-tools + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_36_job_104 + - stage_36_job_105 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ros-gz-sim-demos ros-jazzy-gz-ros2-control ros-jazzy-ros2controlcli + ros-jazzy-rviz-visual-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ros-gz-sim-demos ros-jazzy-gz-ros2-control ros-jazzy-ros2controlcli + ros-jazzy-rviz-visual-tools + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_38_job_111: + name: position-controllers velocity-controllers tricycle-steering-controller effort-controllers + bicycle-steering-controller + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_37_job_106 + - stage_37_job_107 + - stage_37_job_108 + - stage_37_job_109 + - stage_37_job_110 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-position-controllers ros-jazzy-velocity-controllers ros-jazzy-tricycle-steering-controller + ros-jazzy-effort-controllers ros-jazzy-bicycle-steering-controller + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-position-controllers ros-jazzy-velocity-controllers + ros-jazzy-tricycle-steering-controller ros-jazzy-effort-controllers ros-jazzy-bicycle-steering-controller + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_38_job_112: + name: admittance-controller ackermann-steering-controller nav2-controller dwb-core + rosbag2-py + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_37_job_106 + - stage_37_job_107 + - stage_37_job_108 + - stage_37_job_109 + - stage_37_job_110 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-admittance-controller ros-jazzy-ackermann-steering-controller + ros-jazzy-nav2-controller ros-jazzy-dwb-core ros-jazzy-rosbag2-py + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-admittance-controller ros-jazzy-ackermann-steering-controller + ros-jazzy-nav2-controller ros-jazzy-dwb-core ros-jazzy-rosbag2-py + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_38_job_113: + name: nav2-regulated-pure-pursuit-controller opennav-docking-bt nav2-waypoint-follower + nav2-theta-star-planner nav2-smoother + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_37_job_106 + - stage_37_job_107 + - stage_37_job_108 + - stage_37_job_109 + - stage_37_job_110 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-nav2-regulated-pure-pursuit-controller ros-jazzy-opennav-docking-bt + ros-jazzy-nav2-waypoint-follower ros-jazzy-nav2-theta-star-planner ros-jazzy-nav2-smoother + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-nav2-regulated-pure-pursuit-controller ros-jazzy-opennav-docking-bt + ros-jazzy-nav2-waypoint-follower ros-jazzy-nav2-theta-star-planner ros-jazzy-nav2-smoother + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_38_job_114: + name: nav2-smac-planner nav2-planner nav2-navfn-planner nav2-mppi-controller nav2-constrained-smoother + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_37_job_106 + - stage_37_job_107 + - stage_37_job_108 + - stage_37_job_109 + - stage_37_job_110 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-nav2-smac-planner ros-jazzy-nav2-planner ros-jazzy-nav2-navfn-planner + ros-jazzy-nav2-mppi-controller ros-jazzy-nav2-constrained-smoother + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-nav2-smac-planner ros-jazzy-nav2-planner ros-jazzy-nav2-navfn-planner + ros-jazzy-nav2-mppi-controller ros-jazzy-nav2-constrained-smoother + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_38_job_115: + name: nav2-bt-navigator nav2-behaviors ur-controllers ros-gz ros2-control + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_37_job_106 + - stage_37_job_107 + - stage_37_job_108 + - stage_37_job_109 + - stage_37_job_110 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-nav2-bt-navigator ros-jazzy-nav2-behaviors ros-jazzy-ur-controllers + ros-jazzy-ros-gz ros-jazzy-ros2-control + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-nav2-bt-navigator ros-jazzy-nav2-behaviors ros-jazzy-ur-controllers + ros-jazzy-ros-gz ros-jazzy-ros2-control + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_39_job_116: + name: moveit-resources-panda-moveit-config moveit-resources-fanuc-moveit-config + ros2-controllers nav2-graceful-controller dwb-plugins + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_38_job_111 + - stage_38_job_112 + - stage_38_job_113 + - stage_38_job_114 + - stage_38_job_115 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-resources-panda-moveit-config ros-jazzy-moveit-resources-fanuc-moveit-config + ros-jazzy-ros2-controllers ros-jazzy-nav2-graceful-controller ros-jazzy-dwb-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-resources-panda-moveit-config ros-jazzy-moveit-resources-fanuc-moveit-config + ros-jazzy-ros2-controllers ros-jazzy-nav2-graceful-controller ros-jazzy-dwb-plugins + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_39_job_117: + name: dwb-critics ros2bag nav2-rotation-shim-controller rqt-bag ur-robot-driver + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_38_job_111 + - stage_38_job_112 + - stage_38_job_113 + - stage_38_job_114 + - stage_38_job_115 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-dwb-critics ros-jazzy-ros2bag ros-jazzy-nav2-rotation-shim-controller + ros-jazzy-rqt-bag ros-jazzy-ur-robot-driver + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-dwb-critics ros-jazzy-ros2bag ros-jazzy-nav2-rotation-shim-controller + ros-jazzy-rqt-bag ros-jazzy-ur-robot-driver + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_39_job_118: + name: gz-ros2-control-demos + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_38_job_111 + - stage_38_job_112 + - stage_38_job_113 + - stage_38_job_114 + - stage_38_job_115 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-gz-ros2-control-demos + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-gz-ros2-control-demos + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_40_job_119: + name: moveit-core opennav-docking nav2-dwb-controller rosbag2-tests ur-calibration + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_39_job_116 + - stage_39_job_117 + - stage_39_job_118 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-core ros-jazzy-opennav-docking ros-jazzy-nav2-dwb-controller + ros-jazzy-rosbag2-tests ros-jazzy-ur-calibration + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-core ros-jazzy-opennav-docking ros-jazzy-nav2-dwb-controller + ros-jazzy-rosbag2-tests ros-jazzy-ur-calibration + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_41_job_120: + name: moveit-ros-occupancy-map-monitor moveit-simple-controller-manager moveit-resources-prbt-ikfast-manipulator-plugin + pilz-industrial-motion-planner-testutils chomp-motion-planner + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_40_job_119 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-ros-occupancy-map-monitor ros-jazzy-moveit-simple-controller-manager + ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin ros-jazzy-pilz-industrial-motion-planner-testutils + ros-jazzy-chomp-motion-planner + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-ros-occupancy-map-monitor ros-jazzy-moveit-simple-controller-manager + ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin ros-jazzy-pilz-industrial-motion-planner-testutils + ros-jazzy-chomp-motion-planner + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_41_job_121: + name: moveit-planners-stomp navigation2 rosbag2 + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_40_job_119 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-planners-stomp ros-jazzy-navigation2 ros-jazzy-rosbag2 + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-planners-stomp ros-jazzy-navigation2 ros-jazzy-rosbag2 + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_42_job_122: + name: moveit-ros-planning moveit-planners-chomp rqt-bag-plugins ros-base moveit-plugins + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_41_job_120 + - stage_41_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-ros-planning ros-jazzy-moveit-planners-chomp ros-jazzy-rqt-bag-plugins + ros-jazzy-ros-base ros-jazzy-moveit-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-ros-planning ros-jazzy-moveit-planners-chomp + ros-jazzy-rqt-bag-plugins ros-jazzy-ros-base ros-jazzy-moveit-plugins + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_42_job_123: + name: plotjuggler-ros + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_41_job_120 + - stage_41_job_121 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-plotjuggler-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-plotjuggler-ros + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_43_job_124: + name: moveit-kinematics moveit-ros-warehouse moveit-ros-robot-interaction moveit-planners-ompl + rqt-common-plugins + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_42_job_122 + - stage_42_job_123 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-kinematics ros-jazzy-moveit-ros-warehouse ros-jazzy-moveit-ros-robot-interaction + ros-jazzy-moveit-planners-ompl ros-jazzy-rqt-common-plugins + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-kinematics ros-jazzy-moveit-ros-warehouse + ros-jazzy-moveit-ros-robot-interaction ros-jazzy-moveit-planners-ompl ros-jazzy-rqt-common-plugins + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_43_job_125: + name: simulation perception moveit-visual-tools + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_42_job_122 + - stage_42_job_123 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-simulation ros-jazzy-perception ros-jazzy-moveit-visual-tools + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-simulation ros-jazzy-perception ros-jazzy-moveit-visual-tools + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_44_job_126: + name: moveit-ros-move-group moveit-ros-benchmarks desktop + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_43_job_124 + - stage_43_job_125 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-ros-move-group ros-jazzy-moveit-ros-benchmarks + ros-jazzy-desktop + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-ros-move-group ros-jazzy-moveit-ros-benchmarks + ros-jazzy-desktop + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_45_job_127: + name: moveit-ros-planning-interface moveit-resources-prbt-moveit-config desktop-full + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_44_job_126 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-ros-planning-interface ros-jazzy-moveit-resources-prbt-moveit-config + ros-jazzy-desktop-full + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-ros-planning-interface ros-jazzy-moveit-resources-prbt-moveit-config + ros-jazzy-desktop-full + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_46_job_128: + name: moveit-ros-visualization moveit-resources-prbt-pg70-support + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_45_job_127 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-ros-visualization ros-jazzy-moveit-resources-prbt-pg70-support + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-ros-visualization ros-jazzy-moveit-resources-prbt-pg70-support + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_47_job_129: + name: moveit-setup-framework pilz-industrial-motion-planner moveit-servo moveit-ros + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_46_job_128 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-setup-framework ros-jazzy-pilz-industrial-motion-planner + ros-jazzy-moveit-servo ros-jazzy-moveit-ros + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-setup-framework ros-jazzy-pilz-industrial-motion-planner + ros-jazzy-moveit-servo ros-jazzy-moveit-ros + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_48_job_130: + name: moveit-setup-core-plugins moveit-setup-controllers moveit-setup-app-plugins + moveit-setup-srdf-plugins moveit-planners + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_47_job_129 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-setup-core-plugins ros-jazzy-moveit-setup-controllers + ros-jazzy-moveit-setup-app-plugins ros-jazzy-moveit-setup-srdf-plugins ros-jazzy-moveit-planners + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-setup-core-plugins ros-jazzy-moveit-setup-controllers + ros-jazzy-moveit-setup-app-plugins ros-jazzy-moveit-setup-srdf-plugins ros-jazzy-moveit-planners + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_49_job_131: + name: moveit-setup-assistant ur-moveit-config + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_48_job_130 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-moveit-setup-assistant ros-jazzy-ur-moveit-config + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-moveit-setup-assistant ros-jazzy-ur-moveit-config + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh + stage_50_job_132: + name: ur-simulation-gz ur moveit + runs-on: macos-13 + strategy: + fail-fast: false + needs: + - stage_49_job_131 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Build ros-jazzy-ur-simulation-gz ros-jazzy-ur ros-jazzy-moveit + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + CURRENT_RECIPES: ros-jazzy-ur-simulation-gz ros-jazzy-ur ros-jazzy-moveit + run: | + export CI=azure + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + .scripts/build_osx.sh +name: build_osx +on: + push: + branches: + - buildbranch_osx 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..4a35f587 --- /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";; + 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..5395dd85 --- /dev/null +++ b/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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..9b1a089e --- /dev/null +++ b/buildorder.txt @@ -0,0 +1,569 @@ +ros2-distro-mutex +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-ruckig +ros-jazzy-ros-industrial-cmake-boilerplate +ros-jazzy-ompl +ros-jazzy-gtsam +ros-jazzy-apriltag +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-backward-ros +ros-jazzy-stomp +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-cmake-catch2 +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-generate-parameter-library-py +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-tl-expected +ros-jazzy-tcb-span +ros-jazzy-pybind11-vendor +ros-jazzy-tinyxml2-vendor +ros-jazzy-ros2-control-test-assets +ros-jazzy-yaml-cpp-vendor +ros-jazzy-zstd-vendor +ros-jazzy-liblz4-vendor +ros-jazzy-libcurl-vendor +ros-jazzy-sqlite3-vendor +ros-jazzy-xacro +ros-jazzy-moveit-resources-panda-description +ros-jazzy-random-numbers +ros-jazzy-eigen-stl-containers +ros-jazzy-moveit-resources-pr2-description +ros-jazzy-moveit-common +ros-jazzy-angles +ros-jazzy-moveit-resources-fanuc-description +ros-jazzy-ament-cmake-auto +ros-jazzy-sdl2-vendor +ros-jazzy-ur-client-library +ros-jazzy-zenoh-cpp-vendor +ros-jazzy-ament-cmake-copyright +ros-jazzy-ament-uncrustify +ros-jazzy-launch-yaml +ros-jazzy-launch-xml +ros-jazzy-mcap-vendor +ros-jazzy-moveit-resources-prbt-support +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-cmake-mypy +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-launch-pytest +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-smclib +ros-jazzy-osqp-vendor +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-python-orocos-kdl-vendor +ros-jazzy-resource-retriever +ros-jazzy-gz-plugin-vendor +ros-jazzy-qt-gui +ros-jazzy-qt-gui-py-common +ros-jazzy-tracetools-image-pipeline +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-srdfdom +ros-jazzy-rosidl-typesupport-c +ros-jazzy-rmw-zenoh-cpp +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-topic-tools-interfaces +ros-jazzy-rosbag2-test-msgdefs +ros-jazzy-rosbag2-interfaces +ros-jazzy-twist-mux-msgs +ros-jazzy-ur-dashboard-msgs +ros-jazzy-rosbridge-msgs +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-controller-manager-msgs +ros-jazzy-actionlib-msgs +ros-jazzy-bond +ros-jazzy-ackermann-msgs +ros-jazzy-gps-msgs +ros-jazzy-actuator-msgs +ros-jazzy-velodyne-msgs +ros-jazzy-rosapi-msgs +ros-jazzy-rtcm-msgs +ros-jazzy-nmea-msgs +ros-jazzy-apriltag-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-octomap-msgs +ros-jazzy-nav-msgs +ros-jazzy-geographic-msgs +ros-jazzy-nav-2d-msgs +ros-jazzy-vision-msgs +ros-jazzy-ros-gz-interfaces +ros-jazzy-ur-msgs +ros-jazzy-graph-msgs +ros-jazzy-rmw-implementation +ros-jazzy-control-msgs +ros-jazzy-object-recognition-msgs +ros-jazzy-visualization-msgs +ros-jazzy-stereo-msgs +ros-jazzy-sensor-msgs-py +ros-jazzy-map-msgs +ros-jazzy-tf2-eigen-kdl +ros-jazzy-dwb-msgs +ros-jazzy-image-geometry +ros-jazzy-pcl-msgs +ros-jazzy-rcl +ros-jazzy-moveit-msgs +ros-jazzy-common-interfaces +ros-jazzy-libstatistics-collector +ros-jazzy-rcl-lifecycle +ros-jazzy-rcl-action +ros-jazzy-rclcpp +ros-jazzy-rclpy +ros-jazzy-rsl +ros-jazzy-rclcpp-lifecycle +ros-jazzy-rclcpp-action +ros-jazzy-launch-ros +ros-jazzy-ros2cli +ros-jazzy-rclcpp-components +ros-jazzy-filters +ros-jazzy-rosbag2-test-common +ros-jazzy-tf2-py +ros-jazzy-geometric-shapes +ros-jazzy-launch-param-builder +ros-jazzy-cv-bridge +ros-jazzy-laser-geometry +ros-jazzy-behaviortree-cpp +ros-jazzy-rqt-gui +ros-jazzy-rqt-py-common +ros-jazzy-rqt-gui-cpp +ros-jazzy-camera-calibration-parsers +ros-jazzy-rosbridge-test-msgs +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-plotjuggler +ros-jazzy-parameter-traits +ros-jazzy-realtime-tools +ros-jazzy-launch-testing-ros +ros-jazzy-message-filters +ros-jazzy-ros2lifecycle-test-fixtures +ros-jazzy-ros2multicast +ros-jazzy-rosbag2-storage +ros-jazzy-tf2-ros-py +ros-jazzy-topic-tools +ros-jazzy-nav2-common +ros-jazzy-bondcpp +ros-jazzy-moveit-configs-utils +ros-jazzy-kinematics-interface +ros-jazzy-ros-gz-bridge +ros-jazzy-rqt-gui-py +ros-jazzy-ros-gz-sim +ros-jazzy-camera-info-manager +ros-jazzy-joy +ros-jazzy-rosbridge-library +ros-jazzy-velodyne-laserscan +ros-jazzy-vision-opencv +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-flex-sync +ros-jazzy-generate-parameter-library +ros-jazzy-ros2pkg +ros-jazzy-ros2service +ros-jazzy-ros2node +ros-jazzy-tf2-ros +ros-jazzy-ros2test +ros-jazzy-diagnostic-updater +ros-jazzy-ros2topic +ros-jazzy-ros2interface +ros-jazzy-ros2doctor +ros-jazzy-ros2action +ros-jazzy-rosbag2-storage-sqlite3 +ros-jazzy-rosbag2-storage-mcap +ros-jazzy-nav2-msgs +ros-jazzy-nav2-voxel-grid +ros-jazzy-point-cloud-transport +ros-jazzy-image-transport +ros-jazzy-kinematics-interface-kdl +ros-jazzy-rqt-plot +ros-jazzy-pcl-conversions +ros-jazzy-rqt-console +ros-jazzy-camera-calibration +ros-jazzy-tf2-tools +ros-jazzy-teleop-twist-joy +ros-jazzy-ros2-controllers-test-nodes +ros-jazzy-diagnostic-aggregator +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-joint-limits +ros-jazzy-ros2run +ros-jazzy-ros2param +ros-jazzy-robot-state-publisher +ros-jazzy-ros-testing +ros-jazzy-ros2lifecycle +ros-jazzy-ros2launch +ros-jazzy-joint-state-publisher +ros-jazzy-control-toolbox +ros-jazzy-tf2-kdl +ros-jazzy-tf2-geometry-msgs +ros-jazzy-tf2-eigen +ros-jazzy-rosbag2-storage-default-plugins +ros-jazzy-rviz-common +ros-jazzy-tf2-sensor-msgs +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-nav2-simple-commander +ros-jazzy-rqt-topic +ros-jazzy-rqt-image-view +ros-jazzy-twist-mux +ros-jazzy-image-view +ros-jazzy-image-publisher +ros-jazzy-tf2-bullet +ros-jazzy-rqt-msg +ros-jazzy-velodyne-pointcloud +ros-jazzy-velodyne-driver +ros-jazzy-rqt-reconfigure +ros-jazzy-image-common +ros-jazzy-self-test +ros-jazzy-diagnostic-common-diagnostics +ros-jazzy-apriltag-ros +ros-jazzy-hardware-interface +ros-jazzy-sros2 +ros-jazzy-ros2component +ros-jazzy-joint-state-publisher-gui +ros-jazzy-nav2-util +ros-jazzy-rosbag2-cpp +ros-jazzy-rviz-visual-testing-framework +ros-jazzy-interactive-markers +ros-jazzy-warehouse-ros +ros-jazzy-robot-localization +ros-jazzy-image-transport-plugins +ros-jazzy-image-proc +ros-jazzy-image-rotate +ros-jazzy-pcl-ros +ros-jazzy-rosapi +ros-jazzy-geometry2 +ros-jazzy-rqt-srv +ros-jazzy-rqt-action +ros-jazzy-velodyne +ros-jazzy-laser-filters +ros-jazzy-lifecycle +ros-jazzy-dummy-robot-bringup +ros-jazzy-sbg-driver +ros-jazzy-diagnostics +ros-jazzy-hardware-interface-testing +ros-jazzy-controller-interface +ros-jazzy-ros2cli-common-extensions +ros-jazzy-nav2-map-server +ros-jazzy-nav2-lifecycle-manager +ros-jazzy-rosbag2-compression +ros-jazzy-nav2-behavior-tree +ros-jazzy-rviz-default-plugins +ros-jazzy-nav-2d-utils +ros-jazzy-opennav-docking-core +ros-jazzy-nav2-velocity-smoother +ros-jazzy-nav2-amcl +ros-jazzy-stereo-image-proc +ros-jazzy-depth-image-proc +ros-jazzy-sros2-cmake +ros-jazzy-warehouse-ros-sqlite +ros-jazzy-transmission-interface +ros-jazzy-rosbridge-server +ros-jazzy-perception-pcl +ros-jazzy-controller-manager +ros-jazzy-nav2-costmap-2d +ros-jazzy-rosbag2-compression-zstd +ros-jazzy-rviz2 +ros-jazzy-nav2-rviz-plugins +ros-jazzy-slam-toolbox +ros-jazzy-image-pipeline +ros-jazzy-ros-core +ros-jazzy-rosbridge-suite +ros-jazzy-forward-command-controller +ros-jazzy-gripper-controllers +ros-jazzy-steering-controllers-library +ros-jazzy-joint-trajectory-controller +ros-jazzy-nav2-core +ros-jazzy-rosbag2-transport +ros-jazzy-tricycle-controller +ros-jazzy-range-sensor-broadcaster +ros-jazzy-pose-broadcaster +ros-jazzy-pid-controller +ros-jazzy-parallel-gripper-controller +ros-jazzy-mecanum-drive-controller +ros-jazzy-joint-state-broadcaster +ros-jazzy-imu-sensor-broadcaster +ros-jazzy-gpio-controllers +ros-jazzy-force-torque-sensor-broadcaster +ros-jazzy-diff-drive-controller +ros-jazzy-costmap-queue +ros-jazzy-nav2-collision-monitor +ros-jazzy-ur-description +ros-jazzy-ros-gz-sim-demos +ros-jazzy-gz-ros2-control +ros-jazzy-ros2controlcli +ros-jazzy-rviz-visual-tools +ros-jazzy-position-controllers +ros-jazzy-velocity-controllers +ros-jazzy-tricycle-steering-controller +ros-jazzy-effort-controllers +ros-jazzy-bicycle-steering-controller +ros-jazzy-admittance-controller +ros-jazzy-ackermann-steering-controller +ros-jazzy-nav2-controller +ros-jazzy-dwb-core +ros-jazzy-rosbag2-py +ros-jazzy-nav2-regulated-pure-pursuit-controller +ros-jazzy-opennav-docking-bt +ros-jazzy-nav2-waypoint-follower +ros-jazzy-nav2-theta-star-planner +ros-jazzy-nav2-smoother +ros-jazzy-nav2-smac-planner +ros-jazzy-nav2-planner +ros-jazzy-nav2-navfn-planner +ros-jazzy-nav2-mppi-controller +ros-jazzy-nav2-constrained-smoother +ros-jazzy-nav2-bt-navigator +ros-jazzy-nav2-behaviors +ros-jazzy-ur-controllers +ros-jazzy-ros-gz +ros-jazzy-ros2-control +ros-jazzy-moveit-resources-panda-moveit-config +ros-jazzy-moveit-resources-fanuc-moveit-config +ros-jazzy-ros2-controllers +ros-jazzy-nav2-graceful-controller +ros-jazzy-dwb-plugins +ros-jazzy-dwb-critics +ros-jazzy-ros2bag +ros-jazzy-nav2-rotation-shim-controller +ros-jazzy-rqt-bag +ros-jazzy-ur-robot-driver +ros-jazzy-gz-ros2-control-demos +ros-jazzy-moveit-core +ros-jazzy-opennav-docking +ros-jazzy-nav2-dwb-controller +ros-jazzy-rosbag2-tests +ros-jazzy-ur-calibration +ros-jazzy-moveit-ros-occupancy-map-monitor +ros-jazzy-moveit-simple-controller-manager +ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin +ros-jazzy-pilz-industrial-motion-planner-testutils +ros-jazzy-chomp-motion-planner +ros-jazzy-moveit-planners-stomp +ros-jazzy-navigation2 +ros-jazzy-rosbag2 +ros-jazzy-moveit-ros-planning +ros-jazzy-moveit-planners-chomp +ros-jazzy-rqt-bag-plugins +ros-jazzy-ros-base +ros-jazzy-moveit-plugins +ros-jazzy-plotjuggler-ros +ros-jazzy-moveit-kinematics +ros-jazzy-moveit-ros-warehouse +ros-jazzy-moveit-ros-robot-interaction +ros-jazzy-moveit-planners-ompl +ros-jazzy-rqt-common-plugins +ros-jazzy-simulation +ros-jazzy-perception +ros-jazzy-moveit-visual-tools +ros-jazzy-moveit-ros-move-group +ros-jazzy-moveit-ros-benchmarks +ros-jazzy-desktop +ros-jazzy-moveit-ros-planning-interface +ros-jazzy-moveit-resources-prbt-moveit-config +ros-jazzy-desktop-full +ros-jazzy-moveit-ros-visualization +ros-jazzy-moveit-resources-prbt-pg70-support +ros-jazzy-moveit-setup-framework +ros-jazzy-pilz-industrial-motion-planner +ros-jazzy-moveit-servo +ros-jazzy-moveit-ros +ros-jazzy-moveit-setup-core-plugins +ros-jazzy-moveit-setup-controllers +ros-jazzy-moveit-setup-app-plugins +ros-jazzy-moveit-setup-srdf-plugins +ros-jazzy-moveit-planners +ros-jazzy-moveit-setup-assistant +ros-jazzy-ur-moveit-config +ros-jazzy-ur-simulation-gz +ros-jazzy-ur +ros-jazzy-moveit \ 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-ackermann-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-ackermann-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ackermann-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-ackermann-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-ackermann-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ackermann-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-ackermann-msgs/recipe.yaml b/recipes/ros-jazzy-ackermann-msgs/recipe.yaml new file mode 100644 index 00000000..eeb59580 --- /dev/null +++ b/recipes/ros-jazzy-ackermann-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-ackermann-msgs + version: 2.0.2 +source: + git: https://github.com/ros2-gbp/ackermann_msgs-release.git + tag: release/jazzy/ackermann_msgs/2.0.2-6 + target_directory: ros-jazzy-ackermann-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ackermann-steering-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-ackermann-steering-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ackermann-steering-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ackermann-steering-controller/build_ament_cmake.sh b/recipes/ros-jazzy-ackermann-steering-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ackermann-steering-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ackermann-steering-controller/recipe.yaml b/recipes/ros-jazzy-ackermann-steering-controller/recipe.yaml new file mode 100644 index 00000000..9b68f240 --- /dev/null +++ b/recipes/ros-jazzy-ackermann-steering-controller/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-ackermann-steering-controller + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/ackermann_steering_controller/4.20.0-1 + target_directory: ros-jazzy-ackermann-steering-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-std-srvs + - ros-jazzy-steering-controllers-library + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-std-srvs + - ros-jazzy-steering-controllers-library + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} 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..085c4564 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..8b14ea46 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..d915d2c7 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* 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..5771d4e6 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-action-tutorials-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..37756ea5 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..1c4e6f0f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-admittance-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-admittance-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-admittance-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-admittance-controller/build_ament_cmake.sh b/recipes/ros-jazzy-admittance-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-admittance-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-admittance-controller/recipe.yaml b/recipes/ros-jazzy-admittance-controller/recipe.yaml new file mode 100644 index 00000000..4bf54721 --- /dev/null +++ b/recipes/ros-jazzy-admittance-controller/recipe.yaml @@ -0,0 +1,129 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-admittance-controller + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/admittance_controller/4.20.0-1 + target_directory: ros-jazzy-admittance-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-control-toolbox + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-filters + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-joint-trajectory-controller + - ros-jazzy-kinematics-interface + - ros-jazzy-kinematics-interface-kdl + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-kdl + - ros-jazzy-tf2-ros + - ros-jazzy-trajectory-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-control-toolbox + - ros-jazzy-controller-interface + - ros-jazzy-filters + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-joint-trajectory-controller + - ros-jazzy-kinematics-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-kdl + - ros-jazzy-tf2-ros + - ros-jazzy-trajectory-msgs + - ros2-distro-mutex 0.7.* 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..8456dd66 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - clang-format + - python + - pyyaml + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..64d17a32 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-catch2/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-catch2/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-catch2/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-catch2/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-catch2/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-catch2/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-catch2/recipe.yaml b/recipes/ros-jazzy-ament-cmake-catch2/recipe.yaml new file mode 100644 index 00000000..5329af50 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-catch2/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-catch2 + version: 1.4.1 +source: + git: https://github.com/ros2-gbp/ament_cmake_catch2-release.git + tag: release/jazzy/ament_cmake_catch2/1.4.1-1 + target_directory: ros-jazzy-ament-cmake-catch2/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..2809462c --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-clang-format + - ros-jazzy-ament-cmake-test + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..5cba30fe --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-copyright + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..33699a46 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - catkin_pkg + - cmake + - python + - ros-jazzy-ament-package + - ros2-distro-mutex 0.7.* 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..6850ef3d --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..58e42571 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-cpplint + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..abf40651 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..f733c1ea --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-libraries + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..44f11de6 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..e8fa8751 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-libraries + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..81fa10f1 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..a5cda508 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..9823f77e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-libraries + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..e14c73cc --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-flake8 + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..d1580539 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..e6e4312c --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* 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..c5d9c2b3 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-google-benchmark-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..92389f93 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - gtest + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-gtest-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..9d62c9e0 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..d1412af8 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..bf3de3e0 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-lint-cmake + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ament-cmake-mypy/bld_ament_cmake.bat b/recipes/ros-jazzy-ament-cmake-mypy/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-mypy/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-mypy/build_ament_cmake.sh b/recipes/ros-jazzy-ament-cmake-mypy/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-mypy/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-mypy/recipe.yaml b/recipes/ros-jazzy-ament-cmake-mypy/recipe.yaml new file mode 100644 index 00000000..229c6991 --- /dev/null +++ b/recipes/ros-jazzy-ament-cmake-mypy/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-mypy + version: 0.17.1 +source: + git: https://github.com/ros2-gbp/ament_lint-release.git + tag: release/jazzy/ament_cmake_mypy/0.17.1-1 + target_directory: ros-jazzy-ament-cmake-mypy/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-mypy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-mypy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..4671a09f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-pep257 + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..0e16912e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - pytest + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-test + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..a08af708 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..52c53cf1 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..74cc4739 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..a3352c5f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..80a39b28 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-uncrustify + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..5f5a2da4 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - vcstool + run: + - git + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-export-dependencies + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..c11c5c15 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..01f55ff0 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-test + - ros-jazzy-ament-xmllint + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..3ab753c6 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..35bed794 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - importlib-metadata + - python + - ros-jazzy-ament-lint + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..d9d7920f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - cppcheck + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..9bd10189 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..a0b7700f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..ba00e5a3 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..36e0746d --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..73956e64 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ament-cmake-test + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..b6487263 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..181346da --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..0df53ae8 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..798c811b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - mypy + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..56ea95c7 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + - setuptools + run: + - importlib-metadata + - importlib_resources + - python + - ros2-distro-mutex 0.7.* 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..a5cfef64 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - pydocstyle + - python + - ros-jazzy-ament-lint + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..2456db5b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - pycodestyle + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..05494c51 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-uncrustify-vendor + - ros2-distro-mutex 0.7.* 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..78e812da --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - libxml2 + - python + - ros-jazzy-ament-lint + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..0596e059 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-apriltag-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-apriltag-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-apriltag-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-apriltag-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-apriltag-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-apriltag-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-apriltag-msgs/recipe.yaml b/recipes/ros-jazzy-apriltag-msgs/recipe.yaml new file mode 100644 index 00000000..a284ae06 --- /dev/null +++ b/recipes/ros-jazzy-apriltag-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-apriltag-msgs + version: 2.0.1 +source: + git: https://github.com/ros2-gbp/apriltag_msgs-release.git + tag: release/jazzy/apriltag_msgs/2.0.1-5 + target_directory: ros-jazzy-apriltag-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-apriltag-ros/bld_ament_cmake.bat b/recipes/ros-jazzy-apriltag-ros/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-apriltag-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-apriltag-ros/build_ament_cmake.sh b/recipes/ros-jazzy-apriltag-ros/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-apriltag-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-apriltag-ros/patch/ros-jazzy-apriltag-ros.patch b/recipes/ros-jazzy-apriltag-ros/patch/ros-jazzy-apriltag-ros.patch new file mode 100644 index 00000000..35aac4ce --- /dev/null +++ b/recipes/ros-jazzy-apriltag-ros/patch/ros-jazzy-apriltag-ros.patch @@ -0,0 +1,17 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c906851..b48600f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,8 +5,10 @@ project(apriltag_ros) + set(CMAKE_CXX_STANDARD 14) + + if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") +- add_compile_options(-Werror -Wall -Wextra -Wpedantic) +- add_link_options("-Wl,-z,relro,-z,now,-z,defs") ++ if(NOT APPLE) ++ add_compile_options(-Werror -Wall -Wextra -Wpedantic) ++ add_link_options("-Wl,-z,relro,-z,now,-z,defs") ++ endif() + endif() + + option(ASAN "use AddressSanitizer to detect memory issues" OFF) diff --git a/recipes/ros-jazzy-apriltag-ros/recipe.yaml b/recipes/ros-jazzy-apriltag-ros/recipe.yaml new file mode 100644 index 00000000..8727ba59 --- /dev/null +++ b/recipes/ros-jazzy-apriltag-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-apriltag-ros + version: 3.2.2 +source: + git: https://github.com/ros2-gbp/apriltag_ros-release.git + tag: release/jazzy/apriltag_ros/3.2.2-1 + target_directory: ros-jazzy-apriltag-ros/src/work + patches: + - patch/ros-jazzy-apriltag-ros.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-clang-format + - ros-jazzy-ament-cmake-cppcheck + - ros-jazzy-ament-lint-auto + - ros-jazzy-apriltag + - ros-jazzy-apriltag-msgs + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-apriltag + - ros-jazzy-apriltag-msgs + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-apriltag/bld_catkin.bat b/recipes/ros-jazzy-apriltag/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-apriltag/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-apriltag/build_catkin.sh b/recipes/ros-jazzy-apriltag/build_catkin.sh new file mode 100755 index 00000000..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-apriltag/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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-apriltag/recipe.yaml b/recipes/ros-jazzy-apriltag/recipe.yaml new file mode 100644 index 00000000..b8703f75 --- /dev/null +++ b/recipes/ros-jazzy-apriltag/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-apriltag + version: 3.4.2 +source: + git: https://github.com/ros2-gbp/apriltag-release.git + tag: release/jazzy/apriltag/3.4.2-1 + target_directory: ros-jazzy-apriltag/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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-backward-ros/bld_catkin.bat b/recipes/ros-jazzy-backward-ros/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-backward-ros/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-backward-ros/build_catkin.sh b/recipes/ros-jazzy-backward-ros/build_catkin.sh new file mode 100755 index 00000000..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-backward-ros/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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-backward-ros/patch/ros-jazzy-backward-ros.patch b/recipes/ros-jazzy-backward-ros/patch/ros-jazzy-backward-ros.patch new file mode 100644 index 00000000..5bebceeb --- /dev/null +++ b/recipes/ros-jazzy-backward-ros/patch/ros-jazzy-backward-ros.patch @@ -0,0 +1,64 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 317f65f..1f38e81 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -27,6 +27,7 @@ include(cmake/BackwardConfig.cmake) + + set(CMAKE_CXX_STANDARD_REQUIRED True) + set(CMAKE_CXX_STANDARD 14) ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + + ############################################################################### + # COMPILER FLAGS +diff --git a/cmake/BackwardConfig.cmake b/cmake/BackwardConfig.cmake +index 77d22d2..8e95287 100644 +--- a/cmake/BackwardConfig.cmake ++++ b/cmake/BackwardConfig.cmake +@@ -125,11 +125,14 @@ endforeach() + + set(BACKWARD_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}") + ++set(FIND_PACKAGE_REQUIRED_VARS BACKWARD_INCLUDE_DIR) ++if(DEFINED BACKWARD_LIBRARIES) ++ list(APPEND FIND_PACKAGE_REQUIRED_VARS BACKWARD_LIBRARIES) ++endif() ++ + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Backward +- REQUIRED_VARS +- BACKWARD_INCLUDE_DIR +- BACKWARD_LIBRARIES ++ REQUIRED_VARS ${FIND_PACKAGE_REQUIRED_VARS} + ) + list(APPEND _BACKWARD_INCLUDE_DIRS ${BACKWARD_INCLUDE_DIR}) + +diff --git a/cmake/BackwardConfigAment.cmake b/cmake/BackwardConfigAment.cmake +index 273a51a..3a1a726 100644 +--- a/cmake/BackwardConfigAment.cmake ++++ b/cmake/BackwardConfigAment.cmake +@@ -24,5 +24,12 @@ foreach(lib ${backward_ros_forced_LIBRARIES}) + set(backward_ros_full_path_LIBRARIES "${backward_ros_full_path_LIBRARIES} ${lib}") + endif() + endforeach() +-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-as-needed ${backward_ros_full_path_LIBRARIES} -Wl,--as-needed ${CMAKE_EXE_LINKER_FLAGS}") ++set(no_as_needed) ++set(as_needed) + ++if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") ++ set(no_as_needed "-Wl,--no-as-needed") ++ set(as_needed "-Wl,--as-needed") ++endif() ++ ++SET(CMAKE_EXE_LINKER_FLAGS "${no_as_needed} ${backward_ros_full_path_LIBRARIES} ${as_needed} ${CMAKE_EXE_LINKER_FLAGS}") +diff --git a/package.xml b/package.xml +index 6de8f0e..3ac0db1 100644 +--- a/package.xml ++++ b/package.xml +@@ -11,6 +11,7 @@ + https://github.com/pal-robotics/backward_ros + + cmake ++ ament_cmake_libraries + + libdw-dev + diff --git a/recipes/ros-jazzy-backward-ros/recipe.yaml b/recipes/ros-jazzy-backward-ros/recipe.yaml new file mode 100644 index 00000000..59912c6c --- /dev/null +++ b/recipes/ros-jazzy-backward-ros/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-backward-ros + version: 1.0.7 +source: + git: https://github.com/ros2-gbp/backward_ros-release.git + tag: release/jazzy/backward_ros/1.0.7-1 + target_directory: ros-jazzy-backward-ros/src/work + patches: + - patch/ros-jazzy-backward-ros.patch + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - ${{ 'binutils' if linux or (osx and x86_64) }} + - ${{ 'elfutils' if linux }} + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake-libraries + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-behaviortree-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-behaviortree-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-behaviortree-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-behaviortree-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-behaviortree-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-behaviortree-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-behaviortree-cpp/patch/ros-jazzy-behaviortree-cpp.patch b/recipes/ros-jazzy-behaviortree-cpp/patch/ros-jazzy-behaviortree-cpp.patch new file mode 100644 index 00000000..88c876b6 --- /dev/null +++ b/recipes/ros-jazzy-behaviortree-cpp/patch/ros-jazzy-behaviortree-cpp.patch @@ -0,0 +1,13 @@ +diff --git a/3rdparty/lexy/include/lexy/input_location.hpp b/3rdparty/lexy/include/lexy/input_location.hpp +index e6c14cf..654cdaa 100644 +--- a/3rdparty/lexy/include/lexy/input_location.hpp ++++ b/3rdparty/lexy/include/lexy/input_location.hpp +@@ -162,7 +162,7 @@ public: + { + if (lhs._line_nr != rhs._line_nr) + return lhs._line_nr < rhs._line_nr; +- return lhs._column_nr < rhs._colum_nr; ++ return lhs._column_nr < rhs._column_nr; + } + friend constexpr bool operator<=(const input_location& lhs, const input_location& rhs) + { diff --git a/recipes/ros-jazzy-behaviortree-cpp/recipe.yaml b/recipes/ros-jazzy-behaviortree-cpp/recipe.yaml new file mode 100644 index 00000000..3261c8a0 --- /dev/null +++ b/recipes/ros-jazzy-behaviortree-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-behaviortree-cpp + version: 4.6.2 +source: + git: https://github.com/ros2-gbp/behaviortree_cpp_v4-release.git + tag: release/jazzy/behaviortree_cpp/4.6.2-1 + target_directory: ros-jazzy-behaviortree-cpp/src/work + patches: + - patch/ros-jazzy-behaviortree-cpp.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - cppzmq + - libboost-devel + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-index-cpp + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - sqlite + - sqlite 3.* + - zeromq + run: + - cppzmq + - libboost + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - sqlite + - zeromq + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-bicycle-steering-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-bicycle-steering-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-bicycle-steering-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-bicycle-steering-controller/build_ament_cmake.sh b/recipes/ros-jazzy-bicycle-steering-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-bicycle-steering-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-bicycle-steering-controller/recipe.yaml b/recipes/ros-jazzy-bicycle-steering-controller/recipe.yaml new file mode 100644 index 00000000..2fa79a40 --- /dev/null +++ b/recipes/ros-jazzy-bicycle-steering-controller/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-bicycle-steering-controller + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/bicycle_steering_controller/4.20.0-1 + target_directory: ros-jazzy-bicycle-steering-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-std-srvs + - ros-jazzy-steering-controllers-library + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-std-srvs + - ros-jazzy-steering-controllers-library + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-bond/bld_ament_cmake.bat b/recipes/ros-jazzy-bond/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-bond/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-bond/build_ament_cmake.sh b/recipes/ros-jazzy-bond/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-bond/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-bond/recipe.yaml b/recipes/ros-jazzy-bond/recipe.yaml new file mode 100644 index 00000000..d1f29c6c --- /dev/null +++ b/recipes/ros-jazzy-bond/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-bond + version: 4.1.2 +source: + git: https://github.com/ros2-gbp/bond_core-release.git + tag: release/jazzy/bond/4.1.2-1 + target_directory: ros-jazzy-bond/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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 + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-bondcpp/bld_ament_cmake.bat b/recipes/ros-jazzy-bondcpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-bondcpp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-bondcpp/build_ament_cmake.sh b/recipes/ros-jazzy-bondcpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-bondcpp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-bondcpp/recipe.yaml b/recipes/ros-jazzy-bondcpp/recipe.yaml new file mode 100644 index 00000000..eef1e3f0 --- /dev/null +++ b/recipes/ros-jazzy-bondcpp/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-bondcpp + version: 4.1.2 +source: + git: https://github.com/ros2-gbp/bond_core-release.git + tag: release/jazzy/bondcpp/4.1.2-1 + target_directory: ros-jazzy-bondcpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-bond + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-smclib + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-bond + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-smclib + - ros2-distro-mutex 0.7.* 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..9e81b186 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-camera-calibration-parsers/bld_ament_cmake.bat b/recipes/ros-jazzy-camera-calibration-parsers/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-camera-calibration-parsers/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-camera-calibration-parsers/build_ament_cmake.sh b/recipes/ros-jazzy-camera-calibration-parsers/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-camera-calibration-parsers/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-camera-calibration-parsers/recipe.yaml b/recipes/ros-jazzy-camera-calibration-parsers/recipe.yaml new file mode 100644 index 00000000..bae4160d --- /dev/null +++ b/recipes/ros-jazzy-camera-calibration-parsers/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-camera-calibration-parsers + version: 5.1.5 +source: + git: https://github.com/ros2-gbp/image_common-release.git + tag: release/jazzy/camera_calibration_parsers/5.1.5-1 + target_directory: ros-jazzy-camera-calibration-parsers/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-camera-calibration/bld_ament_python.bat b/recipes/ros-jazzy-camera-calibration/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-camera-calibration/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-camera-calibration/build_ament_python.sh b/recipes/ros-jazzy-camera-calibration/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-camera-calibration/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-camera-calibration/recipe.yaml b/recipes/ros-jazzy-camera-calibration/recipe.yaml new file mode 100644 index 00000000..a0ca463f --- /dev/null +++ b/recipes/ros-jazzy-camera-calibration/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-camera-calibration + version: 5.0.6 +source: + git: https://github.com/ros2-gbp/image_pipeline-release.git + tag: release/jazzy/camera_calibration/5.0.6-1 + target_directory: ros-jazzy-camera-calibration/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - pytest + - python + - requests + - ros-jazzy-ament-copyright + - ros-jazzy-ament-flake8 + - ros-jazzy-ament-pep257 + - ros-jazzy-cv-bridge + - ros-jazzy-image-geometry + - ros-jazzy-message-filters + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-srvs + - ros2-distro-mutex 0.7.* jazzy_* + - setuptools + run: + - libopencv + - py-opencv + - python + - ros-jazzy-cv-bridge + - ros-jazzy-image-geometry + - ros-jazzy-message-filters + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-srvs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-camera-info-manager/bld_ament_cmake.bat b/recipes/ros-jazzy-camera-info-manager/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-camera-info-manager/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-camera-info-manager/build_ament_cmake.sh b/recipes/ros-jazzy-camera-info-manager/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-camera-info-manager/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-camera-info-manager/recipe.yaml b/recipes/ros-jazzy-camera-info-manager/recipe.yaml new file mode 100644 index 00000000..8a92b5b7 --- /dev/null +++ b/recipes/ros-jazzy-camera-info-manager/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-camera-info-manager + version: 5.1.5 +source: + git: https://github.com/ros2-gbp/image_common-release.git + tag: release/jazzy/camera_info_manager/5.1.5-1 + target_directory: ros-jazzy-camera-info-manager/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-camera-calibration-parsers + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcpputils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-camera-calibration-parsers + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcpputils + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-chomp-motion-planner/bld_ament_cmake.bat b/recipes/ros-jazzy-chomp-motion-planner/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-chomp-motion-planner/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-chomp-motion-planner/build_ament_cmake.sh b/recipes/ros-jazzy-chomp-motion-planner/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-chomp-motion-planner/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-chomp-motion-planner/recipe.yaml b/recipes/ros-jazzy-chomp-motion-planner/recipe.yaml new file mode 100644 index 00000000..03f43e13 --- /dev/null +++ b/recipes/ros-jazzy-chomp-motion-planner/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-chomp-motion-planner + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/chomp_motion_planner/2.12.1-1 + target_directory: ros-jazzy-chomp-motion-planner/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rsl + - ros-jazzy-trajectory-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-rsl + - ros-jazzy-trajectory-msgs + - ros2-distro-mutex 0.7.* 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..2c6ecdd0 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - console_bridge + - python + - ros-jazzy-console-bridge-vendor + - ros-jazzy-rcpputils + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..e559e537 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..7add5599 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-rcl-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* 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..28593656 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..c069a1f3 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..112c391c --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..f03dfb1e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - console_bridge + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-control-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-control-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-control-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-control-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-control-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-control-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-control-msgs/recipe.yaml b/recipes/ros-jazzy-control-msgs/recipe.yaml new file mode 100644 index 00000000..20b1854c --- /dev/null +++ b/recipes/ros-jazzy-control-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-control-msgs + version: 5.3.0 +source: + git: https://github.com/ros2-gbp/control_msgs-release.git + tag: release/jazzy/control_msgs/5.3.0-1 + target_directory: ros-jazzy-control-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-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-default-generators + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-trajectory-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-action-msgs + - 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 + - ros-jazzy-trajectory-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-control-toolbox/bld_ament_cmake.bat b/recipes/ros-jazzy-control-toolbox/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-control-toolbox/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-control-toolbox/build_ament_cmake.sh b/recipes/ros-jazzy-control-toolbox/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-control-toolbox/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-control-toolbox/recipe.yaml b/recipes/ros-jazzy-control-toolbox/recipe.yaml new file mode 100644 index 00000000..6cc22054 --- /dev/null +++ b/recipes/ros-jazzy-control-toolbox/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-control-toolbox + version: 4.0.0 +source: + git: https://github.com/ros2-gbp/control_toolbox-release.git + tag: release/jazzy/control_toolbox/4.0.0-1 + target_directory: ros-jazzy-control-toolbox/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-control-msgs + - ros-jazzy-filters + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcutils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - eigen + - python + - ros-jazzy-control-msgs + - ros-jazzy-filters + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rcutils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} +tests: + - script: + - cmake-package-check control_toolbox --targets control_toolbox::control_toolbox control_toolbox::rate_limiter control_toolbox::low_pass_filter + requirements: + run: + - cmake-package-check + - ${{ compiler('c') }} + - ${{ compiler('cxx') }} diff --git a/recipes/ros-jazzy-controller-interface/bld_ament_cmake.bat b/recipes/ros-jazzy-controller-interface/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-controller-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-controller-interface/build_ament_cmake.sh b/recipes/ros-jazzy-controller-interface/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-controller-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-controller-interface/patch/ros-jazzy-controller-interface.patch b/recipes/ros-jazzy-controller-interface/patch/ros-jazzy-controller-interface.patch new file mode 100644 index 00000000..c03f977c --- /dev/null +++ b/recipes/ros-jazzy-controller-interface/patch/ros-jazzy-controller-interface.patch @@ -0,0 +1,16 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 60b213cd5..3cb708ef9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,11 +1,6 @@ + cmake_minimum_required(VERSION 3.16) + project(controller_interface LANGUAGES CXX) + +-if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") +- add_compile_options(-Wall -Wextra -Werror=conversion -Werror=unused-but-set-variable -Werror=return-type -Werror=shadow +- -Werror=missing-braces) +-endif() +- + # using this instead of visibility macros + # S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) diff --git a/recipes/ros-jazzy-controller-interface/recipe.yaml b/recipes/ros-jazzy-controller-interface/recipe.yaml new file mode 100644 index 00000000..e4c34c64 --- /dev/null +++ b/recipes/ros-jazzy-controller-interface/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-controller-interface + version: 4.25.0 +source: + git: https://github.com/ros2-gbp/ros2_control-release.git + tag: release/jazzy/controller_interface/4.25.0-1 + target_directory: ros-jazzy-controller-interface/src/work + patches: + - patch/ros-jazzy-controller-interface.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-gen-version-h + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-hardware-interface + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-controller-manager-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-controller-manager-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-controller-manager-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-controller-manager-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-controller-manager-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-controller-manager-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-controller-manager-msgs/recipe.yaml b/recipes/ros-jazzy-controller-manager-msgs/recipe.yaml new file mode 100644 index 00000000..a9170a4b --- /dev/null +++ b/recipes/ros-jazzy-controller-manager-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-controller-manager-msgs + version: 4.25.0 +source: + git: https://github.com/ros2-gbp/ros2_control-release.git + tag: release/jazzy/controller_manager_msgs/4.25.0-1 + target_directory: ros-jazzy-controller-manager-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-lifecycle-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-lifecycle-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-controller-manager/bld_ament_cmake.bat b/recipes/ros-jazzy-controller-manager/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-controller-manager/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-controller-manager/build_ament_cmake.sh b/recipes/ros-jazzy-controller-manager/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-controller-manager/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-controller-manager/recipe.yaml b/recipes/ros-jazzy-controller-manager/recipe.yaml new file mode 100644 index 00000000..850873c4 --- /dev/null +++ b/recipes/ros-jazzy-controller-manager/recipe.yaml @@ -0,0 +1,130 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-controller-manager + version: 4.25.0 +source: + git: https://github.com/ros2-gbp/ros2_control-release.git + tag: release/jazzy/controller_manager/4.25.0-1 + target_directory: ros-jazzy-controller-manager/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - coverage + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gen-version-h + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-python + - ros-jazzy-backward-ros + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager-msgs + - ros-jazzy-diagnostic-updater + - ros-jazzy-example-interfaces + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-libstatistics-collector + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclpy + - ros-jazzy-rcpputils + - ros-jazzy-realtime-tools + - ros-jazzy-robot-state-publisher + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-ros2param + - ros-jazzy-ros2run + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager-msgs + - ros-jazzy-diagnostic-updater + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-libstatistics-collector + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rcpputils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-ros2param + - ros-jazzy-ros2run + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-costmap-queue/bld_ament_cmake.bat b/recipes/ros-jazzy-costmap-queue/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-costmap-queue/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-costmap-queue/build_ament_cmake.sh b/recipes/ros-jazzy-costmap-queue/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-costmap-queue/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-costmap-queue/recipe.yaml b/recipes/ros-jazzy-costmap-queue/recipe.yaml new file mode 100644 index 00000000..f28d3b46 --- /dev/null +++ b/recipes/ros-jazzy-costmap-queue/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-costmap-queue + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/costmap_queue/1.3.4-1 + target_directory: ros-jazzy-costmap-queue/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-nav2-common + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..380e58f6 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* 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..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-cyclonedds/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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..bded69ea --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..3cc4f4fd --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..c4fd6fa4 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..1d9e1402 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-depth-image-proc/bld_ament_cmake.bat b/recipes/ros-jazzy-depth-image-proc/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-depth-image-proc/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-depth-image-proc/build_ament_cmake.sh b/recipes/ros-jazzy-depth-image-proc/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-depth-image-proc/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-depth-image-proc/recipe.yaml b/recipes/ros-jazzy-depth-image-proc/recipe.yaml new file mode 100644 index 00000000..1182eaa0 --- /dev/null +++ b/recipes/ros-jazzy-depth-image-proc/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-depth-image-proc + version: 5.0.6 +source: + git: https://github.com/ros2-gbp/image_pipeline-release.git + tag: release/jazzy/depth_image_proc/5.0.6-1 + target_directory: ros-jazzy-depth-image-proc/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-auto + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-class-loader + - ros-jazzy-cv-bridge + - ros-jazzy-image-geometry + - ros-jazzy-image-proc + - ros-jazzy-image-transport + - ros-jazzy-message-filters + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-stereo-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - libopencv + - py-opencv + - python + - ros-jazzy-cv-bridge + - ros-jazzy-image-geometry + - ros-jazzy-image-proc + - ros-jazzy-image-transport + - ros-jazzy-message-filters + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-stereo-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* 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-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..9ce6e762 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* 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-full/bld_ament_cmake.bat b/recipes/ros-jazzy-desktop-full/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-desktop-full/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-full/build_ament_cmake.sh b/recipes/ros-jazzy-desktop-full/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-desktop-full/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-full/recipe.yaml b/recipes/ros-jazzy-desktop-full/recipe.yaml new file mode 100644 index 00000000..93f86ce1 --- /dev/null +++ b/recipes/ros-jazzy-desktop-full/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-desktop-full + version: 0.11.0 +source: + git: https://github.com/ros2-gbp/variants-release.git + tag: release/jazzy/desktop_full/0.11.0-1 + target_directory: ros-jazzy-desktop-full/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-desktop + - ros-jazzy-perception + - ros-jazzy-ros-gz-sim-demos + - ros-jazzy-ros-workspace + - ros-jazzy-simulation + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} 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..f2b98c0e --- /dev/null +++ b/recipes/ros-jazzy-desktop/recipe.yaml @@ -0,0 +1,129 @@ +# 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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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-pcl-conversions + - 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-diagnostic-aggregator/bld_ament_cmake.bat b/recipes/ros-jazzy-diagnostic-aggregator/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-diagnostic-aggregator/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-aggregator/build_ament_cmake.sh b/recipes/ros-jazzy-diagnostic-aggregator/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-diagnostic-aggregator/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-aggregator/recipe.yaml b/recipes/ros-jazzy-diagnostic-aggregator/recipe.yaml new file mode 100644 index 00000000..17cfa279 --- /dev/null +++ b/recipes/ros-jazzy-diagnostic-aggregator/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-diagnostic-aggregator + version: 4.2.1 +source: + git: https://github.com/ros2-gbp/diagnostics-release.git + tag: release/jazzy/diagnostic_aggregator/4.2.1-1 + target_directory: ros-jazzy-diagnostic-aggregator/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-cmake-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-diagnostic-msgs + - ros-jazzy-launch-pytest + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-launch-testing-ros + - ros-jazzy-pluginlib + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-diagnostic-common-diagnostics/bld_ament_cmake.bat b/recipes/ros-jazzy-diagnostic-common-diagnostics/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-diagnostic-common-diagnostics/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-common-diagnostics/build_ament_cmake.sh b/recipes/ros-jazzy-diagnostic-common-diagnostics/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-diagnostic-common-diagnostics/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-common-diagnostics/recipe.yaml b/recipes/ros-jazzy-diagnostic-common-diagnostics/recipe.yaml new file mode 100644 index 00000000..d4d42fd7 --- /dev/null +++ b/recipes/ros-jazzy-diagnostic-common-diagnostics/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-common-diagnostics + version: 4.2.1 +source: + git: https://github.com/ros2-gbp/diagnostics-release.git + tag: release/jazzy/diagnostic_common_diagnostics/4.2.1-1 + target_directory: ros-jazzy-diagnostic-common-diagnostics/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-lint-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ament-lint-auto + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - psutil + - python + - ros-jazzy-diagnostic-updater + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..5d71ee38 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-diagnostic-updater/bld_ament_cmake.bat b/recipes/ros-jazzy-diagnostic-updater/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-diagnostic-updater/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-updater/build_ament_cmake.sh b/recipes/ros-jazzy-diagnostic-updater/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-diagnostic-updater/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-updater/recipe.yaml b/recipes/ros-jazzy-diagnostic-updater/recipe.yaml new file mode 100644 index 00000000..3548f383 --- /dev/null +++ b/recipes/ros-jazzy-diagnostic-updater/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-diagnostic-updater + version: 4.2.1 +source: + git: https://github.com/ros2-gbp/diagnostics-release.git + tag: release/jazzy/diagnostic_updater/4.2.1-1 + target_directory: ros-jazzy-diagnostic-updater/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-diagnostic-msgs + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-diagnostic-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-diagnostics/bld_ament_cmake.bat b/recipes/ros-jazzy-diagnostics/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-diagnostics/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-diagnostics/build_ament_cmake.sh b/recipes/ros-jazzy-diagnostics/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-diagnostics/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-diagnostics/recipe.yaml b/recipes/ros-jazzy-diagnostics/recipe.yaml new file mode 100644 index 00000000..4ddc5b08 --- /dev/null +++ b/recipes/ros-jazzy-diagnostics/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-diagnostics + version: 4.2.1 +source: + git: https://github.com/ros2-gbp/diagnostics-release.git + tag: release/jazzy/diagnostics/4.2.1-1 + target_directory: ros-jazzy-diagnostics/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-diagnostic-aggregator + - ros-jazzy-diagnostic-common-diagnostics + - ros-jazzy-diagnostic-updater + - ros-jazzy-ros-workspace + - ros-jazzy-self-test + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-diff-drive-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-diff-drive-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-diff-drive-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-diff-drive-controller/build_ament_cmake.sh b/recipes/ros-jazzy-diff-drive-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-diff-drive-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-diff-drive-controller/recipe.yaml b/recipes/ros-jazzy-diff-drive-controller/recipe.yaml new file mode 100644 index 00000000..20fc8573 --- /dev/null +++ b/recipes/ros-jazzy-diff-drive-controller/recipe.yaml @@ -0,0 +1,115 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-diff-drive-controller + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/diff_drive_controller/4.20.0-1 + target_directory: ros-jazzy-diff-drive-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-control-toolbox + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcpputils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-tf2 + - ros-jazzy-tf2-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-control-toolbox + - ros-jazzy-controller-interface + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcpputils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-msgs + - ros2-distro-mutex 0.7.* 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..12b298cb --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..9796f607 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-nav-msgs + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..5dc7b493 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..984a5055 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-dwb-core/bld_ament_cmake.bat b/recipes/ros-jazzy-dwb-core/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-dwb-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-dwb-core/build_ament_cmake.sh b/recipes/ros-jazzy-dwb-core/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-dwb-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-dwb-core/recipe.yaml b/recipes/ros-jazzy-dwb-core/recipe.yaml new file mode 100644 index 00000000..80664a9f --- /dev/null +++ b/recipes/ros-jazzy-dwb-core/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-dwb-core + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/dwb_core/1.3.4-1 + target_directory: ros-jazzy-dwb-core/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-dwb-msgs + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-dwb-msgs + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-dwb-critics/bld_ament_cmake.bat b/recipes/ros-jazzy-dwb-critics/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-dwb-critics/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-dwb-critics/build_ament_cmake.sh b/recipes/ros-jazzy-dwb-critics/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-dwb-critics/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-dwb-critics/recipe.yaml b/recipes/ros-jazzy-dwb-critics/recipe.yaml new file mode 100644 index 00000000..27859264 --- /dev/null +++ b/recipes/ros-jazzy-dwb-critics/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-dwb-critics + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/dwb_critics/1.3.4-1 + target_directory: ros-jazzy-dwb-critics/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-angles + - ros-jazzy-costmap-queue + - ros-jazzy-dwb-core + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-nav2-common + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-angles + - ros-jazzy-costmap-queue + - ros-jazzy-dwb-core + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-dwb-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-dwb-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-dwb-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-dwb-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-dwb-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-dwb-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-dwb-msgs/recipe.yaml b/recipes/ros-jazzy-dwb-msgs/recipe.yaml new file mode 100644 index 00000000..291c3b81 --- /dev/null +++ b/recipes/ros-jazzy-dwb-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-dwb-msgs + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/dwb_msgs/1.3.4-1 + target_directory: ros-jazzy-dwb-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-geometry-msgs + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-dwb-plugins/bld_ament_cmake.bat b/recipes/ros-jazzy-dwb-plugins/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-dwb-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-dwb-plugins/build_ament_cmake.sh b/recipes/ros-jazzy-dwb-plugins/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-dwb-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-dwb-plugins/recipe.yaml b/recipes/ros-jazzy-dwb-plugins/recipe.yaml new file mode 100644 index 00000000..83c75ecb --- /dev/null +++ b/recipes/ros-jazzy-dwb-plugins/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-dwb-plugins + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/dwb_plugins/1.3.4-1 + target_directory: ros-jazzy-dwb-plugins/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-angles + - ros-jazzy-dwb-core + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-nav2-common + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-angles + - ros-jazzy-dwb-core + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-effort-controllers/bld_ament_cmake.bat b/recipes/ros-jazzy-effort-controllers/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-effort-controllers/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-effort-controllers/build_ament_cmake.sh b/recipes/ros-jazzy-effort-controllers/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-effort-controllers/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-effort-controllers/recipe.yaml b/recipes/ros-jazzy-effort-controllers/recipe.yaml new file mode 100644 index 00000000..3972cd21 --- /dev/null +++ b/recipes/ros-jazzy-effort-controllers/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-effort-controllers + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/effort_controllers/4.20.0-1 + target_directory: ros-jazzy-effort-controllers/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-controller-manager + - ros-jazzy-forward-command-controller + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-forward-command-controller + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-eigen-stl-containers/bld_ament_cmake.bat b/recipes/ros-jazzy-eigen-stl-containers/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-eigen-stl-containers/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-eigen-stl-containers/build_ament_cmake.sh b/recipes/ros-jazzy-eigen-stl-containers/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-eigen-stl-containers/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-eigen-stl-containers/recipe.yaml b/recipes/ros-jazzy-eigen-stl-containers/recipe.yaml new file mode 100644 index 00000000..5062016f --- /dev/null +++ b/recipes/ros-jazzy-eigen-stl-containers/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-eigen-stl-containers + version: 1.1.0 +source: + git: https://github.com/ros2-gbp/eigen_stl_containers-release.git + tag: release/jazzy/eigen_stl_containers/1.1.0-1 + target_directory: ros-jazzy-eigen-stl-containers/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - eigen + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..119ced0a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..60fac65a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* 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..6bf7e3ef --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..6cee29bb --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..7851dadc --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..5f3b7efd --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..240615cd --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..0b2f7875 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..796d8349 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..006c2699 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..61160f9b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..8e7e2962 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..83a71ec7 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-example-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..ca6e8ef5 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..e7da65f1 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..9cc4adf0 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..b3629834 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-example-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..d30a2d7c --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-fastcdr/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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..9a6fabe3 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..8740155b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-fastrtps/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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..0a014c8e --- /dev/null +++ b/recipes/ros-jazzy-fastrtps/patch/ros-jazzy-fastrtps.patch @@ -0,0 +1,43 @@ +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 +diff --git a/tools/fds/CMakeLists.txt b/tools/fds/CMakeLists.txt +index 899fe693..f1e7e37d 100644 +--- a/tools/fds/CMakeLists.txt ++++ b/tools/fds/CMakeLists.txt +@@ -116,7 +116,7 @@ install(EXPORT ${PROJECT_NAME}-targets + if( WIN32 ) + # Use powershell to generate the link + install( +- CODE "execute_process( COMMAND PowerShell -Command \"if( test-path ${PROJECT_NAME}.exe -PathType Leaf ) { rm ${PROJECT_NAME}.exe } ; New-Item -ItemType SymbolicLink -Target $ -Path ${PROJECT_NAME}.exe \" ERROR_QUIET RESULTS_VARIABLE SYMLINK_FAILED WORKING_DIRECTORY \"${CMAKE_INSTALL_PREFIX}/${BIN_INSTALL_DIR}\") \n if( SYMLINK_FAILED ) \n message(STATUS \"Windows requires admin installation rights to create symlinks. A bat script will be provided instead.\") \n set(FAST_SERVER_BINARY_NAME $) \n configure_file(${CMAKE_CURRENT_LIST_DIR}/fast-discovery-server.bat.in ${CMAKE_INSTALL_PREFIX}/${BIN_INSTALL_DIR}${MSVCARCH_DIR_EXTENSION}/${PROJECT_NAME}.bat @ONLY) \n endif()" ++ CODE "execute_process( COMMAND PowerShell -Command \"if( test-path ${PROJECT_NAME}.exe -PathType Leaf ) { rm ${PROJECT_NAME}.exe } ; New-Item -ItemType HardLink -Target $ -Path ${PROJECT_NAME}.exe \" ERROR_QUIET RESULTS_VARIABLE SYMLINK_FAILED WORKING_DIRECTORY \"${CMAKE_INSTALL_PREFIX}/${BIN_INSTALL_DIR}\") \n if( SYMLINK_FAILED ) \n message(STATUS \"Windows requires admin installation rights to create symlinks. A bat script will be provided instead.\") \n set(FAST_SERVER_BINARY_NAME $) \n configure_file(${CMAKE_CURRENT_LIST_DIR}/fast-discovery-server.bat.in ${CMAKE_INSTALL_PREFIX}/${BIN_INSTALL_DIR}${MSVCARCH_DIR_EXTENSION}/${PROJECT_NAME}.bat @ONLY) \n endif()" + COMPONENT discovery) + else() + # Use ln to create the symbolic link. We remove the version from the file name but keep the debug suffix diff --git a/recipes/ros-jazzy-fastrtps/recipe.yaml b/recipes/ros-jazzy-fastrtps/recipe.yaml new file mode 100644 index 00000000..fa71eba1 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - 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.7.* jazzy_* + - tinyxml2 + run: + - openssl + - python + - ros-jazzy-fastcdr + - ros-jazzy-foonathan-memory-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - tinyxml2 + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-filters/bld_ament_cmake.bat b/recipes/ros-jazzy-filters/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-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-filters/build_ament_cmake.sh b/recipes/ros-jazzy-filters/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-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-filters/recipe.yaml b/recipes/ros-jazzy-filters/recipe.yaml new file mode 100644 index 00000000..d70a6e0e --- /dev/null +++ b/recipes/ros-jazzy-filters/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-filters + version: 2.1.2 +source: + git: https://github.com/ros2-gbp/filters-release.git + tag: release/jazzy/filters/2.1.2-2 + target_directory: ros-jazzy-filters/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - 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-uncrustify + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - libboost-devel + - python + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-flex-sync/bld_ament_cmake.bat b/recipes/ros-jazzy-flex-sync/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-flex-sync/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-flex-sync/build_ament_cmake.sh b/recipes/ros-jazzy-flex-sync/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-flex-sync/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-flex-sync/recipe.yaml b/recipes/ros-jazzy-flex-sync/recipe.yaml new file mode 100644 index 00000000..a8a1e900 --- /dev/null +++ b/recipes/ros-jazzy-flex-sync/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-flex-sync + version: 2.0.0 +source: + git: https://github.com/ros2-gbp/flex_sync-release.git + tag: release/jazzy/flex_sync/2.0.0-1 + target_directory: ros-jazzy-flex-sync/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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 + - ros-jazzy-ament-cmake-clang-format + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-geometry-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake-clang-format + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - 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..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-foonathan-memory-vendor/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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..43b9e5a6 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - cmake + - foonathan-memory + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-force-torque-sensor-broadcaster/bld_ament_cmake.bat b/recipes/ros-jazzy-force-torque-sensor-broadcaster/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-force-torque-sensor-broadcaster/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-force-torque-sensor-broadcaster/build_ament_cmake.sh b/recipes/ros-jazzy-force-torque-sensor-broadcaster/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-force-torque-sensor-broadcaster/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-force-torque-sensor-broadcaster/recipe.yaml b/recipes/ros-jazzy-force-torque-sensor-broadcaster/recipe.yaml new file mode 100644 index 00000000..9a961592 --- /dev/null +++ b/recipes/ros-jazzy-force-torque-sensor-broadcaster/recipe.yaml @@ -0,0 +1,108 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-force-torque-sensor-broadcaster + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/force_torque_sensor_broadcaster/4.20.0-1 + target_directory: ros-jazzy-force-torque-sensor-broadcaster/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - jinja2 + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-backward-ros + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros2-distro-mutex 0.7.* jazzy_* + - typeguard + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-controller-interface + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-forward-command-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-forward-command-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-forward-command-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-forward-command-controller/build_ament_cmake.sh b/recipes/ros-jazzy-forward-command-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-forward-command-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-forward-command-controller/recipe.yaml b/recipes/ros-jazzy-forward-command-controller/recipe.yaml new file mode 100644 index 00000000..adc9536e --- /dev/null +++ b/recipes/ros-jazzy-forward-command-controller/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-forward-command-controller + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/forward_command_controller/4.20.0-1 + target_directory: ros-jazzy-forward-command-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-controller-interface + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-generate-parameter-library-py/bld_ament_python.bat b/recipes/ros-jazzy-generate-parameter-library-py/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-generate-parameter-library-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-generate-parameter-library-py/build_ament_python.sh b/recipes/ros-jazzy-generate-parameter-library-py/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-generate-parameter-library-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-generate-parameter-library-py/recipe.yaml b/recipes/ros-jazzy-generate-parameter-library-py/recipe.yaml new file mode 100644 index 00000000..af10b658 --- /dev/null +++ b/recipes/ros-jazzy-generate-parameter-library-py/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-generate-parameter-library-py + version: 0.4.0 +source: + git: https://github.com/ros2-gbp/generate_parameter_library-release.git + tag: release/jazzy/generate_parameter_library_py/0.4.0-1 + target_directory: ros-jazzy-generate-parameter-library-py/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - jinja2 + - numpy + - pip + - pytest + - python + - pyyaml + - ros-jazzy-ament-copyright + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - setuptools + - typeguard + run: + - jinja2 + - python + - pyyaml + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - typeguard + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-generate-parameter-library/bld_ament_cmake.bat b/recipes/ros-jazzy-generate-parameter-library/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-generate-parameter-library/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-generate-parameter-library/build_ament_cmake.sh b/recipes/ros-jazzy-generate-parameter-library/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-generate-parameter-library/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-generate-parameter-library/recipe.yaml b/recipes/ros-jazzy-generate-parameter-library/recipe.yaml new file mode 100644 index 00000000..81838ec3 --- /dev/null +++ b/recipes/ros-jazzy-generate-parameter-library/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-generate-parameter-library + version: 0.4.0 +source: + git: https://github.com/ros2-gbp/generate_parameter_library-release.git + tag: release/jazzy/generate_parameter_library/0.4.0-1 + target_directory: ros-jazzy-generate-parameter-library/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - fmt + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-generate-parameter-library-py + - ros-jazzy-parameter-traits + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rsl + - ros-jazzy-tcb-span + - ros-jazzy-tl-expected + - ros2-distro-mutex 0.7.* jazzy_* + run: + - fmt + - python + - ros-jazzy-generate-parameter-library-py + - ros-jazzy-parameter-traits + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rsl + - ros-jazzy-tcb-span + - ros-jazzy-tl-expected + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-geographic-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-geographic-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-geographic-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-geographic-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-geographic-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-geographic-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-geographic-msgs/recipe.yaml b/recipes/ros-jazzy-geographic-msgs/recipe.yaml new file mode 100644 index 00000000..51b58604 --- /dev/null +++ b/recipes/ros-jazzy-geographic-msgs/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-geographic-msgs + version: 1.0.6 +source: + git: https://github.com/ros2-gbp/geographic_info-release.git + tag: release/jazzy/geographic_msgs/1.0.6-2 + target_directory: ros-jazzy-geographic-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-cppcheck + - ros-jazzy-ament-cmake-cpplint + - 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-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros-jazzy-unique-identifier-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros-jazzy-unique-identifier-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-geometric-shapes/bld_ament_cmake.bat b/recipes/ros-jazzy-geometric-shapes/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-geometric-shapes/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-geometric-shapes/build_ament_cmake.sh b/recipes/ros-jazzy-geometric-shapes/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-geometric-shapes/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-geometric-shapes/patch/ros-jazzy-geometric-shapes.patch b/recipes/ros-jazzy-geometric-shapes/patch/ros-jazzy-geometric-shapes.patch new file mode 100644 index 00000000..d9887372 --- /dev/null +++ b/recipes/ros-jazzy-geometric-shapes/patch/ros-jazzy-geometric-shapes.patch @@ -0,0 +1,22 @@ +From d236b8e9172705076e1c0aba34940307a925d3e2 Mon Sep 17 00:00:00 2001 +From: Silvio Traversaro +Date: Wed, 18 Dec 2024 13:50:38 +0100 +Subject: [PATCH] Drop apt-specific workaround on the octomap version + +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8c46189..277356c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -45,7 +45,7 @@ find_package(eigen_stl_containers REQUIRED) + find_package(geometry_msgs REQUIRED) + # Enforce the system package version on Ubuntu jammy and noble which is also used by libfcl-dev + # The version is fixed to prevent ABI conflicts with ros-octomap +-find_package(octomap 1.9.7...<1.10.0 REQUIRED) ++find_package(octomap REQUIRED) + find_package(QHULL REQUIRED) + find_package(random_numbers REQUIRED) + find_package(rclcpp REQUIRED) diff --git a/recipes/ros-jazzy-geometric-shapes/recipe.yaml b/recipes/ros-jazzy-geometric-shapes/recipe.yaml new file mode 100644 index 00000000..1b1a37c1 --- /dev/null +++ b/recipes/ros-jazzy-geometric-shapes/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-geometric-shapes + version: 2.3.2 +source: + git: https://github.com/ros2-gbp/geometric_shapes-release.git + tag: release/jazzy/geometric_shapes/2.3.2-1 + target_directory: ros-jazzy-geometric-shapes/src/work + patches: + - patch/ros-jazzy-geometric-shapes.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - 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 + - eigen + - fcl + - libboost-devel + - numpy + - octomap + - pip + - pkg-config + - python + - qhull + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-cmake + - ros-jazzy-console-bridge-vendor + - ros-jazzy-eigen-stl-containers + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-geometry-msgs + - ros-jazzy-random-numbers + - ros-jazzy-rclcpp + - ros-jazzy-resource-retriever + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-shape-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - assimp + - eigen + - libboost + - libboost-devel + - python + - qhull + - ros-jazzy-console-bridge-vendor + - ros-jazzy-eigen-stl-containers + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-geometry-msgs + - ros-jazzy-random-numbers + - ros-jazzy-rclcpp + - ros-jazzy-resource-retriever + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-shape-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* 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..20bfe234 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..84d844ac --- /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.8 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/geometry2/0.36.8-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-gmock-vendor/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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..ccd54823 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-gtest-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-google-benchmark-vendor/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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..5d79f4fd --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - 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.7.* jazzy_* + run: + - benchmark + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gpio-controllers/bld_ament_cmake.bat b/recipes/ros-jazzy-gpio-controllers/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gpio-controllers/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gpio-controllers/build_ament_cmake.sh b/recipes/ros-jazzy-gpio-controllers/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gpio-controllers/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gpio-controllers/recipe.yaml b/recipes/ros-jazzy-gpio-controllers/recipe.yaml new file mode 100644 index 00000000..7c6088e9 --- /dev/null +++ b/recipes/ros-jazzy-gpio-controllers/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-gpio-controllers + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/gpio_controllers/4.20.0-1 + target_directory: ros-jazzy-gpio-controllers/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..888c6722 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-graph-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-graph-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-graph-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-graph-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-graph-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-graph-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-graph-msgs/recipe.yaml b/recipes/ros-jazzy-graph-msgs/recipe.yaml new file mode 100644 index 00000000..057f1b86 --- /dev/null +++ b/recipes/ros-jazzy-graph-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-graph-msgs + version: 0.2.0 +source: + git: https://github.com/ros2-gbp/graph_msgs-release.git + tag: release/jazzy/graph_msgs/0.2.0-6 + target_directory: ros-jazzy-graph-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gripper-controllers/bld_ament_cmake.bat b/recipes/ros-jazzy-gripper-controllers/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gripper-controllers/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-gripper-controllers/build_ament_cmake.sh b/recipes/ros-jazzy-gripper-controllers/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gripper-controllers/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-gripper-controllers/recipe.yaml b/recipes/ros-jazzy-gripper-controllers/recipe.yaml new file mode 100644 index 00000000..098ee2de --- /dev/null +++ b/recipes/ros-jazzy-gripper-controllers/recipe.yaml @@ -0,0 +1,108 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gripper-controllers + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/gripper_controllers/4.20.0-1 + target_directory: ros-jazzy-gripper-controllers/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-control-toolbox + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-control-toolbox + - ros-jazzy-controller-interface + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-gtest-vendor/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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..0bc5d685 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-gtsam/bld_catkin.bat b/recipes/ros-jazzy-gtsam/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-gtsam/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-gtsam/build_catkin.sh b/recipes/ros-jazzy-gtsam/build_catkin.sh new file mode 100755 index 00000000..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-gtsam/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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-gtsam/recipe.yaml b/recipes/ros-jazzy-gtsam/recipe.yaml new file mode 100644 index 00000000..a1298393 --- /dev/null +++ b/recipes/ros-jazzy-gtsam/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-gtsam + version: 4.2.0 +source: + git: https://github.com/ros2-gbp/gtsam-release.git + tag: release/jazzy/gtsam/4.2.0-4 + target_directory: ros-jazzy-gtsam/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - libboost-devel + - libboost-python-devel + - numpy + - pip + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - tbb + - tbb-devel + run: + - eigen + - libboost-devel + - libboost-python-devel + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - tbb + - tbb-devel + - 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..b7604419 --- /dev/null +++ b/recipes/ros-jazzy-gz-cmake-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-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - 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-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - gz-cmake3 + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..5c523ab6 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - 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.7.* 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.7.* 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..afd73db0 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - 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.7.* 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.7.* 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..aa384a0d --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* 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..58885031 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..843585dd --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* jazzy_* + run: + - eigen + - gz-math7 + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-gz-utils-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..d29536a3 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* 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..653d83e8 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - 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.7.* jazzy_* + - sdl2 + - shaderc + - tbb + - tbb-devel + - tinyxml2 + - xorg-libx11 + - xorg-libxaw + - xorg-libxrandr + - xorg-xorgproto + - zziplib + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - freeimage + - freetype + - glslang + - libboost-devel + - ogre-next + - poco + - python + - rapidjson + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - sdl2 + - shaderc + - tbb + - tbb-devel + - tinyxml2 + - xorg-libx11 + - xorg-libxaw + - xorg-libxrandr + - 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..274e49b4 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - 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.7.* 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.7.* 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..6649ed9b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* 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..d9db61d0 --- /dev/null +++ b/recipes/ros-jazzy-gz-rendering-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-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - glew + - gz-rendering8 + - 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.7.* jazzy_* + - swig + - xorg-libxi + - xorg-libxmu + run: + - freeimage + - glew + - gz-rendering8 + - 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.7.* 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-ros2-control-demos/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-ros2-control-demos/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-ros2-control-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-gz-ros2-control-demos/build_ament_cmake.sh b/recipes/ros-jazzy-gz-ros2-control-demos/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-ros2-control-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-gz-ros2-control-demos/recipe.yaml b/recipes/ros-jazzy-gz-ros2-control-demos/recipe.yaml new file mode 100644 index 00000000..0373e47a --- /dev/null +++ b/recipes/ros-jazzy-gz-ros2-control-demos/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-gz-ros2-control-demos + version: 1.2.10 +source: + git: https://github.com/ros2-gbp/ign_ros2_control-release.git + tag: release/jazzy/gz_ros2_control_demos/1.2.10-1 + target_directory: ros-jazzy-gz-ros2-control-demos/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-control-msgs + - ros-jazzy-geometry-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-ackermann-steering-controller + - ros-jazzy-ament-index-python + - ros-jazzy-control-msgs + - ros-jazzy-diff-drive-controller + - ros-jazzy-effort-controllers + - ros-jazzy-geometry-msgs + - ros-jazzy-gz-ros2-control + - ros-jazzy-hardware-interface + - ros-jazzy-imu-sensor-broadcaster + - ros-jazzy-joint-state-broadcaster + - ros-jazzy-joint-trajectory-controller + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-mecanum-drive-controller + - ros-jazzy-rclcpp + - ros-jazzy-robot-state-publisher + - ros-jazzy-ros-gz-bridge + - ros-jazzy-ros-gz-sim + - ros-jazzy-ros-workspace + - ros-jazzy-ros2controlcli + - ros-jazzy-ros2launch + - ros-jazzy-std-msgs + - ros-jazzy-tricycle-controller + - ros-jazzy-velocity-controllers + - ros-jazzy-xacro + - ros2-distro-mutex 0.7.* 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-gz-ros2-control/bld_ament_cmake.bat b/recipes/ros-jazzy-gz-ros2-control/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-gz-ros2-control/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-ros2-control/build_ament_cmake.sh b/recipes/ros-jazzy-gz-ros2-control/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-gz-ros2-control/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-ros2-control/patch/ros-jazzy-gz-ros2-control.osx.patch b/recipes/ros-jazzy-gz-ros2-control/patch/ros-jazzy-gz-ros2-control.osx.patch new file mode 100644 index 00000000..b0c68645 --- /dev/null +++ b/recipes/ros-jazzy-gz-ros2-control/patch/ros-jazzy-gz-ros2-control.osx.patch @@ -0,0 +1,17 @@ +diff --git a/gz_ros2_control/CMakeLists.txt b/gz_ros2_control/CMakeLists.txt +index 196f62d5..a7bdfd01 100644 +--- a/gz_ros2_control/CMakeLists.txt ++++ b/gz_ros2_control/CMakeLists.txt +@@ -24,6 +24,12 @@ find_package(pluginlib REQUIRED) + find_package(rclcpp REQUIRED) + find_package(yaml_cpp_vendor REQUIRED) + ++# Compatibility with https://github.com/gazebosim/gz-cmake/blob/eb1c510e6278935eb742ed92c6a6d1388439f8bd/cmake/FindTINYXML2.cmake#L4 ++if(NOT TARGET TINYXML2::TINYXML2) ++ add_library(TINYXML2::TINYXML2 INTERFACE IMPORTED) ++ set_property(TARGET tinyxml2::tinyxml2 PROPERTY INTERFACE_LINK_LIBRARIES tinyxml2::tinyxml2) ++endif() ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + find_package(gz_sim_vendor REQUIRED) + find_package(gz-sim REQUIRED) + diff --git a/recipes/ros-jazzy-gz-ros2-control/recipe.yaml b/recipes/ros-jazzy-gz-ros2-control/recipe.yaml new file mode 100644 index 00000000..c61b143b --- /dev/null +++ b/recipes/ros-jazzy-gz-ros2-control/recipe.yaml @@ -0,0 +1,118 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-gz-ros2-control + version: 1.2.10 +source: + git: https://github.com/ros2-gbp/ign_ros2_control-release.git + tag: release/jazzy/gz_ros2_control/1.2.10-1 + target_directory: ros-jazzy-gz-ros2-control/src/work + patches: + - patch/ros-jazzy-gz-ros2-control.osx.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-controller-manager + - ros-jazzy-gz-plugin-vendor + - ros-jazzy-gz-sim-vendor + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-controller-manager + - ros-jazzy-gz-plugin-vendor + - ros-jazzy-gz-sim-vendor + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.7.* 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-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..0e9d2ad7 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* 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..3b197983 --- /dev/null +++ b/recipes/ros-jazzy-gz-sim-vendor/recipe.yaml @@ -0,0 +1,160 @@ +# 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.7 +source: + git: https://github.com/ros2-gbp/gz_sim_vendor-release.git + tag: release/jazzy/gz_sim_vendor/0.0.7-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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 + - 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.7.* jazzy_* + - tinyxml2 + - xorg-libxi + - xorg-libxmu + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - benchmark + - 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.7.* 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..939eb760 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - gz-tools2 + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..a44d0a9d --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..74c9b246 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - gz-utils2 + - python + - ros-jazzy-gz-cmake-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-hardware-interface-testing/bld_ament_cmake.bat b/recipes/ros-jazzy-hardware-interface-testing/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-hardware-interface-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-hardware-interface-testing/build_ament_cmake.sh b/recipes/ros-jazzy-hardware-interface-testing/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-hardware-interface-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-hardware-interface-testing/recipe.yaml b/recipes/ros-jazzy-hardware-interface-testing/recipe.yaml new file mode 100644 index 00000000..164ca49b --- /dev/null +++ b/recipes/ros-jazzy-hardware-interface-testing/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-hardware-interface-testing + version: 4.25.0 +source: + git: https://github.com/ros2-gbp/ros2_control-release.git + tag: release/jazzy/hardware_interface_testing/4.25.0-1 + target_directory: ros-jazzy-hardware-interface-testing/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-control-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-lifecycle-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-control-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-lifecycle-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-hardware-interface/bld_ament_cmake.bat b/recipes/ros-jazzy-hardware-interface/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-hardware-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-hardware-interface/build_ament_cmake.sh b/recipes/ros-jazzy-hardware-interface/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-hardware-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-hardware-interface/patch/ros-jazzy-hardware-interface.unix.patch b/recipes/ros-jazzy-hardware-interface/patch/ros-jazzy-hardware-interface.unix.patch new file mode 100644 index 00000000..9a80fd02 --- /dev/null +++ b/recipes/ros-jazzy-hardware-interface/patch/ros-jazzy-hardware-interface.unix.patch @@ -0,0 +1,42 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b4e0f6cab..896175fad 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,11 +1,6 @@ + cmake_minimum_required(VERSION 3.16) + project(hardware_interface LANGUAGES CXX) + +-if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") +- add_compile_options(-Wall -Wextra -Werror=conversion -Werror=unused-but-set-variable -Werror=return-type -Werror=shadow +- -Werror=missing-braces) +-endif() +- + # using this instead of visibility macros + # S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +diff --git a/include/hardware_interface/async_components.hpp b/include/hardware_interface/async_components.hpp +index 052c4ba92..85efed01f 100644 +--- a/include/hardware_interface/async_components.hpp ++++ b/include/hardware_interface/async_components.hpp +@@ -82,7 +82,11 @@ public: + { + auto const period = std::chrono::nanoseconds(1'000'000'000 / cm_update_rate_); + TimePoint next_iteration_time = +- TimePoint(std::chrono::nanoseconds(clock_interface_->get_clock()->now().nanoseconds())); ++ TimePoint(std::chrono::system_clock::time_point( ++ std::chrono::duration_cast( ++ std::chrono::nanoseconds(clock_interface_->get_clock()->now().nanoseconds()) ++ ) ++ )); + + if ( + component->get_lifecycle_state().id() == +@@ -99,7 +103,7 @@ public: + component->read(clock_interface_->get_clock()->now(), measured_period); + first_iteration = false; + } +- next_iteration_time += period; ++ next_iteration_time += std::chrono::duration_cast(period); + std::this_thread::sleep_until(next_iteration_time); + } + }, diff --git a/recipes/ros-jazzy-hardware-interface/recipe.yaml b/recipes/ros-jazzy-hardware-interface/recipe.yaml new file mode 100644 index 00000000..0b7a4ace --- /dev/null +++ b/recipes/ros-jazzy-hardware-interface/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-hardware-interface + version: 4.25.0 +source: + git: https://github.com/ros2-gbp/ros2_control-release.git + tag: release/jazzy/hardware_interface/4.25.0-1 + target_directory: ros-jazzy-hardware-interface/src/work + patches: + - patch/ros-jazzy-hardware-interface.unix.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-gen-version-h + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-joint-limits + - ros-jazzy-lifecycle-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-sdformat-urdf + - ros-jazzy-tinyxml2-vendor + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-joint-limits + - ros-jazzy-lifecycle-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-sdformat-urdf + - ros-jazzy-tinyxml2-vendor + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* 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..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-iceoryx-binding-c/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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..a44391b6 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-iceoryx-hoofs/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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..8fb59d3a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-iceoryx-posh/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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..3b4eabd4 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-iceoryx-hoofs + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-image-common/bld_ament_cmake.bat b/recipes/ros-jazzy-image-common/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-image-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-image-common/build_ament_cmake.sh b/recipes/ros-jazzy-image-common/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-image-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-image-common/recipe.yaml b/recipes/ros-jazzy-image-common/recipe.yaml new file mode 100644 index 00000000..aeeed9f5 --- /dev/null +++ b/recipes/ros-jazzy-image-common/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-image-common + version: 5.1.5 +source: + git: https://github.com/ros2-gbp/image_common-release.git + tag: release/jazzy/image_common/5.1.5-1 + target_directory: ros-jazzy-image-common/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-camera-calibration-parsers + - ros-jazzy-camera-info-manager + - ros-jazzy-image-transport + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..c893893c --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* 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-pipeline/bld_ament_cmake.bat b/recipes/ros-jazzy-image-pipeline/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-image-pipeline/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-pipeline/build_ament_cmake.sh b/recipes/ros-jazzy-image-pipeline/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-image-pipeline/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-pipeline/recipe.yaml b/recipes/ros-jazzy-image-pipeline/recipe.yaml new file mode 100644 index 00000000..c3f12e4a --- /dev/null +++ b/recipes/ros-jazzy-image-pipeline/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-image-pipeline + version: 5.0.6 +source: + git: https://github.com/ros2-gbp/image_pipeline-release.git + tag: release/jazzy/image_pipeline/5.0.6-1 + target_directory: ros-jazzy-image-pipeline/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-lint-cmake + - ros-jazzy-ament-cmake-xmllint + - ros-jazzy-ament-lint-auto + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-camera-calibration + - ros-jazzy-depth-image-proc + - ros-jazzy-image-proc + - ros-jazzy-image-publisher + - ros-jazzy-image-rotate + - ros-jazzy-image-view + - ros-jazzy-ros-workspace + - ros-jazzy-stereo-image-proc + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-image-proc/bld_ament_cmake.bat b/recipes/ros-jazzy-image-proc/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-image-proc/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-proc/build_ament_cmake.sh b/recipes/ros-jazzy-image-proc/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-image-proc/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-proc/patch/ros-jazzy-image-proc.patch b/recipes/ros-jazzy-image-proc/patch/ros-jazzy-image-proc.patch new file mode 100644 index 00000000..1e0f6721 --- /dev/null +++ b/recipes/ros-jazzy-image-proc/patch/ros-jazzy-image-proc.patch @@ -0,0 +1,37 @@ +diff --git a/include/image_proc/track_marker.hpp b/include/image_proc/track_marker.hpp +index 6c212913..f6366c35 100644 +--- a/include/image_proc/track_marker.hpp ++++ b/include/image_proc/track_marker.hpp +@@ -61,8 +61,7 @@ private: + std::string image_topic_; + rclcpp::Publisher::SharedPtr pub_; + +- cv::Ptr detector_params_; +- cv::Ptr dictionary_; ++ cv::aruco::Dictionary dictionary_; + + void imageCb( + const sensor_msgs::msg::Image::ConstSharedPtr & image_msg, +diff --git a/src/track_marker.cpp b/src/track_marker.cpp +index 86177438..8fee7a36 100644 +--- a/src/track_marker.cpp ++++ b/src/track_marker.cpp +@@ -66,7 +66,6 @@ TrackMarkerNode::TrackMarkerNode(const rclcpp::NodeOptions & options) + // Default dictionary is cv::aruco::DICT_6X6_250 + int dict_id = this->declare_parameter("dictionary", 10); + +- detector_params_ = cv::aruco::DetectorParameters::create(); + dictionary_ = cv::aruco::getPredefinedDictionary(dict_id); + + // Setup lazy subscriber using publisher connection callback +@@ -108,7 +107,9 @@ void TrackMarkerNode::imageCb( + + std::vector marker_ids; + std::vector> marker_corners; +- cv::aruco::detectMarkers(cv_ptr->image, dictionary_, marker_corners, marker_ids); ++ cv::Ptr dictionaryPtr = cv::makePtr(dictionary_); ++ const cv::Ptr constDictionaryPtr = dictionaryPtr; ++ cv::aruco::detectMarkers(cv_ptr->image, constDictionaryPtr, marker_corners, marker_ids); + + for (size_t i = 0; i < marker_ids.size(); ++i) { + if (marker_ids[i] == marker_id_) { diff --git a/recipes/ros-jazzy-image-proc/recipe.yaml b/recipes/ros-jazzy-image-proc/recipe.yaml new file mode 100644 index 00000000..459c764a --- /dev/null +++ b/recipes/ros-jazzy-image-proc/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-image-proc + version: 5.0.6 +source: + git: https://github.com/ros2-gbp/image_pipeline-release.git + tag: release/jazzy/image_proc/5.0.6-1 + target_directory: ros-jazzy-image-proc/src/work + patches: + - patch/ros-jazzy-image-proc.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-auto + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-camera-calibration-parsers + - ros-jazzy-cv-bridge + - ros-jazzy-geometry-msgs + - ros-jazzy-image-geometry + - ros-jazzy-image-transport + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcutils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tracetools-image-pipeline + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - libopencv + - py-opencv + - python + - ros-jazzy-camera-calibration-parsers + - ros-jazzy-cv-bridge + - ros-jazzy-geometry-msgs + - ros-jazzy-image-geometry + - ros-jazzy-image-transport + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tracetools-image-pipeline + - ros2-distro-mutex 0.7.* 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-publisher/bld_ament_cmake.bat b/recipes/ros-jazzy-image-publisher/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-image-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-image-publisher/build_ament_cmake.sh b/recipes/ros-jazzy-image-publisher/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-image-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-image-publisher/recipe.yaml b/recipes/ros-jazzy-image-publisher/recipe.yaml new file mode 100644 index 00000000..93a71d26 --- /dev/null +++ b/recipes/ros-jazzy-image-publisher/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-image-publisher + version: 5.0.6 +source: + git: https://github.com/ros2-gbp/image_pipeline-release.git + tag: release/jazzy/image_publisher/5.0.6-1 + target_directory: ros-jazzy-image-publisher/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-auto + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-camera-info-manager + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-camera-info-manager + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-image-rotate/bld_ament_cmake.bat b/recipes/ros-jazzy-image-rotate/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-image-rotate/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-rotate/build_ament_cmake.sh b/recipes/ros-jazzy-image-rotate/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-image-rotate/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-rotate/recipe.yaml b/recipes/ros-jazzy-image-rotate/recipe.yaml new file mode 100644 index 00000000..fa1fac8d --- /dev/null +++ b/recipes/ros-jazzy-image-rotate/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-image-rotate + version: 5.0.6 +source: + git: https://github.com/ros2-gbp/image_pipeline-release.git + tag: release/jazzy/image_rotate/5.0.6-1 + target_directory: ros-jazzy-image-rotate/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-auto + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-class-loader + - ros-jazzy-cv-bridge + - ros-jazzy-geometry-msgs + - ros-jazzy-image-transport + - 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-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - libopencv + - py-opencv + - python + - ros-jazzy-cv-bridge + - ros-jazzy-geometry-msgs + - ros-jazzy-image-transport + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* 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..c13dfe6f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* 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..d41df7a1 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..e4787ea4 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-image-view/bld_ament_cmake.bat b/recipes/ros-jazzy-image-view/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-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-image-view/build_ament_cmake.sh b/recipes/ros-jazzy-image-view/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-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-image-view/recipe.yaml b/recipes/ros-jazzy-image-view/recipe.yaml new file mode 100644 index 00000000..143d984e --- /dev/null +++ b/recipes/ros-jazzy-image-view/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-view + version: 5.0.6 +source: + git: https://github.com/ros2-gbp/image_pipeline-release.git + tag: release/jazzy/image_view/5.0.6-1 + target_directory: ros-jazzy-image-view/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-auto + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-camera-calibration-parsers + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-message-filters + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-srvs + - ros-jazzy-stereo-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-camera-calibration-parsers + - ros-jazzy-cv-bridge + - ros-jazzy-image-transport + - ros-jazzy-message-filters + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-srvs + - ros-jazzy-stereo-msgs + - ros2-distro-mutex 0.7.* 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-imu-sensor-broadcaster/bld_ament_cmake.bat b/recipes/ros-jazzy-imu-sensor-broadcaster/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-imu-sensor-broadcaster/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-imu-sensor-broadcaster/build_ament_cmake.sh b/recipes/ros-jazzy-imu-sensor-broadcaster/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-imu-sensor-broadcaster/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-imu-sensor-broadcaster/recipe.yaml b/recipes/ros-jazzy-imu-sensor-broadcaster/recipe.yaml new file mode 100644 index 00000000..b3d4801a --- /dev/null +++ b/recipes/ros-jazzy-imu-sensor-broadcaster/recipe.yaml @@ -0,0 +1,108 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-imu-sensor-broadcaster + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/imu_sensor_broadcaster/4.20.0-1 + target_directory: ros-jazzy-imu-sensor-broadcaster/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-controller-interface + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.7.* 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..f7c88e19 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..6da0719e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* 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-joint-limits/bld_ament_cmake.bat b/recipes/ros-jazzy-joint-limits/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-joint-limits/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-joint-limits/build_ament_cmake.sh b/recipes/ros-jazzy-joint-limits/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-joint-limits/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-joint-limits/recipe.yaml b/recipes/ros-jazzy-joint-limits/recipe.yaml new file mode 100644 index 00000000..95712d6b --- /dev/null +++ b/recipes/ros-jazzy-joint-limits/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-joint-limits + version: 4.25.0 +source: + git: https://github.com/ros2-gbp/ros2_control-release.git + tag: release/jazzy/joint_limits/4.25.0-1 + target_directory: ros-jazzy-joint-limits/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-gen-version-h + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-backward-ros + - ros-jazzy-generate-parameter-library + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-trajectory-msgs + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-trajectory-msgs + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-joint-state-broadcaster/bld_ament_cmake.bat b/recipes/ros-jazzy-joint-state-broadcaster/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-joint-state-broadcaster/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-joint-state-broadcaster/build_ament_cmake.sh b/recipes/ros-jazzy-joint-state-broadcaster/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-joint-state-broadcaster/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-joint-state-broadcaster/recipe.yaml b/recipes/ros-jazzy-joint-state-broadcaster/recipe.yaml new file mode 100644 index 00000000..f4bcadf2 --- /dev/null +++ b/recipes/ros-jazzy-joint-state-broadcaster/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-joint-state-broadcaster + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/joint_state_broadcaster/4.20.0-1 + target_directory: ros-jazzy-joint-state-broadcaster/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-builtin-interfaces + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcutils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-sensor-msgs + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-builtin-interfaces + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-generate-parameter-library + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcutils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-joint-state-publisher-gui/bld_ament_python.bat b/recipes/ros-jazzy-joint-state-publisher-gui/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-joint-state-publisher-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-joint-state-publisher-gui/build_ament_python.sh b/recipes/ros-jazzy-joint-state-publisher-gui/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-joint-state-publisher-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-joint-state-publisher-gui/recipe.yaml b/recipes/ros-jazzy-joint-state-publisher-gui/recipe.yaml new file mode 100644 index 00000000..ca031553 --- /dev/null +++ b/recipes/ros-jazzy-joint-state-publisher-gui/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-joint-state-publisher-gui + version: 2.4.0 +source: + git: https://github.com/ros2-gbp/joint_state_publisher-release.git + tag: release/jazzy/joint_state_publisher_gui/2.4.0-3 + target_directory: ros-jazzy-joint-state-publisher-gui/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-joint-state-publisher + - ros-jazzy-python-qt-binding + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-joint-state-publisher/bld_ament_python.bat b/recipes/ros-jazzy-joint-state-publisher/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-joint-state-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-joint-state-publisher/build_ament_python.sh b/recipes/ros-jazzy-joint-state-publisher/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-joint-state-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-joint-state-publisher/recipe.yaml b/recipes/ros-jazzy-joint-state-publisher/recipe.yaml new file mode 100644 index 00000000..6703ca40 --- /dev/null +++ b/recipes/ros-jazzy-joint-state-publisher/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-joint-state-publisher + version: 2.4.0 +source: + git: https://github.com/ros2-gbp/joint_state_publisher-release.git + tag: release/jazzy/joint_state_publisher/2.4.0-3 + target_directory: ros-jazzy-joint-state-publisher/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-xmllint + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2topic + - ros2-distro-mutex 0.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-joint-trajectory-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-joint-trajectory-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-joint-trajectory-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-joint-trajectory-controller/build_ament_cmake.sh b/recipes/ros-jazzy-joint-trajectory-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-joint-trajectory-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-joint-trajectory-controller/recipe.yaml b/recipes/ros-jazzy-joint-trajectory-controller/recipe.yaml new file mode 100644 index 00000000..ac2c8d3f --- /dev/null +++ b/recipes/ros-jazzy-joint-trajectory-controller/recipe.yaml @@ -0,0 +1,118 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-joint-trajectory-controller + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/joint_trajectory_controller/4.20.0-1 + target_directory: ros-jazzy-joint-trajectory-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-angles + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-control-toolbox + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-rsl + - ros-jazzy-tl-expected + - ros-jazzy-trajectory-msgs + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-angles + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-control-toolbox + - ros-jazzy-controller-interface + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-rsl + - ros-jazzy-tl-expected + - ros-jazzy-trajectory-msgs + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} 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..361d48bc --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..f14341c5 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..6b987714 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-kinematics-interface-kdl/bld_ament_cmake.bat b/recipes/ros-jazzy-kinematics-interface-kdl/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-kinematics-interface-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-kinematics-interface-kdl/build_ament_cmake.sh b/recipes/ros-jazzy-kinematics-interface-kdl/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-kinematics-interface-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-kinematics-interface-kdl/recipe.yaml b/recipes/ros-jazzy-kinematics-interface-kdl/recipe.yaml new file mode 100644 index 00000000..ac8ff055 --- /dev/null +++ b/recipes/ros-jazzy-kinematics-interface-kdl/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-kinematics-interface-kdl + version: 1.2.1 +source: + git: https://github.com/ros2-gbp/kinematics_interface-release.git + tag: release/jazzy/kinematics_interface_kdl/1.2.1-1 + target_directory: ros-jazzy-kinematics-interface-kdl/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-gmock + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-kdl-parser + - ros-jazzy-kinematics-interface + - ros-jazzy-pluginlib + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-tf2-eigen-kdl + - ros2-distro-mutex 0.7.* jazzy_* + run: + - eigen + - python + - ros-jazzy-kdl-parser + - ros-jazzy-kinematics-interface + - ros-jazzy-pluginlib + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-eigen-kdl + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-kinematics-interface/bld_ament_cmake.bat b/recipes/ros-jazzy-kinematics-interface/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-kinematics-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-kinematics-interface/build_ament_cmake.sh b/recipes/ros-jazzy-kinematics-interface/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-kinematics-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-kinematics-interface/recipe.yaml b/recipes/ros-jazzy-kinematics-interface/recipe.yaml new file mode 100644 index 00000000..94b7741d --- /dev/null +++ b/recipes/ros-jazzy-kinematics-interface/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-kinematics-interface + version: 1.2.1 +source: + git: https://github.com/ros2-gbp/kinematics_interface-release.git + tag: release/jazzy/kinematics_interface/1.2.1-1 + target_directory: ros-jazzy-kinematics-interface/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - eigen + - python + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-laser-filters/bld_ament_cmake.bat b/recipes/ros-jazzy-laser-filters/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-laser-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-laser-filters/build_ament_cmake.sh b/recipes/ros-jazzy-laser-filters/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-laser-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-laser-filters/recipe.yaml b/recipes/ros-jazzy-laser-filters/recipe.yaml new file mode 100644 index 00000000..b38bda7d --- /dev/null +++ b/recipes/ros-jazzy-laser-filters/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-laser-filters + version: 2.0.8 +source: + git: https://github.com/ros2-gbp/laser_filters-release.git + tag: release/jazzy/laser_filters/2.0.8-1 + target_directory: ros-jazzy-laser-filters/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-auto + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-angles + - ros-jazzy-filters + - ros-jazzy-laser-geometry + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-message-filters + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-kdl + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-angles + - ros-jazzy-filters + - ros-jazzy-laser-geometry + - ros-jazzy-message-filters + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-kdl + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* 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..54905d5b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-launch-param-builder/bld_ament_python.bat b/recipes/ros-jazzy-launch-param-builder/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-launch-param-builder/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-param-builder/build_ament_python.sh b/recipes/ros-jazzy-launch-param-builder/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-launch-param-builder/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-param-builder/recipe.yaml b/recipes/ros-jazzy-launch-param-builder/recipe.yaml new file mode 100644 index 00000000..6545b4c9 --- /dev/null +++ b/recipes/ros-jazzy-launch-param-builder/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-param-builder + version: 0.1.1 +source: + git: https://github.com/ros2-gbp/launch_param_builder-release.git + tag: release/jazzy/launch_param_builder/0.1.1-4 + target_directory: ros-jazzy-launch-param-builder/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - pyyaml + - ros-jazzy-ament-index-python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-xacro + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-launch-pytest/bld_ament_python.bat b/recipes/ros-jazzy-launch-pytest/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-launch-pytest/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-pytest/build_ament_python.sh b/recipes/ros-jazzy-launch-pytest/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-launch-pytest/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-pytest/recipe.yaml b/recipes/ros-jazzy-launch-pytest/recipe.yaml new file mode 100644 index 00000000..10af4743 --- /dev/null +++ b/recipes/ros-jazzy-launch-pytest/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-pytest + version: 3.4.3 +source: + git: https://github.com/ros2-gbp/launch-release.git + tag: release/jazzy/launch_pytest/3.4.3-1 + target_directory: ros-jazzy-launch-pytest/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - setuptools + run: + - pytest + - python + - ros-jazzy-ament-index-python + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-osrf-pycommon + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..4d8d8b1a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* 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..29036faa --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..20782819 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..a234cab1 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..90d4809e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-launch + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..89931969 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-launch + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..1996f9d4 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..1846168f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - libcurl + - pkg-config + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..3a9183f0 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - lz4 + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..df85a8f2 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..b170024b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - yaml + - yaml-cpp + run: + - pkg-config + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..26facb99 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* 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..a32e90ef --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..b6894db2 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..45c3d816 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..e67beaf0 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-liblz4-vendor + - ros-jazzy-ros-workspace + - ros-jazzy-zstd-vendor + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-mecanum-drive-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-mecanum-drive-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-mecanum-drive-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-mecanum-drive-controller/build_ament_cmake.sh b/recipes/ros-jazzy-mecanum-drive-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-mecanum-drive-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-mecanum-drive-controller/recipe.yaml b/recipes/ros-jazzy-mecanum-drive-controller/recipe.yaml new file mode 100644 index 00000000..111f8a0d --- /dev/null +++ b/recipes/ros-jazzy-mecanum-drive-controller/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-mecanum-drive-controller + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/mecanum_drive_controller/4.20.0-1 + target_directory: ros-jazzy-mecanum-drive-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcpputils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcpputils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-msgs + - ros2-distro-mutex 0.7.* 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..92988681 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..7b7d4fee --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-common/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-common/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-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-moveit-common/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-common/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-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-moveit-common/recipe.yaml b/recipes/ros-jazzy-moveit-common/recipe.yaml new file mode 100644 index 00000000..ea20ea4a --- /dev/null +++ b/recipes/ros-jazzy-moveit-common/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-moveit-common + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_common/2.12.1-1 + target_directory: ros-jazzy-moveit-common/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-configs-utils/bld_ament_python.bat b/recipes/ros-jazzy-moveit-configs-utils/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-moveit-configs-utils/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-moveit-configs-utils/build_ament_python.sh b/recipes/ros-jazzy-moveit-configs-utils/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-moveit-configs-utils/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-moveit-configs-utils/recipe.yaml b/recipes/ros-jazzy-moveit-configs-utils/recipe.yaml new file mode 100644 index 00000000..994440fc --- /dev/null +++ b/recipes/ros-jazzy-moveit-configs-utils/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-moveit-configs-utils + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_configs_utils/2.12.1-1 + target_directory: ros-jazzy-moveit-configs-utils/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ament-index-python + - ros-jazzy-launch + - ros-jazzy-launch-param-builder + - ros-jazzy-launch-ros + - ros-jazzy-ros-workspace + - ros-jazzy-srdfdom + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-core/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-core/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-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-moveit-core/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-core/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-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-moveit-core/patch/ros-jazzy-moveit-core.patch b/recipes/ros-jazzy-moveit-core/patch/ros-jazzy-moveit-core.patch new file mode 100644 index 00000000..0ddb89b4 --- /dev/null +++ b/recipes/ros-jazzy-moveit-core/patch/ros-jazzy-moveit-core.patch @@ -0,0 +1,131 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 608babbeb..a006b45fc 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -20,7 +20,7 @@ find_package(kdl_parser REQUIRED) + find_package(moveit_msgs REQUIRED) + # Enforce system version liboctomap-dev + # https://github.com/moveit/moveit2/issues/2862 +-find_package(octomap 1.9.7...<1.10.0 REQUIRED) ++find_package(octomap REQUIRED) + find_package(octomap_msgs REQUIRED) + find_package(osqp REQUIRED) + find_package(pluginlib REQUIRED) +diff --git a/collision_detection/include/moveit/collision_detection/collision_common.hpp b/collision_detection/include/moveit/collision_detection/collision_common.hpp +index 19777a044..af3a89442 100644 +--- a/collision_detection/include/moveit/collision_detection/collision_common.hpp ++++ b/collision_detection/include/moveit/collision_detection/collision_common.hpp +@@ -141,7 +141,33 @@ struct CostSource + } + }; + +-struct CollisionResult; ++/** \brief Representation of a collision checking result */ ++struct CollisionResult ++{ ++ using ContactMap = std::map, std::vector >; ++ EIGEN_MAKE_ALIGNED_OPERATOR_NEW ++ /** \brief Clear a previously stored result */ ++ void clear() ++ { ++ collision = false; ++ distance = std::numeric_limits::max(); ++ contact_count = 0; ++ contacts.clear(); ++ cost_sources.clear(); ++ } ++ /** \brief Throttled warning printing the first collision pair, if any. All collisions are logged at DEBUG level */ ++ void print() const; ++ /** \brief True if collision was found, false otherwise */ ++ bool collision = false; ++ /** \brief Closest distance between two bodies */ ++ double distance = std::numeric_limits::max(); ++ /** \brief Number of contacts returned */ ++ std::size_t contact_count = 0; ++ /** \brief A map returning the pairs of body ids in contact, plus their contact details */ ++ ContactMap contacts; ++ /** \brief These are the individual cost sources when costs are computed */ ++ std::set cost_sources; ++}; + + /** \brief Representation of a collision checking request */ + struct CollisionRequest +@@ -159,9 +185,6 @@ struct CollisionRequest + /** \brief If true, compute proximity distance */ + bool distance = false; + +- /** \brief If true, return detailed distance information. Distance must be set to true as well */ +- bool detailed_distance = false; +- + /** \brief If true, a collision cost is computed */ + bool cost = false; + +@@ -330,42 +353,4 @@ struct DistanceResult + } + }; + +-/** \brief Representation of a collision checking result */ +-struct CollisionResult +-{ +- EIGEN_MAKE_ALIGNED_OPERATOR_NEW +- +- /** \brief Clear a previously stored result */ +- void clear() +- { +- collision = false; +- distance = std::numeric_limits::max(); +- distance_result.clear(); +- contact_count = 0; +- contacts.clear(); +- cost_sources.clear(); +- } +- +- /** \brief Throttled warning printing the first collision pair, if any. All collisions are logged at DEBUG level */ +- void print() const; +- +- /** \brief True if collision was found, false otherwise */ +- bool collision = false; +- +- /** \brief Closest distance between two bodies */ +- double distance = std::numeric_limits::max(); +- +- /** \brief Distance data for each link */ +- DistanceResult distance_result; +- +- /** \brief Number of contacts returned */ +- std::size_t contact_count = 0; +- +- /** \brief A map returning the pairs of body ids in contact, plus their contact details */ +- using ContactMap = std::map, std::vector >; +- ContactMap contacts; +- +- /** \brief These are the individual cost sources when costs are computed */ +- std::set cost_sources; +-}; + } // namespace collision_detection +diff --git a/collision_detection_fcl/src/collision_env_fcl.cpp b/collision_detection_fcl/src/collision_env_fcl.cpp +index b57e0767e..c655ed069 100644 +--- a/collision_detection_fcl/src/collision_env_fcl.cpp ++++ b/collision_detection_fcl/src/collision_env_fcl.cpp +@@ -290,10 +290,6 @@ void CollisionEnvFCL::checkSelfCollisionHelper(const CollisionRequest& req, Coll + dreq.enableGroup(getRobotModel()); + distanceSelf(dreq, dres, state); + res.distance = dres.minimum_distance.distance; +- if (req.detailed_distance) +- { +- res.distance_result = dres; +- } + } + } + +@@ -347,10 +343,6 @@ void CollisionEnvFCL::checkRobotCollisionHelper(const CollisionRequest& req, Col + dreq.enableGroup(getRobotModel()); + distanceRobot(dreq, dres, state); + res.distance = dres.minimum_distance.distance; +- if (req.detailed_distance) +- { +- res.distance_result = dres; +- } + } + } + diff --git a/recipes/ros-jazzy-moveit-core/recipe.yaml b/recipes/ros-jazzy-moveit-core/recipe.yaml new file mode 100644 index 00000000..83ed7676 --- /dev/null +++ b/recipes/ros-jazzy-moveit-core/recipe.yaml @@ -0,0 +1,171 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-moveit-core + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_core/2.12.1-1 + target_directory: ros-jazzy-moveit-core/src/work + patches: + - patch/ros-jazzy-moveit-core.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - 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 + - eigen + - fcl + - libboost-devel + - libboost-python-devel + - numpy + - pip + - pkg-config + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-google-benchmark + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-index-cpp + - ros-jazzy-angles + - ros-jazzy-common-interfaces + - ros-jazzy-eigen-stl-containers + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometric-shapes + - ros-jazzy-geometry-msgs + - ros-jazzy-google-benchmark-vendor + - ros-jazzy-kdl-parser + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-moveit-common + - ros-jazzy-moveit-msgs + - ros-jazzy-moveit-resources-panda-moveit-config + - ros-jazzy-moveit-resources-pr2-description + - ros-jazzy-octomap-msgs + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-osqp-vendor + - ros-jazzy-pluginlib + - ros-jazzy-random-numbers + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rsl + - ros-jazzy-ruckig + - ros-jazzy-sensor-msgs + - ros-jazzy-shape-msgs + - ros-jazzy-srdfdom + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-kdl + - ros-jazzy-trajectory-msgs + - ros-jazzy-urdf + - ros-jazzy-urdfdom + - ros-jazzy-urdfdom-headers + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - assimp + - bullet + - eigen + - fcl + - libboost-devel + - libboost-python-devel + - python + - ros-jazzy-angles + - ros-jazzy-common-interfaces + - ros-jazzy-eigen-stl-containers + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometric-shapes + - ros-jazzy-geometry-msgs + - ros-jazzy-google-benchmark-vendor + - ros-jazzy-kdl-parser + - ros-jazzy-moveit-common + - ros-jazzy-moveit-msgs + - ros-jazzy-octomap-msgs + - ros-jazzy-osqp-vendor + - ros-jazzy-pluginlib + - ros-jazzy-random-numbers + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-rsl + - ros-jazzy-ruckig + - ros-jazzy-sensor-msgs + - ros-jazzy-shape-msgs + - ros-jazzy-srdfdom + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-kdl + - ros-jazzy-trajectory-msgs + - ros-jazzy-urdf + - ros-jazzy-urdfdom + - ros-jazzy-urdfdom-headers + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-kinematics/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-kinematics/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-kinematics/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-kinematics/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-kinematics/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-kinematics/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-kinematics/patch/ros-jazzy-moveit-kinematics.patch b/recipes/ros-jazzy-moveit-kinematics/patch/ros-jazzy-moveit-kinematics.patch new file mode 100644 index 00000000..6f2e9ac7 --- /dev/null +++ b/recipes/ros-jazzy-moveit-kinematics/patch/ros-jazzy-moveit-kinematics.patch @@ -0,0 +1,26 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 21b03dfb1..5a76c1683 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,8 @@ + cmake_minimum_required(VERSION 3.22) + project(moveit_kinematics LANGUAGES CXX) + ++add_definitions(-DNOMINMAX) ++ + # Common cmake code applied to all moveit packages + find_package(moveit_common REQUIRED) + moveit_package() +diff --git a/cached_ik_kinematics_plugin/include/moveit/cached_ik_kinematics_plugin/detail/GreedyKCenters.hpp b/cached_ik_kinematics_plugin/include/moveit/cached_ik_kinematics_plugin/detail/GreedyKCenters.hpp +index 173471c7e..47e47e2db 100644 +--- a/cached_ik_kinematics_plugin/include/moveit/cached_ik_kinematics_plugin/detail/GreedyKCenters.hpp ++++ b/cached_ik_kinematics_plugin/include/moveit/cached_ik_kinematics_plugin/detail/GreedyKCenters.hpp +@@ -92,7 +92,7 @@ public: + centers.clear(); + centers.reserve(k); + if (static_cast(dists.rows()) < data.size() || static_cast(dists.cols()) < k) +- dists.resize(std::max(2 * static_cast(dists.rows()) + 1, data.size()), k); ++ dists.resize(std::max(2 * ((long unsigned int)dists.rows()) + 1, (long unsigned int)data.size()), k); + // first center is picked randomly + centers.push_back(std::uniform_int_distribution{ 0, data.size() - 1 }(rsl::rng())); + for (unsigned i = 1; i < k; ++i) diff --git a/recipes/ros-jazzy-moveit-kinematics/recipe.yaml b/recipes/ros-jazzy-moveit-kinematics/recipe.yaml new file mode 100644 index 00000000..b933b004 --- /dev/null +++ b/recipes/ros-jazzy-moveit-kinematics/recipe.yaml @@ -0,0 +1,120 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-moveit-kinematics + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_kinematics/2.12.1-1 + target_directory: ros-jazzy-moveit-kinematics/src/work + patches: + - patch/ros-jazzy-moveit-kinematics.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-class-loader + - ros-jazzy-generate-parameter-library + - ros-jazzy-launch-param-builder + - ros-jazzy-moveit-common + - ros-jazzy-moveit-configs-utils + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-moveit-resources-fanuc-description + - ros-jazzy-moveit-resources-fanuc-moveit-config + - ros-jazzy-moveit-resources-panda-description + - ros-jazzy-moveit-resources-panda-moveit-config + - ros-jazzy-moveit-ros-planning + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-pluginlib + - ros-jazzy-ros-environment + - ros-jazzy-ros-testing + - ros-jazzy-ros-workspace + - ros-jazzy-rsl + - ros-jazzy-tf2 + - ros-jazzy-tf2-kdl + - ros2-distro-mutex 0.7.* jazzy_* + run: + - eigen + - lxml + - python + - ros-jazzy-class-loader + - ros-jazzy-generate-parameter-library + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-moveit-ros-planning + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-pluginlib + - ros-jazzy-ros-workspace + - ros-jazzy-rsl + - ros-jazzy-tf2 + - ros-jazzy-tf2-kdl + - ros-jazzy-urdfdom + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-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-moveit-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-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-moveit-msgs/recipe.yaml b/recipes/ros-jazzy-moveit-msgs/recipe.yaml new file mode 100644 index 00000000..af28f3da --- /dev/null +++ b/recipes/ros-jazzy-moveit-msgs/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-moveit-msgs + version: 2.6.0 +source: + git: https://github.com/ros2-gbp/moveit_msgs-release.git + tag: release/jazzy/moveit_msgs/2.6.0-1 + target_directory: ros-jazzy-moveit-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-lint-auto + - ros-jazzy-ament-lint-cmake + - ros-jazzy-geometry-msgs + - ros-jazzy-object-recognition-msgs + - ros-jazzy-octomap-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-sensor-msgs + - ros-jazzy-shape-msgs + - ros-jazzy-std-msgs + - ros-jazzy-trajectory-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-geometry-msgs + - ros-jazzy-object-recognition-msgs + - ros-jazzy-octomap-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-sensor-msgs + - ros-jazzy-shape-msgs + - ros-jazzy-std-msgs + - ros-jazzy-trajectory-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-planners-chomp/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-planners-chomp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-planners-chomp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-planners-chomp/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-planners-chomp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-planners-chomp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-planners-chomp/recipe.yaml b/recipes/ros-jazzy-moveit-planners-chomp/recipe.yaml new file mode 100644 index 00000000..81903ef3 --- /dev/null +++ b/recipes/ros-jazzy-moveit-planners-chomp/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-moveit-planners-chomp + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_planners_chomp/2.12.1-1 + target_directory: ros-jazzy-moveit-planners-chomp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-chomp-motion-planner + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-chomp-motion-planner + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-planners-ompl/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-planners-ompl/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-planners-ompl/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-planners-ompl/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-planners-ompl/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-planners-ompl/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-planners-ompl/patch/ros-jazzy-moveit-planners-ompl.patch b/recipes/ros-jazzy-moveit-planners-ompl/patch/ros-jazzy-moveit-planners-ompl.patch new file mode 100644 index 00000000..bd45f39f --- /dev/null +++ b/recipes/ros-jazzy-moveit-planners-ompl/patch/ros-jazzy-moveit-planners-ompl.patch @@ -0,0 +1,18 @@ +diff --git a/ompl_interface/CMakeLists.txt b/ompl_interface/CMakeLists.txt +index ff71c07c..0d0aef71 100644 +--- a/ompl_interface/CMakeLists.txt ++++ b/ompl_interface/CMakeLists.txt +@@ -24,7 +24,12 @@ add_library(${MOVEIT_LIB_NAME} SHARED + ) + set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") + +-find_package(OpenMP REQUIRED) ++if(APPLE) ++ find_package(OpenMP) ++ set(OpenMP_CXX_FLAGS "-fopenmp") ++else() ++ find_package(OpenMP REQUIRED) ++endif() + + # Used to link in ODE, an OMPL dependency, on macOS + if(APPLE) diff --git a/recipes/ros-jazzy-moveit-planners-ompl/recipe.yaml b/recipes/ros-jazzy-moveit-planners-ompl/recipe.yaml new file mode 100644 index 00000000..5b35f50e --- /dev/null +++ b/recipes/ros-jazzy-moveit-planners-ompl/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-moveit-planners-ompl + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_planners_ompl/2.12.1-1 + target_directory: ros-jazzy-moveit-planners-ompl/src/work + patches: + - patch/ros-jazzy-moveit-planners-ompl.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - llvm-openmp + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-moveit-resources-fanuc-moveit-config + - ros-jazzy-moveit-resources-panda-moveit-config + - ros-jazzy-moveit-resources-pr2-description + - ros-jazzy-moveit-ros-planning + - ros-jazzy-ompl + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - llvm-openmp + - python + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-moveit-ros-planning + - ros-jazzy-ompl + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-planners-stomp/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-planners-stomp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-planners-stomp/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-planners-stomp/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-planners-stomp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-planners-stomp/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-planners-stomp/recipe.yaml b/recipes/ros-jazzy-moveit-planners-stomp/recipe.yaml new file mode 100644 index 00000000..927eeac5 --- /dev/null +++ b/recipes/ros-jazzy-moveit-planners-stomp/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-moveit-planners-stomp + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_planners_stomp/2.12.1-1 + target_directory: ros-jazzy-moveit-planners-stomp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-generate-parameter-library + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rsl + - ros-jazzy-std-msgs + - ros-jazzy-stomp + - ros-jazzy-tf2-eigen + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-generate-parameter-library + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-ros-workspace + - ros-jazzy-rsl + - ros-jazzy-std-msgs + - ros-jazzy-stomp + - ros-jazzy-tf2-eigen + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-planners/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-planners/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-planners/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-planners/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-planners/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-planners/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-planners/recipe.yaml b/recipes/ros-jazzy-moveit-planners/recipe.yaml new file mode 100644 index 00000000..e90fc733 --- /dev/null +++ b/recipes/ros-jazzy-moveit-planners/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-moveit-planners + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_planners/2.12.1-1 + target_directory: ros-jazzy-moveit-planners/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-chomp-motion-planner + - ros-jazzy-moveit-planners-ompl + - ros-jazzy-moveit-planners-stomp + - ros-jazzy-pilz-industrial-motion-planner + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-plugins/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-plugins/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-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-moveit-plugins/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-plugins/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-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-moveit-plugins/recipe.yaml b/recipes/ros-jazzy-moveit-plugins/recipe.yaml new file mode 100644 index 00000000..2dc34a9d --- /dev/null +++ b/recipes/ros-jazzy-moveit-plugins/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-moveit-plugins + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_plugins/2.12.1-1 + target_directory: ros-jazzy-moveit-plugins/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-moveit-simple-controller-manager + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-resources-fanuc-description/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-resources-fanuc-description/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-fanuc-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-moveit-resources-fanuc-description/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-resources-fanuc-description/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-fanuc-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-moveit-resources-fanuc-description/recipe.yaml b/recipes/ros-jazzy-moveit-resources-fanuc-description/recipe.yaml new file mode 100644 index 00000000..a5e2043e --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-fanuc-description/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-moveit-resources-fanuc-description + version: 3.1.0 +source: + git: https://github.com/ros2-gbp/moveit_resources-release.git + tag: release/jazzy/moveit_resources_fanuc_description/3.1.0-1 + target_directory: ros-jazzy-moveit-resources-fanuc-description/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-resources-fanuc-moveit-config/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-resources-fanuc-moveit-config/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-fanuc-moveit-config/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-resources-fanuc-moveit-config/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-resources-fanuc-moveit-config/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-fanuc-moveit-config/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-resources-fanuc-moveit-config/recipe.yaml b/recipes/ros-jazzy-moveit-resources-fanuc-moveit-config/recipe.yaml new file mode 100644 index 00000000..73e0afc2 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-fanuc-moveit-config/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-moveit-resources-fanuc-moveit-config + version: 3.1.0 +source: + git: https://github.com/ros2-gbp/moveit_resources-release.git + tag: release/jazzy/moveit_resources_fanuc_moveit_config/3.1.0-1 + target_directory: ros-jazzy-moveit-resources-fanuc-moveit-config/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-controller-manager + - ros-jazzy-joint-state-publisher + - ros-jazzy-moveit-resources-fanuc-description + - ros-jazzy-position-controllers + - ros-jazzy-robot-state-publisher + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli-common-extensions + - ros-jazzy-tf2-ros + - ros-jazzy-xacro + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-resources-panda-description/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-resources-panda-description/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-panda-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-moveit-resources-panda-description/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-resources-panda-description/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-panda-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-moveit-resources-panda-description/recipe.yaml b/recipes/ros-jazzy-moveit-resources-panda-description/recipe.yaml new file mode 100644 index 00000000..bae35206 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-panda-description/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-moveit-resources-panda-description + version: 3.1.0 +source: + git: https://github.com/ros2-gbp/moveit_resources-release.git + tag: release/jazzy/moveit_resources_panda_description/3.1.0-1 + target_directory: ros-jazzy-moveit-resources-panda-description/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-resources-panda-moveit-config/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-resources-panda-moveit-config/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-panda-moveit-config/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-resources-panda-moveit-config/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-resources-panda-moveit-config/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-panda-moveit-config/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-resources-panda-moveit-config/recipe.yaml b/recipes/ros-jazzy-moveit-resources-panda-moveit-config/recipe.yaml new file mode 100644 index 00000000..975b5925 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-panda-moveit-config/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-moveit-resources-panda-moveit-config + version: 3.1.0 +source: + git: https://github.com/ros2-gbp/moveit_resources-release.git + tag: release/jazzy/moveit_resources_panda_moveit_config/3.1.0-1 + target_directory: ros-jazzy-moveit-resources-panda-moveit-config/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-controller-manager + - ros-jazzy-gripper-controllers + - ros-jazzy-joint-state-publisher + - ros-jazzy-joint-state-publisher-gui + - ros-jazzy-moveit-resources-panda-description + - ros-jazzy-position-controllers + - ros-jazzy-robot-state-publisher + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli-common-extensions + - ros-jazzy-topic-tools + - ros-jazzy-xacro + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-resources-pr2-description/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-resources-pr2-description/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-pr2-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-moveit-resources-pr2-description/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-resources-pr2-description/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-pr2-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-moveit-resources-pr2-description/recipe.yaml b/recipes/ros-jazzy-moveit-resources-pr2-description/recipe.yaml new file mode 100644 index 00000000..3495868a --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-pr2-description/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-moveit-resources-pr2-description + version: 3.1.0 +source: + git: https://github.com/ros2-gbp/moveit_resources-release.git + tag: release/jazzy/moveit_resources_pr2_description/3.1.0-1 + target_directory: ros-jazzy-moveit-resources-pr2-description/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-prbt-ikfast-manipulator-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-moveit-resources-prbt-ikfast-manipulator-plugin/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-prbt-ikfast-manipulator-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-moveit-resources-prbt-ikfast-manipulator-plugin/recipe.yaml b/recipes/ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin/recipe.yaml new file mode 100644 index 00000000..3a7ef154 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin/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-moveit-resources-prbt-ikfast-manipulator-plugin + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_resources_prbt_ikfast_manipulator_plugin/2.12.1-1 + target_directory: ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-generate-parameter-library + - ros-jazzy-moveit-core + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-eigen-kdl + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-kdl + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-generate-parameter-library + - ros-jazzy-moveit-core + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-kdl + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-resources-prbt-moveit-config/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-resources-prbt-moveit-config/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-prbt-moveit-config/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-resources-prbt-moveit-config/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-resources-prbt-moveit-config/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-prbt-moveit-config/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-resources-prbt-moveit-config/recipe.yaml b/recipes/ros-jazzy-moveit-resources-prbt-moveit-config/recipe.yaml new file mode 100644 index 00000000..1f305d1f --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-prbt-moveit-config/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-moveit-resources-prbt-moveit-config + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_resources_prbt_moveit_config/2.12.1-1 + target_directory: ros-jazzy-moveit-resources-prbt-moveit-config/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-joint-state-publisher + - ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin + - ros-jazzy-moveit-resources-prbt-support + - ros-jazzy-moveit-ros-move-group + - ros-jazzy-robot-state-publisher + - ros-jazzy-ros-workspace + - ros-jazzy-rviz2 + - ros-jazzy-xacro + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-resources-prbt-pg70-support/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-resources-prbt-pg70-support/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-prbt-pg70-support/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-resources-prbt-pg70-support/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-resources-prbt-pg70-support/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-prbt-pg70-support/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-resources-prbt-pg70-support/recipe.yaml b/recipes/ros-jazzy-moveit-resources-prbt-pg70-support/recipe.yaml new file mode 100644 index 00000000..19bbe193 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-prbt-pg70-support/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-moveit-resources-prbt-pg70-support + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_resources_prbt_pg70_support/2.12.1-1 + target_directory: ros-jazzy-moveit-resources-prbt-pg70-support/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin + - ros-jazzy-moveit-resources-prbt-moveit-config + - ros-jazzy-moveit-resources-prbt-support + - ros-jazzy-ros-workspace + - ros-jazzy-xacro + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-resources-prbt-support/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-resources-prbt-support/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-prbt-support/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-resources-prbt-support/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-resources-prbt-support/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-prbt-support/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-resources-prbt-support/recipe.yaml b/recipes/ros-jazzy-moveit-resources-prbt-support/recipe.yaml new file mode 100644 index 00000000..cd8d4698 --- /dev/null +++ b/recipes/ros-jazzy-moveit-resources-prbt-support/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-moveit-resources-prbt-support + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_resources_prbt_support/2.12.1-1 + target_directory: ros-jazzy-moveit-resources-prbt-support/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-xacro + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-ros-benchmarks/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-ros-benchmarks/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-benchmarks/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-ros-benchmarks/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-ros-benchmarks/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-benchmarks/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-ros-benchmarks/recipe.yaml b/recipes/ros-jazzy-moveit-ros-benchmarks/recipe.yaml new file mode 100644 index 00000000..b0ff79c0 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-benchmarks/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-moveit-ros-benchmarks + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_ros_benchmarks/2.12.1-1 + target_directory: ros-jazzy-moveit-ros-benchmarks/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-ros-planning + - ros-jazzy-moveit-ros-warehouse + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-eigen + - ros2-distro-mutex 0.7.* jazzy_* + run: + - libboost + - python + - ros-jazzy-launch-param-builder + - ros-jazzy-moveit-common + - ros-jazzy-moveit-configs-utils + - ros-jazzy-moveit-ros-planning + - ros-jazzy-moveit-ros-warehouse + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-eigen + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-ros-move-group/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-ros-move-group/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-move-group/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-ros-move-group/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-ros-move-group/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-move-group/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-ros-move-group/patch/ros-jazzy-moveit-ros-move-group.patch b/recipes/ros-jazzy-moveit-ros-move-group/patch/ros-jazzy-moveit-ros-move-group.patch new file mode 100644 index 00000000..87533b4c --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-move-group/patch/ros-jazzy-moveit-ros-move-group.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2cdebb6ee9..ee4cc0abad 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -73,7 +73,7 @@ add_executable(list_move_group_capabilities src/list_capabilities.cpp) + ament_target_dependencies(list_move_group_capabilities + ${THIS_PACKAGE_INCLUDE_DEPENDS}) + target_link_libraries(list_move_group_capabilities +- moveit_move_group_capabilities_base fmt) ++ moveit_move_group_capabilities_base fmt::fmt) + + install(TARGETS move_group list_move_group_capabilities + RUNTIME DESTINATION lib/moveit_ros_move_group) diff --git a/recipes/ros-jazzy-moveit-ros-move-group/recipe.yaml b/recipes/ros-jazzy-moveit-ros-move-group/recipe.yaml new file mode 100644 index 00000000..620cf457 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-move-group/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-moveit-ros-move-group + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_ros_move_group/2.12.1-1 + target_directory: ros-jazzy-moveit-ros-move-group/src/work + patches: + - patch/ros-jazzy-moveit-ros-move-group.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - fmt + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-moveit-common + - ros-jazzy-moveit-configs-utils + - ros-jazzy-moveit-core + - ros-jazzy-moveit-resources-fanuc-moveit-config + - ros-jazzy-moveit-resources-panda-moveit-config + - ros-jazzy-moveit-ros-occupancy-map-monitor + - ros-jazzy-moveit-ros-planning + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-environment + - ros-jazzy-ros-testing + - ros-jazzy-ros-workspace + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - fmt + - python + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-kinematics + - ros-jazzy-moveit-ros-occupancy-map-monitor + - ros-jazzy-moveit-ros-planning + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-workspace + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-ros-occupancy-map-monitor/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-ros-occupancy-map-monitor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-occupancy-map-monitor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-ros-occupancy-map-monitor/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-ros-occupancy-map-monitor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-occupancy-map-monitor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-ros-occupancy-map-monitor/patch/ros-jazzy-moveit-ros-occupancy-map-monitor.patch b/recipes/ros-jazzy-moveit-ros-occupancy-map-monitor/patch/ros-jazzy-moveit-ros-occupancy-map-monitor.patch new file mode 100644 index 00000000..d062f1b4 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-occupancy-map-monitor/patch/ros-jazzy-moveit-ros-occupancy-map-monitor.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b8dd549bc..5f9f8ef59 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -15,7 +15,7 @@ find_package(pluginlib REQUIRED) + find_package(Eigen3 REQUIRED) + # Enforce system version liboctomap-dev + # https://github.com/moveit/moveit2/issues/2862 +-find_package(octomap 1.9.7...<1.10.0 REQUIRED) ++find_package(octomap REQUIRED) + find_package(geometric_shapes REQUIRED) + find_package(tf2_ros REQUIRED) + diff --git a/recipes/ros-jazzy-moveit-ros-occupancy-map-monitor/recipe.yaml b/recipes/ros-jazzy-moveit-ros-occupancy-map-monitor/recipe.yaml new file mode 100644 index 00000000..b62f091d --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-occupancy-map-monitor/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-moveit-ros-occupancy-map-monitor + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_ros_occupancy_map_monitor/2.12.1-1 + target_directory: ros-jazzy-moveit-ros-occupancy-map-monitor/src/work + patches: + - patch/ros-jazzy-moveit-ros-occupancy-map-monitor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-gmock + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-geometric-shapes + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - eigen + - python + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-geometric-shapes + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-ros-planning-interface/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-ros-planning-interface/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-planning-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-moveit-ros-planning-interface/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-ros-planning-interface/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-planning-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-moveit-ros-planning-interface/recipe.yaml b/recipes/ros-jazzy-moveit-ros-planning-interface/recipe.yaml new file mode 100644 index 00000000..2036c78c --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-planning-interface/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-moveit-ros-planning-interface + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_ros_planning_interface/2.12.1-1 + target_directory: ros-jazzy-moveit-ros-planning-interface/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-eigen3-cmake-module + - ros-jazzy-geometry-msgs + - ros-jazzy-moveit-common + - ros-jazzy-moveit-configs-utils + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-moveit-resources-fanuc-moveit-config + - ros-jazzy-moveit-resources-panda-moveit-config + - ros-jazzy-moveit-ros-move-group + - ros-jazzy-moveit-ros-planning + - ros-jazzy-moveit-ros-warehouse + - ros-jazzy-moveit-simple-controller-manager + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-testing + - ros-jazzy-ros-workspace + - ros-jazzy-rviz2 + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-moveit-ros-move-group + - ros-jazzy-moveit-ros-planning + - ros-jazzy-moveit-ros-warehouse + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-ros-planning/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-ros-planning/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-planning/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-ros-planning/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-ros-planning/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-planning/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-ros-planning/recipe.yaml b/recipes/ros-jazzy-moveit-ros-planning/recipe.yaml new file mode 100644 index 00000000..8b0ec59f --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-planning/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-moveit-ros-planning + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_ros_planning/2.12.1-1 + target_directory: ros-jazzy-moveit-ros-planning/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - fmt + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-index-cpp + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-generate-parameter-library + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-message-filters + - ros-jazzy-moveit-common + - ros-jazzy-moveit-configs-utils + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-moveit-resources-panda-moveit-config + - ros-jazzy-moveit-ros-occupancy-map-monitor + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-testing + - ros-jazzy-ros-workspace + - ros-jazzy-srdfdom + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* jazzy_* + run: + - eigen + - fmt + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-generate-parameter-library + - ros-jazzy-message-filters + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-moveit-ros-occupancy-map-monitor + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-srdfdom + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-ros-robot-interaction/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-ros-robot-interaction/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-robot-interaction/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-ros-robot-interaction/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-ros-robot-interaction/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-robot-interaction/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-ros-robot-interaction/recipe.yaml b/recipes/ros-jazzy-moveit-ros-robot-interaction/recipe.yaml new file mode 100644 index 00000000..d8d37534 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-robot-interaction/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-moveit-ros-robot-interaction + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_ros_robot_interaction/2.12.1-1 + target_directory: ros-jazzy-moveit-ros-robot-interaction/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-interactive-markers + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-ros-planning + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-interactive-markers + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-ros-planning + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-ros-visualization/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-ros-visualization/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-visualization/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-ros-visualization/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-ros-visualization/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-visualization/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-ros-visualization/recipe.yaml b/recipes/ros-jazzy-moveit-ros-visualization/recipe.yaml new file mode 100644 index 00000000..7e0d5a0b --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-visualization/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-moveit-ros-visualization + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_ros_visualization/2.12.1-1 + target_directory: ros-jazzy-moveit-ros-visualization/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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 + - numpy + - pip + - pkg-config + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-class-loader + - ros-jazzy-geometric-shapes + - ros-jazzy-interactive-markers + - ros-jazzy-moveit-common + - ros-jazzy-moveit-ros-planning-interface + - ros-jazzy-moveit-ros-robot-interaction + - ros-jazzy-moveit-ros-warehouse + - ros-jazzy-object-recognition-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rviz2 + - ros-jazzy-tf2-eigen + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-geometric-shapes + - ros-jazzy-interactive-markers + - ros-jazzy-moveit-common + - ros-jazzy-moveit-ros-planning-interface + - ros-jazzy-moveit-ros-robot-interaction + - ros-jazzy-moveit-ros-warehouse + - ros-jazzy-object-recognition-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rviz2 + - ros-jazzy-tf2-eigen + - ros2-distro-mutex 0.7.* 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-moveit-ros-warehouse/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-ros-warehouse/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-warehouse/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-ros-warehouse/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-ros-warehouse/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-warehouse/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-ros-warehouse/recipe.yaml b/recipes/ros-jazzy-moveit-ros-warehouse/recipe.yaml new file mode 100644 index 00000000..e43dc2dc --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros-warehouse/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-moveit-ros-warehouse + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_ros_warehouse/2.12.1-1 + target_directory: ros-jazzy-moveit-ros-warehouse/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - fmt + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-ros-planning + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-ros + - ros-jazzy-warehouse-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - fmt + - python + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-ros-planning + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-ros + - ros-jazzy-warehouse-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-ros/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-ros/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-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-moveit-ros/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-ros/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-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-moveit-ros/recipe.yaml b/recipes/ros-jazzy-moveit-ros/recipe.yaml new file mode 100644 index 00000000..ca378905 --- /dev/null +++ b/recipes/ros-jazzy-moveit-ros/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-moveit-ros + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_ros/2.12.1-1 + target_directory: ros-jazzy-moveit-ros/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-moveit-ros-benchmarks + - ros-jazzy-moveit-ros-move-group + - ros-jazzy-moveit-ros-planning + - ros-jazzy-moveit-ros-planning-interface + - ros-jazzy-moveit-ros-robot-interaction + - ros-jazzy-moveit-ros-visualization + - ros-jazzy-moveit-ros-warehouse + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-servo/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-servo/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-servo/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-servo/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-servo/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-servo/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-servo/recipe.yaml b/recipes/ros-jazzy-moveit-servo/recipe.yaml new file mode 100644 index 00000000..7a05a018 --- /dev/null +++ b/recipes/ros-jazzy-moveit-servo/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-moveit-servo + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_servo/2.12.1-1 + target_directory: ros-jazzy-moveit-servo/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-control-msgs + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-moveit-resources-panda-moveit-config + - ros-jazzy-moveit-ros-planning + - ros-jazzy-moveit-ros-planning-interface + - ros-jazzy-pluginlib + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-testing + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2-eigen + - ros-jazzy-trajectory-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-control-msgs + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-gripper-controllers + - ros-jazzy-joint-state-broadcaster + - ros-jazzy-joint-trajectory-controller + - ros-jazzy-joy + - ros-jazzy-launch-param-builder + - ros-jazzy-moveit-common + - ros-jazzy-moveit-configs-utils + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-moveit-ros-planning + - ros-jazzy-moveit-ros-planning-interface + - ros-jazzy-moveit-ros-visualization + - ros-jazzy-pluginlib + - ros-jazzy-realtime-tools + - ros-jazzy-robot-state-publisher + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-ros + - ros-jazzy-trajectory-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-setup-app-plugins/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-setup-app-plugins/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-app-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-moveit-setup-app-plugins/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-setup-app-plugins/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-app-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-moveit-setup-app-plugins/recipe.yaml b/recipes/ros-jazzy-moveit-setup-app-plugins/recipe.yaml new file mode 100644 index 00000000..ace0e5df --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-app-plugins/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-moveit-setup-app-plugins + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_setup_app_plugins/2.12.1-1 + target_directory: ros-jazzy-moveit-setup-app-plugins/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-moveit-configs-utils + - ros-jazzy-moveit-ros-visualization + - ros-jazzy-moveit-setup-framework + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-moveit-configs-utils + - ros-jazzy-moveit-ros-visualization + - ros-jazzy-moveit-setup-framework + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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-moveit-setup-assistant/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-setup-assistant/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-assistant/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-setup-assistant/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-setup-assistant/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-assistant/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-setup-assistant/patch/ros-jazzy-moveit-setup-assistant.patch b/recipes/ros-jazzy-moveit-setup-assistant/patch/ros-jazzy-moveit-setup-assistant.patch new file mode 100644 index 00000000..6b7a2d22 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-assistant/patch/ros-jazzy-moveit-setup-assistant.patch @@ -0,0 +1,35 @@ +diff --git a/src/collisions_updater.cpp b/src/collisions_updater.cpp +index d8963e1be..f99e493ac 100644 +--- a/src/collisions_updater.cpp ++++ b/src/collisions_updater.cpp +@@ -100,7 +100,7 @@ int main(int argc, char* argv[]) + auto package_settings = config_data->get("package_settings"); + try + { +- package_settings->loadExisting(config_pkg_path); ++ package_settings->loadExisting(config_pkg_path.string()); + } + catch (const std::runtime_error& e) + { +@@ -113,7 +113,7 @@ int main(int argc, char* argv[]) + RCLCPP_ERROR_STREAM(node->get_logger(), "Please provide config package or URDF and SRDF path"); + return 1; + } +- else if (rdf_loader::RDFLoader::isXacroFile(srdf_path) && output_path.empty()) ++ else if (rdf_loader::RDFLoader::isXacroFile(srdf_path.string()) && output_path.empty()) + { + RCLCPP_ERROR_STREAM(node->get_logger(), "Please provide a different output file for SRDF xacro input file"); + return 1; +diff --git a/src/setup_assistant_widget.cpp b/src/setup_assistant_widget.cpp +index 2d56b5e40..bab1ec094 100644 +--- a/src/setup_assistant_widget.cpp ++++ b/src/setup_assistant_widget.cpp +@@ -71,7 +71,7 @@ SetupAssistantWidget::SetupAssistantWidget(const rviz_common::ros_integration::R + + // Setting the window icon + auto icon_path = getSharePath("moveit_ros_visualization") / "icons/classes/MotionPlanning.png"; +- setWindowIcon(QIcon(icon_path.c_str())); ++ setWindowIcon(QIcon(icon_path.string().c_str())); + + // Basic widget container ----------------------------------------- + QHBoxLayout* layout = new QHBoxLayout(); diff --git a/recipes/ros-jazzy-moveit-setup-assistant/recipe.yaml b/recipes/ros-jazzy-moveit-setup-assistant/recipe.yaml new file mode 100644 index 00000000..fbb9541d --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-assistant/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-moveit-setup-assistant + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_setup_assistant/2.12.1-1 + target_directory: ros-jazzy-moveit-setup-assistant/src/work + patches: + - patch/ros-jazzy-moveit-setup-assistant.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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-gtest + - ros-jazzy-ament-index-cpp + - ros-jazzy-moveit-resources-panda-moveit-config + - ros-jazzy-moveit-setup-framework + - ros-jazzy-moveit-setup-srdf-plugins + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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-moveit-configs-utils + - ros-jazzy-moveit-setup-app-plugins + - ros-jazzy-moveit-setup-controllers + - ros-jazzy-moveit-setup-core-plugins + - ros-jazzy-moveit-setup-framework + - ros-jazzy-moveit-setup-srdf-plugins + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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-moveit-setup-controllers/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-setup-controllers/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-controllers/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-setup-controllers/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-setup-controllers/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-controllers/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-setup-controllers/recipe.yaml b/recipes/ros-jazzy-moveit-setup-controllers/recipe.yaml new file mode 100644 index 00000000..44a70407 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-controllers/recipe.yaml @@ -0,0 +1,108 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-moveit-setup-controllers + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_setup_controllers/2.12.1-1 + target_directory: ros-jazzy-moveit-setup-controllers/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-moveit-configs-utils + - ros-jazzy-moveit-resources-fanuc-moveit-config + - ros-jazzy-moveit-resources-panda-moveit-config + - ros-jazzy-moveit-setup-framework + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-moveit-setup-framework + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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-moveit-setup-core-plugins/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-setup-core-plugins/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-core-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-moveit-setup-core-plugins/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-setup-core-plugins/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-core-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-moveit-setup-core-plugins/patch/ros-jazzy-moveit-setup-core-plugins.patch b/recipes/ros-jazzy-moveit-setup-core-plugins/patch/ros-jazzy-moveit-setup-core-plugins.patch new file mode 100644 index 00000000..c742b556 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-core-plugins/patch/ros-jazzy-moveit-setup-core-plugins.patch @@ -0,0 +1,88 @@ +diff --git a/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen.cpp b/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen.cpp +index ff6827d6ff..b0550b1e90 100644 +--- a/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen.cpp ++++ b/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen.cpp +@@ -70,7 +70,7 @@ std::filesystem::path StartScreen::getPackagePath() + + void StartScreen::loadExisting(const std::filesystem::path& package_path) + { +- package_settings_->loadExisting(package_path); ++ package_settings_->loadExisting(package_path.string()); + } + + bool StartScreen::isXacroFile() +diff --git a/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen_widget.cpp b/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen_widget.cpp +index 70bae9ddc9..82da843d60 100644 +--- a/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen_widget.cpp ++++ b/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen_widget.cpp +@@ -79,7 +79,7 @@ void StartScreenWidget::onInit() + right_image_label_ = new QLabel(this); + auto image_path = getSharePath("moveit_setup_assistant") / "resources/MoveIt_Setup_Assistant2.png"; + +- if (right_image_->load(image_path.c_str())) ++ if (right_image_->load(image_path.string().c_str())) + { + right_image_label_->setPixmap(QPixmap::fromImage(*right_image_)); + right_image_label_->setMinimumHeight(384); // size of right_image_label_ +@@ -205,7 +205,7 @@ void StartScreenWidget::focusGiven() + std::filesystem::path pkg_path = setup_step_.getPackagePath(); + if (!pkg_path.empty()) + { +- stack_path_->setPath(pkg_path); ++ stack_path_->setPath(pkg_path.string()); + select_mode_->btn_exist_->click(); + return; + } +@@ -213,7 +213,7 @@ void StartScreenWidget::focusGiven() + std::filesystem::path urdf_path = setup_step_.getURDFPath(); + if (!urdf_path.empty()) + { +- urdf_file_->setPath(urdf_path); ++ urdf_file_->setPath(urdf_path.string()); + select_mode_->btn_new_->click(); + } + } +diff --git a/moveit_setup_assistant/moveit_setup_core_plugins/include/moveit_setup_core_plugins/configuration_files.hpp b/moveit_setup_assistant/moveit_setup_core_plugins/include/moveit_setup_core_plugins/configuration_files.hpp +index bfca1e8d62..3d3f3ab386 100644 +--- a/moveit_setup_assistant/moveit_setup_core_plugins/include/moveit_setup_core_plugins/configuration_files.hpp ++++ b/moveit_setup_assistant/moveit_setup_core_plugins/include/moveit_setup_core_plugins/configuration_files.hpp +@@ -80,7 +80,7 @@ class ConfigurationFiles : public SetupStep + + bool shouldGenerate(const GeneratedFilePtr& file) const + { +- std::string rel_path = file->getRelativePath(); ++ std::string rel_path = file->getRelativePath().string(); + auto it = should_generate_.find(rel_path); + if (it == should_generate_.end()) + { +diff --git a/moveit_setup_assistant/moveit_setup_core_plugins/src/configuration_files_widget.cpp b/moveit_setup_assistant/moveit_setup_core_plugins/src/configuration_files_widget.cpp +index 9c76fc1d52..3e689772e3 100644 +--- a/moveit_setup_assistant/moveit_setup_core_plugins/src/configuration_files_widget.cpp ++++ b/moveit_setup_assistant/moveit_setup_core_plugins/src/configuration_files_widget.cpp +@@ -294,7 +294,7 @@ void ConfigurationFilesWidget::changeCheckedState(QListWidgetItem* item) + } + + // Enable/disable file +- setup_step_.setShouldGenerate(gen_file->getRelativePath(), generate); ++ setup_step_.setShouldGenerate(gen_file->getRelativePath().string(), generate); + } + + // ****************************************************************************************** +@@ -303,7 +303,7 @@ void ConfigurationFilesWidget::changeCheckedState(QListWidgetItem* item) + void ConfigurationFilesWidget::focusGiven() + { + // Pass the package path from start screen to configuration files screen +- stack_path_->setPath(setup_step_.getPackagePath()); ++ stack_path_->setPath(setup_step_.getPackagePath().string()); + + setup_step_.loadFiles(); + +@@ -350,7 +350,7 @@ void ConfigurationFilesWidget::showGenFiles() + auto gen_file = gen_files[i]; + + // Create a formatted row +- QListWidgetItem* item = new QListWidgetItem(QString(gen_file->getRelativePath().c_str()), action_list_, 0); ++ QListWidgetItem* item = new QListWidgetItem(QString(gen_file->getRelativePath().string().c_str()), action_list_, 0); + + // Checkbox + item->setCheckState(setup_step_.shouldGenerate(gen_file) ? Qt::Checked : Qt::Unchecked); diff --git a/recipes/ros-jazzy-moveit-setup-core-plugins/recipe.yaml b/recipes/ros-jazzy-moveit-setup-core-plugins/recipe.yaml new file mode 100644 index 00000000..a1864b0e --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-core-plugins/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-moveit-setup-core-plugins + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_setup_core_plugins/2.12.1-1 + target_directory: ros-jazzy-moveit-setup-core-plugins/src/work + patches: + - patch/ros-jazzy-moveit-setup-core-plugins.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-index-cpp + - ros-jazzy-moveit-ros-visualization + - ros-jazzy-moveit-setup-framework + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-srdfdom + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-moveit-ros-visualization + - ros-jazzy-moveit-setup-framework + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-srdfdom + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* 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-moveit-setup-framework/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-setup-framework/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-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-moveit-setup-framework/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-setup-framework/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-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-moveit-setup-framework/patch/ros-jazzy-moveit-setup-framework.patch b/recipes/ros-jazzy-moveit-setup-framework/patch/ros-jazzy-moveit-setup-framework.patch new file mode 100644 index 00000000..d68cb7c0 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-framework/patch/ros-jazzy-moveit-setup-framework.patch @@ -0,0 +1,206 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3e3d417fb..91c15c6b2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -12,8 +12,7 @@ find_package(fmt REQUIRED) + find_package(moveit_core REQUIRED) + find_package(moveit_ros_planning REQUIRED) + find_package(moveit_ros_visualization REQUIRED) +-find_package(Qt5Core REQUIRED) +-find_package(Qt5Widgets REQUIRED) ++find_package(Qt5 COMPONENTS Core Widgets REQUIRED) + find_package(pluginlib REQUIRED) + find_package(rclcpp REQUIRED) + find_package(rviz_common REQUIRED) +@@ -43,6 +42,10 @@ add_library( + src/utilities.cpp + src/xml_syntax_highlighter.cpp + ${MOC_FILES}) ++ ++include(GenerateExportHeader) ++generate_export_header(${PROJECT_NAME}) ++ + target_include_directories( + moveit_setup_framework + PUBLIC $ +@@ -54,8 +57,7 @@ ament_target_dependencies( + moveit_ros_planning + moveit_ros_visualization + pluginlib +- Qt5Core +- Qt5Widgets ++ Qt5 + rclcpp + rviz_common + rviz_rendering +@@ -67,6 +69,7 @@ install(FILES moveit_setup_framework_plugins.xml + DESTINATION share/moveit_setup_framework) + + install(DIRECTORY templates DESTINATION share/moveit_setup_framework) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h DESTINATION include) + + ament_export_targets(moveit_setup_frameworkTargets HAS_LIBRARY_TARGET) + install( +diff --git a/include/moveit_setup_framework/data/srdf_config.hpp b/include/moveit_setup_framework/data/srdf_config.hpp +index 92508e025..5b7fed77d 100644 +--- a/include/moveit_setup_framework/data/srdf_config.hpp ++++ b/include/moveit_setup_framework/data/srdf_config.hpp +@@ -263,7 +263,7 @@ public: + + bool write(const std::filesystem::path& path) + { +- return srdf_.writeSRDF(path); ++ return srdf_.writeSRDF(path.string()); + } + + std::filesystem::path getPath() const +diff --git a/include/moveit_setup_framework/qt/setup_step_widget.hpp b/include/moveit_setup_framework/qt/setup_step_widget.hpp +index f32e7b5ad..c6f472682 100644 +--- a/include/moveit_setup_framework/qt/setup_step_widget.hpp ++++ b/include/moveit_setup_framework/qt/setup_step_widget.hpp +@@ -40,12 +40,14 @@ + #include + #include + ++#include ++ + namespace moveit_setup + { + /** + * @brief The GUI code for one SetupStep + */ +-class SetupStepWidget : public QWidget ++class MOVEIT_SETUP_FRAMEWORK_EXPORT SetupStepWidget : public QWidget + { + Q_OBJECT + public: +diff --git a/include/moveit_setup_framework/templates.hpp b/include/moveit_setup_framework/templates.hpp +index 1555eee16..b02d52024 100644 +--- a/include/moveit_setup_framework/templates.hpp ++++ b/include/moveit_setup_framework/templates.hpp +@@ -38,6 +38,8 @@ + #include + #include + ++#include ++ + namespace moveit_setup + { + /** +@@ -69,7 +71,7 @@ public: + + bool write() override; + +- static std::vector variables; ++ static MOVEIT_SETUP_FRAMEWORK_EXPORT std::vector variables; + }; + + } // namespace moveit_setup +diff --git a/src/srdf_config.cpp b/src/srdf_config.cpp +index d19bdbfa5..69002a3ec 100644 +--- a/src/srdf_config.cpp ++++ b/src/srdf_config.cpp +@@ -88,7 +88,7 @@ void SRDFConfig::loadSRDFFile(const std::filesystem::path& srdf_file_path, const + loadURDFModel(); + + std::string srdf_string; +- if (!rdf_loader::RDFLoader::loadXmlFileToString(srdf_string, srdf_path_, xacro_args)) ++ if (!rdf_loader::RDFLoader::loadXmlFileToString(srdf_string, srdf_path_.string(), xacro_args)) + { + throw std::runtime_error("SRDF file not found: " + srdf_path_.string()); + } +diff --git a/src/urdf_config.cpp b/src/urdf_config.cpp +index 72d9bf4af..3ca176656 100644 +--- a/src/urdf_config.cpp ++++ b/src/urdf_config.cpp +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + + namespace moveit_setup + { +@@ -121,7 +121,7 @@ void URDFConfig::setPackageName() + void URDFConfig::loadFromPackage(const std::filesystem::path& package_name, const std::filesystem::path& relative_path, + const std::string& xacro_args) + { +- const std::filesystem::path package_path = getSharePath(package_name); ++ const std::filesystem::path package_path = getSharePath(package_name.string()); + if (package_path.empty()) + { + throw std::runtime_error("URDF/COLLADA package not found: ''" + package_name.string()); + +diff --git a/src/urdf_config.cpp b/src/urdf_config.cpp +index 72d9bf4af..3ca176656 100644 +--- a/src/urdf_config.cpp ++++ b/src/urdf_config.cpp +@@ -126,7 +127,7 @@ void URDFConfig::loadFromPackage(const std::filesystem::path& package_name, cons + throw std::runtime_error("URDF/COLLADA package not found: ''" + package_name.string()); + } + +- urdf_pkg_name_ = package_name; ++ urdf_pkg_name_ = package_name.string(); + urdf_pkg_relative_path_ = relative_path; + xacro_args_ = xacro_args; + +@@ -139,12 +140,12 @@ void URDFConfig::load() + RCLCPP_DEBUG_STREAM(*logger_, "URDF Package Name: " << urdf_pkg_name_); + RCLCPP_DEBUG_STREAM(*logger_, "URDF Package Path: " << urdf_pkg_relative_path_); + +- if (!rdf_loader::RDFLoader::loadXmlFileToString(urdf_string_, urdf_path_, xacro_args_vec_)) ++ if (!rdf_loader::RDFLoader::loadXmlFileToString(urdf_string_, urdf_path_.string(), xacro_args_vec_)) + { + throw std::runtime_error("URDF/COLLADA file not found: " + urdf_path_.string()); + } + +- if (urdf_string_.empty() && rdf_loader::RDFLoader::isXacroFile(urdf_path_)) ++ if (urdf_string_.empty() && rdf_loader::RDFLoader::isXacroFile(urdf_path_.string())) + { + throw std::runtime_error("Running xacro failed.\nPlease check console for errors."); + } + +diff --git a/src/urdf_config.cpp b/src/urdf_config.cpp +index 72d9bf4af..3ca176656 100644 +--- a/src/urdf_config.cpp ++++ b/src/urdf_config.cpp +@@ -154,7 +155,7 @@ void URDFConfig::load() + { + throw std::runtime_error("URDF/COLLADA file is not a valid robot model."); + } +- urdf_from_xacro_ = rdf_loader::RDFLoader::isXacroFile(urdf_path_); ++ urdf_from_xacro_ = rdf_loader::RDFLoader::isXacroFile(urdf_path_.string()); + + // Set parameter + parent_node_->set_parameter(rclcpp::Parameter("robot_description", urdf_string_)); +@@ -164,7 +165,7 @@ void URDFConfig::load() + + bool URDFConfig::isXacroFile() const + { +- return rdf_loader::RDFLoader::isXacroFile(urdf_path_); ++ return rdf_loader::RDFLoader::isXacroFile(urdf_path_.string()); + } + + bool URDFConfig::isConfigured() const +@@ -182,7 +183,7 @@ void URDFConfig::collectVariables(std::vector& variables) + std::string urdf_location; + if (urdf_pkg_name_.empty()) + { +- urdf_location = urdf_path_; ++ urdf_location = urdf_path_.string(); + } + else + { +diff --git a/src/utilities.cpp b/src/utilities.cpp +index 3625d9459..43ade4b27 100644 +--- a/src/utilities.cpp ++++ b/src/utilities.cpp +@@ -63,7 +63,7 @@ bool extractPackageNameFromPath(const std::filesystem::path& path, std::string& + // Default package name to folder name + package_name = sub_path.filename().string(); + tinyxml2::XMLDocument package_xml_file; +- auto is_open = package_xml_file.LoadFile((sub_path / "package.xml").c_str()); ++ auto is_open = package_xml_file.LoadFile((sub_path / "package.xml").string().c_str()); + if (is_open == tinyxml2::XML_SUCCESS) + { + auto name_potential = diff --git a/recipes/ros-jazzy-moveit-setup-framework/recipe.yaml b/recipes/ros-jazzy-moveit-setup-framework/recipe.yaml new file mode 100644 index 00000000..8c193307 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-framework/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-moveit-setup-framework + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_setup_framework/2.12.1-1 + target_directory: ros-jazzy-moveit-setup-framework/src/work + patches: + - patch/ros-jazzy-moveit-setup-framework.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - fmt + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-index-cpp + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-ros-planning + - ros-jazzy-moveit-ros-visualization + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-common + - ros-jazzy-rviz-rendering + - ros-jazzy-srdfdom + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - fmt + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-ros-planning + - ros-jazzy-moveit-ros-visualization + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-common + - ros-jazzy-rviz-rendering + - ros-jazzy-srdfdom + - ros-jazzy-urdf + - ros2-distro-mutex 0.7.* 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-moveit-setup-srdf-plugins/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-setup-srdf-plugins/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-srdf-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-moveit-setup-srdf-plugins/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-setup-srdf-plugins/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-srdf-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-moveit-setup-srdf-plugins/recipe.yaml b/recipes/ros-jazzy-moveit-setup-srdf-plugins/recipe.yaml new file mode 100644 index 00000000..c7ad13c6 --- /dev/null +++ b/recipes/ros-jazzy-moveit-setup-srdf-plugins/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-moveit-setup-srdf-plugins + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_setup_srdf_plugins/2.12.1-1 + target_directory: ros-jazzy-moveit-setup-srdf-plugins/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-moveit-resources-fanuc-description + - ros-jazzy-moveit-setup-framework + - ros-jazzy-pluginlib + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-moveit-setup-framework + - ros-jazzy-pluginlib + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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-moveit-simple-controller-manager/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-simple-controller-manager/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-simple-controller-manager/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit-simple-controller-manager/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-simple-controller-manager/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-simple-controller-manager/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit-simple-controller-manager/recipe.yaml b/recipes/ros-jazzy-moveit-simple-controller-manager/recipe.yaml new file mode 100644 index 00000000..22118238 --- /dev/null +++ b/recipes/ros-jazzy-moveit-simple-controller-manager/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-moveit-simple-controller-manager + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit_simple_controller_manager/2.12.1-1 + target_directory: ros-jazzy-moveit-simple-controller-manager/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-control-msgs + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-control-msgs + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-moveit-visual-tools/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit-visual-tools/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit-visual-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-moveit-visual-tools/build_ament_cmake.sh b/recipes/ros-jazzy-moveit-visual-tools/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit-visual-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-moveit-visual-tools/recipe.yaml b/recipes/ros-jazzy-moveit-visual-tools/recipe.yaml new file mode 100644 index 00000000..7a25be5e --- /dev/null +++ b/recipes/ros-jazzy-moveit-visual-tools/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-moveit-visual-tools + version: 4.1.2 +source: + git: https://github.com/ros2-gbp/moveit_visual_tools-release.git + tag: release/jazzy/moveit_visual_tools/4.1.2-1 + target_directory: ros-jazzy-moveit-visual-tools/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-graph-msgs + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-ros-planning + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-visual-tools + - ros-jazzy-std-msgs + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-ros + - ros-jazzy-trajectory-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-graph-msgs + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-ros-planning + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-visual-tools + - ros-jazzy-std-msgs + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-ros + - ros-jazzy-trajectory-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* 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-moveit/bld_ament_cmake.bat b/recipes/ros-jazzy-moveit/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-moveit/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-moveit/build_ament_cmake.sh b/recipes/ros-jazzy-moveit/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-moveit/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-moveit/recipe.yaml b/recipes/ros-jazzy-moveit/recipe.yaml new file mode 100644 index 00000000..39aa7550 --- /dev/null +++ b/recipes/ros-jazzy-moveit/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-moveit + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/moveit/2.12.1-1 + target_directory: ros-jazzy-moveit/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - python + - ros-jazzy-moveit-core + - ros-jazzy-moveit-planners + - ros-jazzy-moveit-plugins + - ros-jazzy-moveit-ros + - ros-jazzy-moveit-setup-assistant + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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-nav-2d-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-nav-2d-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav-2d-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-2d-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-nav-2d-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav-2d-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-2d-msgs/recipe.yaml b/recipes/ros-jazzy-nav-2d-msgs/recipe.yaml new file mode 100644 index 00000000..aa9846bf --- /dev/null +++ b/recipes/ros-jazzy-nav-2d-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-nav-2d-msgs + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav_2d_msgs/1.3.4-1 + target_directory: ros-jazzy-nav-2d-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav-2d-utils/bld_ament_cmake.bat b/recipes/ros-jazzy-nav-2d-utils/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav-2d-utils/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-2d-utils/build_ament_cmake.sh b/recipes/ros-jazzy-nav-2d-utils/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav-2d-utils/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-2d-utils/recipe.yaml b/recipes/ros-jazzy-nav-2d-utils/recipe.yaml new file mode 100644 index 00000000..80af2d64 --- /dev/null +++ b/recipes/ros-jazzy-nav-2d-utils/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-nav-2d-utils + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav_2d_utils/1.3.4-1 + target_directory: ros-jazzy-nav-2d-utils/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-nav-2d-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros2-distro-mutex 0.7.* 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..7a18cac6 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-amcl/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-amcl/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-amcl/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-amcl/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-amcl/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-amcl/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-amcl/recipe.yaml b/recipes/ros-jazzy-nav2-amcl/recipe.yaml new file mode 100644 index 00000000..f4e5cc26 --- /dev/null +++ b/recipes/ros-jazzy-nav2-amcl/recipe.yaml @@ -0,0 +1,115 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-nav2-amcl + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_amcl/1.3.4-1 + target_directory: ros-jazzy-nav2-amcl/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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 + - ros-jazzy-message-filters + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-message-filters + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-behavior-tree/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-behavior-tree/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-behavior-tree/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-behavior-tree/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-behavior-tree/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-behavior-tree/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-behavior-tree/recipe.yaml b/recipes/ros-jazzy-nav2-behavior-tree/recipe.yaml new file mode 100644 index 00000000..72192e34 --- /dev/null +++ b/recipes/ros-jazzy-nav2-behavior-tree/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-nav2-behavior-tree + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_behavior_tree/1.3.4-1 + target_directory: ros-jazzy-nav2-behavior-tree/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-behaviortree-cpp + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-lifecycle-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-test-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-behaviortree-cpp + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-lifecycle-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-behaviors/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-behaviors/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-behaviors/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-behaviors/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-behaviors/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-behaviors/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-behaviors/recipe.yaml b/recipes/ros-jazzy-nav2-behaviors/recipe.yaml new file mode 100644 index 00000000..712140a9 --- /dev/null +++ b/recipes/ros-jazzy-nav2-behaviors/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-nav2-behaviors + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_behaviors/1.3.4-1 + target_directory: ros-jazzy-nav2-behaviors/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-nav-msgs + - ros-jazzy-nav2-behavior-tree + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-behavior-tree + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-bt-navigator/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-bt-navigator/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-bt-navigator/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-bt-navigator/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-bt-navigator/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-bt-navigator/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-bt-navigator/recipe.yaml b/recipes/ros-jazzy-nav2-bt-navigator/recipe.yaml new file mode 100644 index 00000000..b5635d9a --- /dev/null +++ b/recipes/ros-jazzy-nav2-bt-navigator/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-nav2-bt-navigator + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_bt_navigator/1.3.4-1 + target_directory: ros-jazzy-nav2-bt-navigator/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-behaviortree-cpp + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-behavior-tree + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-behaviortree-cpp + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-behavior-tree + - ros-jazzy-nav2-core + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-collision-monitor/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-collision-monitor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-collision-monitor/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-collision-monitor/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-collision-monitor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-collision-monitor/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-collision-monitor/recipe.yaml b/recipes/ros-jazzy-nav2-collision-monitor/recipe.yaml new file mode 100644 index 00000000..9d27f4f2 --- /dev/null +++ b/recipes/ros-jazzy-nav2-collision-monitor/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-nav2-collision-monitor + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_collision_monitor/1.3.4-1 + target_directory: ros-jazzy-nav2-collision-monitor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-nav2-common + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - 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-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-common/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-common/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-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-nav2-common/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-common/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-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-nav2-common/patch/ros-jazzy-nav2-common.patch b/recipes/ros-jazzy-nav2-common/patch/ros-jazzy-nav2-common.patch new file mode 100644 index 00000000..f22d44e4 --- /dev/null +++ b/recipes/ros-jazzy-nav2-common/patch/ros-jazzy-nav2-common.patch @@ -0,0 +1,13 @@ +diff --git a/nav2_common/cmake/nav2_package.cmake b/nav2_common/cmake/nav2_package.cmake +index 3f4977193c..01ca1c3ed2 100644 +--- a/nav2_common/cmake/nav2_package.cmake ++++ b/nav2_common/cmake/nav2_package.cmake +@@ -37,7 +37,7 @@ macro(nav2_package) + endif() + + if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") +- add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wdeprecated -fPIC -Wshadow -Wnull-dereference) ++ add_compile_options(-Wall -Wextra -Wpedantic -Wdeprecated -fPIC -Wshadow -Wnull-dereference) + add_compile_options("$<$:-Wnon-virtual-dtor>") + endif() + diff --git a/recipes/ros-jazzy-nav2-common/recipe.yaml b/recipes/ros-jazzy-nav2-common/recipe.yaml new file mode 100644 index 00000000..dbfce0cf --- /dev/null +++ b/recipes/ros-jazzy-nav2-common/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-nav2-common + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_common/1.3.4-1 + target_directory: ros-jazzy-nav2-common/src/work + patches: + - patch/ros-jazzy-nav2-common.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-core + - ros-jazzy-ament-cmake-python + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-osrf-pycommon + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - pyyaml + - ros-jazzy-ament-cmake-core + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-osrf-pycommon + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-constrained-smoother/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-constrained-smoother/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-constrained-smoother/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-constrained-smoother/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-constrained-smoother/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-constrained-smoother/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-constrained-smoother/recipe.yaml b/recipes/ros-jazzy-nav2-constrained-smoother/recipe.yaml new file mode 100644 index 00000000..c5268f41 --- /dev/null +++ b/recipes/ros-jazzy-nav2-constrained-smoother/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-nav2-constrained-smoother + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_constrained_smoother/1.3.4-1 + target_directory: ros-jazzy-nav2-constrained-smoother/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - ${{ 'openblas' if win }} + - if: build_platform == target_platform + then: + - pkg-config + - ceres-solver + - 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-angles + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - ceres-solver + - python + - ros-jazzy-angles + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-controller/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-controller/recipe.yaml b/recipes/ros-jazzy-nav2-controller/recipe.yaml new file mode 100644 index 00000000..84170cc7 --- /dev/null +++ b/recipes/ros-jazzy-nav2-controller/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-nav2-controller + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_controller/1.3.4-1 + target_directory: ros-jazzy-nav2-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-angles + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-angles + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-core/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-core/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-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-nav2-core/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-core/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-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-nav2-core/recipe.yaml b/recipes/ros-jazzy-nav2-core/recipe.yaml new file mode 100644 index 00000000..6768c918 --- /dev/null +++ b/recipes/ros-jazzy-nav2-core/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-nav2-core + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_core/1.3.4-1 + target_directory: ros-jazzy-nav2-core/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-launch + - ros-jazzy-launch-testing + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-behavior-tree + - ros-jazzy-nav2-common + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-behavior-tree + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-costmap-2d/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-costmap-2d/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-costmap-2d/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-costmap-2d/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-costmap-2d/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-costmap-2d/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-costmap-2d/patch/ros-jazzy-nav2-costmap-2d.patch b/recipes/ros-jazzy-nav2-costmap-2d/patch/ros-jazzy-nav2-costmap-2d.patch new file mode 100644 index 00000000..974334df --- /dev/null +++ b/recipes/ros-jazzy-nav2-costmap-2d/patch/ros-jazzy-nav2-costmap-2d.patch @@ -0,0 +1,56 @@ +diff --git a/include/nav2_costmap_2d/plugin_container_layer.hpp b/include/nav2_costmap_2d/plugin_container_layer.hpp +index e98c7b813..fb1d23e2e 100644 +--- a/include/nav2_costmap_2d/plugin_container_layer.hpp ++++ b/include/nav2_costmap_2d/plugin_container_layer.hpp +@@ -46,7 +46,7 @@ public: + /** + * @brief Initialization process of layer on startup + */ +- virtual void onInitialize(); ++ virtual void onInitialize() override; + /** + * @brief Update the bounds of the master costmap by this layer's update + *dimensions +@@ -65,7 +65,7 @@ public: + double * min_x, + double * min_y, + double * max_x, +- double * max_y); ++ double * max_y) override; + /** + * @brief Update the costs in the master costmap in the window + * @param master_grid The master costmap grid to update +@@ -79,26 +79,26 @@ public: + int min_i, + int min_j, + int max_i, +- int max_j); +- virtual void onFootprintChanged(); ++ int max_j) override; ++ virtual void onFootprintChanged() override; + /** @brief Update the footprint to match size of the parent costmap. */ +- virtual void matchSize(); ++ virtual void matchSize() override; + /** + * @brief Deactivate the layer + */ +- virtual void deactivate(); ++ virtual void deactivate() override; + /** + * @brief Activate the layer + */ +- virtual void activate(); ++ virtual void activate() override; + /** + * @brief Reset this costmap + */ +- virtual void reset(); ++ virtual void reset() override; + /** + * @brief If clearing operations should be processed on this layer or not + */ +- virtual bool isClearable(); ++ virtual bool isClearable() override; + /** + * @brief Clear an area in the constituent costmaps with the given dimension + * if invert, then clear everything except these dimensions diff --git a/recipes/ros-jazzy-nav2-costmap-2d/recipe.yaml b/recipes/ros-jazzy-nav2-costmap-2d/recipe.yaml new file mode 100644 index 00000000..c87e3a5d --- /dev/null +++ b/recipes/ros-jazzy-nav2-costmap-2d/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-nav2-costmap-2d + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_costmap_2d/1.3.4-1 + target_directory: ros-jazzy-nav2-costmap-2d/src/work + patches: + - patch/ros-jazzy-nav2-costmap-2d.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-angles + - ros-jazzy-geometry-msgs + - ros-jazzy-laser-geometry + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-map-msgs + - ros-jazzy-message-filters + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-lifecycle-manager + - ros-jazzy-nav2-map-server + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-nav2-voxel-grid + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-tf2-sensor-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-angles + - ros-jazzy-geometry-msgs + - ros-jazzy-laser-geometry + - ros-jazzy-map-msgs + - ros-jazzy-message-filters + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-nav2-voxel-grid + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-tf2-sensor-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-dwb-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-dwb-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-dwb-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-dwb-controller/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-dwb-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-dwb-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-dwb-controller/recipe.yaml b/recipes/ros-jazzy-nav2-dwb-controller/recipe.yaml new file mode 100644 index 00000000..3d87cd37 --- /dev/null +++ b/recipes/ros-jazzy-nav2-dwb-controller/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-nav2-dwb-controller + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_dwb_controller/1.3.4-1 + target_directory: ros-jazzy-nav2-dwb-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-costmap-queue + - ros-jazzy-dwb-core + - ros-jazzy-dwb-critics + - ros-jazzy-dwb-msgs + - ros-jazzy-dwb-plugins + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-costmap-queue + - ros-jazzy-dwb-core + - ros-jazzy-dwb-critics + - ros-jazzy-dwb-msgs + - ros-jazzy-dwb-plugins + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-graceful-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-graceful-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-graceful-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-graceful-controller/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-graceful-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-graceful-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-graceful-controller/recipe.yaml b/recipes/ros-jazzy-nav2-graceful-controller/recipe.yaml new file mode 100644 index 00000000..687c64fc --- /dev/null +++ b/recipes/ros-jazzy-nav2-graceful-controller/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-nav2-graceful-controller + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_graceful_controller/1.3.4-1 + target_directory: ros-jazzy-nav2-graceful-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-angles + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-nav2-common + - ros-jazzy-nav2-controller + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-angles + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-lifecycle-manager/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-lifecycle-manager/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-lifecycle-manager/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-lifecycle-manager/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-lifecycle-manager/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-lifecycle-manager/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-lifecycle-manager/recipe.yaml b/recipes/ros-jazzy-nav2-lifecycle-manager/recipe.yaml new file mode 100644 index 00000000..08ff9210 --- /dev/null +++ b/recipes/ros-jazzy-nav2-lifecycle-manager/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-nav2-lifecycle-manager + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_lifecycle_manager/1.3.4-1 + target_directory: ros-jazzy-nav2-lifecycle-manager/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-bondcpp + - ros-jazzy-diagnostic-updater + - ros-jazzy-geometry-msgs + - ros-jazzy-lifecycle-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2-geometry-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-bondcpp + - ros-jazzy-diagnostic-updater + - ros-jazzy-geometry-msgs + - ros-jazzy-lifecycle-msgs + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2-geometry-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-map-server/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-map-server/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-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-nav2-map-server/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-map-server/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-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-nav2-map-server/recipe.yaml b/recipes/ros-jazzy-nav2-map-server/recipe.yaml new file mode 100644 index 00000000..9617d1a0 --- /dev/null +++ b/recipes/ros-jazzy-nav2-map-server/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-nav2-map-server + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_map_server/1.3.4-1 + target_directory: ros-jazzy-nav2-map-server/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - graphicsmagick + - 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-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.7.* jazzy_* + run: + - graphicsmagick + - python + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-mppi-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-mppi-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-mppi-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-mppi-controller/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-mppi-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-mppi-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-mppi-controller/patch/ros-jazzy-nav2-mppi-controller.patch b/recipes/ros-jazzy-nav2-mppi-controller/patch/ros-jazzy-nav2-mppi-controller.patch new file mode 100644 index 00000000..b9228c74 --- /dev/null +++ b/recipes/ros-jazzy-nav2-mppi-controller/patch/ros-jazzy-nav2-mppi-controller.patch @@ -0,0 +1,37 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 95eabf6c4..567c3e5fb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -52,7 +52,7 @@ if(COMPILER_SUPPORTS_AVX512) + add_compile_options(-mno-avx512f) + endif() + +-if(COMPILER_SUPPORTS_SSE4) ++if(COMPILER_SUPPORTS_SSE4 AND NOT APPLE) + add_compile_options(-msse4.2) + endif() + +@@ -65,7 +65,11 @@ if(COMPILER_SUPPORTS_FMA) + endif() + + # If building one the same hardware to be deployed on, try `-march=native`! +-add_compile_options(-O3 -finline-limit=10000000 -ffp-contract=fast -ffast-math -mtune=generic) ++if(APPLE) ++ add_compile_options(-O3 -ffp-contract=fast -ffast-math -mtune=generic) ++else() ++ add_compile_options(-O3 -finline-limit=10000000 -ffp-contract=fast -ffast-math -mtune=generic) ++endif() + + add_library(mppi_controller SHARED + src/controller.cpp +@@ -94,7 +98,9 @@ add_library(mppi_critics SHARED + set(libraries mppi_controller mppi_critics) + + foreach(lib IN LISTS libraries) +- target_compile_options(${lib} PUBLIC -fconcepts) ++ if(NOT APPLE) ++ target_compile_options(${lib} PUBLIC -fconcepts) ++ endif() + target_include_directories(${lib} PUBLIC ${xsimd_INCLUDE_DIRS}) # ${OpenMP_INCLUDE_DIRS} + target_link_libraries(${lib} xtensor xtensor::optimize xtensor::use_xsimd) + ament_target_dependencies(${lib} ${dependencies_pkgs}) diff --git a/recipes/ros-jazzy-nav2-mppi-controller/recipe.yaml b/recipes/ros-jazzy-nav2-mppi-controller/recipe.yaml new file mode 100644 index 00000000..064e2eac --- /dev/null +++ b/recipes/ros-jazzy-nav2-mppi-controller/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-nav2-mppi-controller + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_mppi_controller/1.3.4-1 + target_directory: ros-jazzy-nav2-mppi-controller/src/work + patches: + - patch/ros-jazzy-nav2-mppi-controller.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - ${{ 'clang <19' if osx }} + host: + - benchmark + - if: build_platform == target_platform + then: + - pkg-config + - llvm-openmp + - 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-geometry-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - xsimd + - xtensor ==0.24.7 + run: + - benchmark + - llvm-openmp + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - xsimd + - xtensor + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-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-nav2-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-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-nav2-msgs/recipe.yaml b/recipes/ros-jazzy-nav2-msgs/recipe.yaml new file mode 100644 index 00000000..1f67d6c1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-msgs/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-nav2-msgs + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_msgs/1.3.4-1 + target_directory: ros-jazzy-nav2-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-builtin-interfaces + - ros-jazzy-geographic-msgs + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-builtin-interfaces + - ros-jazzy-geographic-msgs + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-navfn-planner/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-navfn-planner/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-navfn-planner/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-navfn-planner/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-navfn-planner/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-navfn-planner/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-navfn-planner/recipe.yaml b/recipes/ros-jazzy-nav2-navfn-planner/recipe.yaml new file mode 100644 index 00000000..e10ef5eb --- /dev/null +++ b/recipes/ros-jazzy-nav2-navfn-planner/recipe.yaml @@ -0,0 +1,115 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-nav2-navfn-planner + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_navfn_planner/1.3.4-1 + target_directory: ros-jazzy-nav2-navfn-planner/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-planner/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-planner/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-planner/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-planner/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-planner/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-planner/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-planner/recipe.yaml b/recipes/ros-jazzy-nav2-planner/recipe.yaml new file mode 100644 index 00000000..2754f775 --- /dev/null +++ b/recipes/ros-jazzy-nav2-planner/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-nav2-planner + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_planner/1.3.4-1 + target_directory: ros-jazzy-nav2-planner/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-regulated-pure-pursuit-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-regulated-pure-pursuit-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-regulated-pure-pursuit-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-regulated-pure-pursuit-controller/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-regulated-pure-pursuit-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-regulated-pure-pursuit-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-regulated-pure-pursuit-controller/recipe.yaml b/recipes/ros-jazzy-nav2-regulated-pure-pursuit-controller/recipe.yaml new file mode 100644 index 00000000..e129b529 --- /dev/null +++ b/recipes/ros-jazzy-nav2-regulated-pure-pursuit-controller/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-nav2-regulated-pure-pursuit-controller + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_regulated_pure_pursuit_controller/1.3.4-1 + target_directory: ros-jazzy-nav2-regulated-pure-pursuit-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-angles + - ros-jazzy-geometry-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-angles + - ros-jazzy-geometry-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-rotation-shim-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-rotation-shim-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-rotation-shim-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-rotation-shim-controller/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-rotation-shim-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-rotation-shim-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-rotation-shim-controller/recipe.yaml b/recipes/ros-jazzy-nav2-rotation-shim-controller/recipe.yaml new file mode 100644 index 00000000..214e37f7 --- /dev/null +++ b/recipes/ros-jazzy-nav2-rotation-shim-controller/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-nav2-rotation-shim-controller + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_rotation_shim_controller/1.3.4-1 + target_directory: ros-jazzy-nav2-rotation-shim-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-angles + - ros-jazzy-geometry-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-controller + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-regulated-pure-pursuit-controller + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-angles + - ros-jazzy-geometry-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-rviz-plugins/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-rviz-plugins/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-rviz-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-nav2-rviz-plugins/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-rviz-plugins/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-rviz-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-nav2-rviz-plugins/patch/ros-jazzy-nav2-rviz-plugins.patch b/recipes/ros-jazzy-nav2-rviz-plugins/patch/ros-jazzy-nav2-rviz-plugins.patch new file mode 100644 index 00000000..177fb6af --- /dev/null +++ b/recipes/ros-jazzy-nav2-rviz-plugins/patch/ros-jazzy-nav2-rviz-plugins.patch @@ -0,0 +1,43 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c5f5c788a..dbb0f0d3b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -7,7 +7,7 @@ if(NOT CMAKE_CXX_STANDARD) + endif() + + if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") +- add_compile_options(-Wall -Wextra -Wpedantic -Werror) ++ add_compile_options(-Wall -Wextra -Wpedantic) + endif() + + # Qt5 boilerplate options from http://doc.qt.io/qt-5/cmake-manual.html +diff --git a/src/costmap_cost_tool.cpp b/src/costmap_cost_tool.cpp +index f25a71cd8..93d234043 100644 +--- a/src/costmap_cost_tool.cpp ++++ b/src/costmap_cost_tool.cpp +@@ -50,6 +50,10 @@ void CostmapCostTool::onInitialize() + node_->create_client("/global_costmap/get_cost_global_costmap"); + } + ++void CostmapCostTool::updateAutoDeactivate() { ++ // TODO: Add implementation ++} ++ + void CostmapCostTool::activate() {} + void CostmapCostTool::deactivate() {} + +diff --git a/src/docking_panel.cpp b/src/docking_panel.cpp +index 62304a825..291a570f9 100644 +--- a/src/docking_panel.cpp ++++ b/src/docking_panel.cpp +@@ -311,6 +311,10 @@ void DockingPanel::save(rviz_common::Config config) const + Panel::save(config); + } + ++void DockingPanel::onStartup() { ++ // TODO: Add implementation ++} ++ + void DockingPanel::onDockingButtonPressed() + { + auto is_action_server_ready = diff --git a/recipes/ros-jazzy-nav2-rviz-plugins/recipe.yaml b/recipes/ros-jazzy-nav2-rviz-plugins/recipe.yaml new file mode 100644 index 00000000..da123597 --- /dev/null +++ b/recipes/ros-jazzy-nav2-rviz-plugins/recipe.yaml @@ -0,0 +1,141 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-nav2-rviz-plugins + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_rviz_plugins/1.3.4-1 + target_directory: ros-jazzy-nav2-rviz-plugins/src/work + patches: + - patch/ros-jazzy-nav2-rviz-plugins.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-lifecycle-manager + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-resource-retriever + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-common + - ros-jazzy-rviz-default-plugins + - ros-jazzy-rviz-ogre-vendor + - ros-jazzy-rviz-rendering + - ros-jazzy-std-msgs + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-urdf + - ros-jazzy-visualization-msgs + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.7.* 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-nav-msgs + - ros-jazzy-nav2-lifecycle-manager + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-resource-retriever + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-common + - ros-jazzy-rviz-default-plugins + - ros-jazzy-rviz-ogre-vendor + - ros-jazzy-rviz-rendering + - ros-jazzy-std-msgs + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-urdf + - ros-jazzy-visualization-msgs + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.7.* 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-nav2-simple-commander/bld_ament_python.bat b/recipes/ros-jazzy-nav2-simple-commander/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-nav2-simple-commander/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-nav2-simple-commander/build_ament_python.sh b/recipes/ros-jazzy-nav2-simple-commander/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-nav2-simple-commander/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-nav2-simple-commander/recipe.yaml b/recipes/ros-jazzy-nav2-simple-commander/recipe.yaml new file mode 100644 index 00000000..2bf79f97 --- /dev/null +++ b/recipes/ros-jazzy-nav2-simple-commander/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-nav2-simple-commander + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_simple_commander/1.3.4-1 + target_directory: ros-jazzy-nav2-simple-commander/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-geometry-msgs + - ros-jazzy-lifecycle-msgs + - ros-jazzy-nav2-msgs + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-smac-planner/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-smac-planner/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-smac-planner/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-smac-planner/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-smac-planner/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-smac-planner/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-smac-planner/recipe.yaml b/recipes/ros-jazzy-nav2-smac-planner/recipe.yaml new file mode 100644 index 00000000..887958f9 --- /dev/null +++ b/recipes/ros-jazzy-nav2-smac-planner/recipe.yaml @@ -0,0 +1,130 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-nav2-smac-planner + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_smac_planner/1.3.4-1 + target_directory: ros-jazzy-nav2-smac-planner/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - ${{ 'llvm-openmp' if osx }} + host: + - ${{ 'llvm-openmp' if osx }} + - if: build_platform == target_platform + then: + - pkg-config + - eigen + - libode + - nlohmann_json + - numpy + - ompl + - 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-angles + - ros-jazzy-builtin-interfaces + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-ompl + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - eigen + - nlohmann_json + - python + - ros-jazzy-angles + - ros-jazzy-builtin-interfaces + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-ompl + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-smoother/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-smoother/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-smoother/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-smoother/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-smoother/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-smoother/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-smoother/recipe.yaml b/recipes/ros-jazzy-nav2-smoother/recipe.yaml new file mode 100644 index 00000000..1eb58aa2 --- /dev/null +++ b/recipes/ros-jazzy-nav2-smoother/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-nav2-smoother + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_smoother/1.3.4-1 + target_directory: ros-jazzy-nav2-smoother/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-angles + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-angles + - ros-jazzy-nav-2d-msgs + - ros-jazzy-nav-2d-utils + - ros-jazzy-nav2-core + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-theta-star-planner/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-theta-star-planner/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-theta-star-planner/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-theta-star-planner/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-theta-star-planner/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-theta-star-planner/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-theta-star-planner/recipe.yaml b/recipes/ros-jazzy-nav2-theta-star-planner/recipe.yaml new file mode 100644 index 00000000..f7eb7a15 --- /dev/null +++ b/recipes/ros-jazzy-nav2-theta-star-planner/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-nav2-theta-star-planner + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_theta_star_planner/1.3.4-1 + target_directory: ros-jazzy-nav2-theta-star-planner/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-util/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-util/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-util/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-util/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-util/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-util/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-util/patch/ros-jazzy-nav2-util.patch b/recipes/ros-jazzy-nav2-util/patch/ros-jazzy-nav2-util.patch new file mode 100644 index 00000000..babfabcd --- /dev/null +++ b/recipes/ros-jazzy-nav2-util/patch/ros-jazzy-nav2-util.patch @@ -0,0 +1,22 @@ +diff --git a/src/node_utils.cpp b/src/node_utils.cpp +index 993eaf53b..83ab5ebaa 100644 +--- a/src/node_utils.cpp ++++ b/src/node_utils.cpp +@@ -92,6 +92,9 @@ rclcpp::Node::SharedPtr generate_internal_node(const std::string & prefix) + + void setSoftRealTimePriority() + { ++#if defined(__APPLE__) || defined(_WIN32) ++ throw std::runtime_error("Cannot set as real-time thread if not on Linux!"); ++#else + sched_param sch; + sch.sched_priority = 49; + if (sched_setscheduler(0, SCHED_FIFO, &sch) == -1) { +@@ -101,6 +104,7 @@ void setSoftRealTimePriority() + "realtime prioritization! Error: "); + throw std::runtime_error(errmsg + std::strerror(errno)); + } ++#endif + } + + } // namespace nav2_util diff --git a/recipes/ros-jazzy-nav2-util/recipe.yaml b/recipes/ros-jazzy-nav2-util/recipe.yaml new file mode 100644 index 00000000..3b526b29 --- /dev/null +++ b/recipes/ros-jazzy-nav2-util/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-nav2-util + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_util/1.3.4-1 + target_directory: ros-jazzy-nav2-util/src/work + patches: + - patch/ros-jazzy-nav2-util.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - 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-bond + - ros-jazzy-bondcpp + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-lifecycle-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-msgs + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-test-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-bond + - ros-jazzy-bondcpp + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-lifecycle-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-msgs + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-velocity-smoother/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-velocity-smoother/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-velocity-smoother/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-velocity-smoother/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-velocity-smoother/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-velocity-smoother/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-velocity-smoother/recipe.yaml b/recipes/ros-jazzy-nav2-velocity-smoother/recipe.yaml new file mode 100644 index 00000000..c268f257 --- /dev/null +++ b/recipes/ros-jazzy-nav2-velocity-smoother/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-nav2-velocity-smoother + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_velocity_smoother/1.3.4-1 + target_directory: ros-jazzy-nav2-velocity-smoother/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-nav2-common + - ros-jazzy-nav2-util + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-nav2-util + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-voxel-grid/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-voxel-grid/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-voxel-grid/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-voxel-grid/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-voxel-grid/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-voxel-grid/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-voxel-grid/recipe.yaml b/recipes/ros-jazzy-nav2-voxel-grid/recipe.yaml new file mode 100644 index 00000000..c4589964 --- /dev/null +++ b/recipes/ros-jazzy-nav2-voxel-grid/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-nav2-voxel-grid + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_voxel_grid/1.3.4-1 + target_directory: ros-jazzy-nav2-voxel-grid/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-nav2-common + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nav2-waypoint-follower/bld_ament_cmake.bat b/recipes/ros-jazzy-nav2-waypoint-follower/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nav2-waypoint-follower/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-nav2-waypoint-follower/build_ament_cmake.sh b/recipes/ros-jazzy-nav2-waypoint-follower/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nav2-waypoint-follower/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-nav2-waypoint-follower/recipe.yaml b/recipes/ros-jazzy-nav2-waypoint-follower/recipe.yaml new file mode 100644 index 00000000..ea9aae21 --- /dev/null +++ b/recipes/ros-jazzy-nav2-waypoint-follower/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-nav2-waypoint-follower + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/nav2_waypoint_follower/1.3.4-1 + target_directory: ros-jazzy-nav2-waypoint-follower/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-cv-bridge + - ros-jazzy-geographic-msgs + - ros-jazzy-image-transport + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-robot-localization + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-cv-bridge + - ros-jazzy-geographic-msgs + - ros-jazzy-image-transport + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-common + - ros-jazzy-nav2-core + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-robot-localization + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-navigation2/bld_ament_cmake.bat b/recipes/ros-jazzy-navigation2/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-navigation2/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-navigation2/build_ament_cmake.sh b/recipes/ros-jazzy-navigation2/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-navigation2/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-navigation2/recipe.yaml b/recipes/ros-jazzy-navigation2/recipe.yaml new file mode 100644 index 00000000..25aecbe8 --- /dev/null +++ b/recipes/ros-jazzy-navigation2/recipe.yaml @@ -0,0 +1,115 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-navigation2 + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/navigation2/1.3.4-1 + target_directory: ros-jazzy-navigation2/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-nav2-amcl + - ros-jazzy-nav2-behavior-tree + - ros-jazzy-nav2-behaviors + - ros-jazzy-nav2-bt-navigator + - ros-jazzy-nav2-collision-monitor + - ros-jazzy-nav2-constrained-smoother + - ros-jazzy-nav2-controller + - ros-jazzy-nav2-core + - ros-jazzy-nav2-costmap-2d + - ros-jazzy-nav2-dwb-controller + - ros-jazzy-nav2-graceful-controller + - ros-jazzy-nav2-lifecycle-manager + - ros-jazzy-nav2-map-server + - ros-jazzy-nav2-mppi-controller + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-navfn-planner + - ros-jazzy-nav2-planner + - ros-jazzy-nav2-regulated-pure-pursuit-controller + - ros-jazzy-nav2-rotation-shim-controller + - ros-jazzy-nav2-rviz-plugins + - ros-jazzy-nav2-simple-commander + - ros-jazzy-nav2-smac-planner + - ros-jazzy-nav2-smoother + - ros-jazzy-nav2-theta-star-planner + - ros-jazzy-nav2-util + - ros-jazzy-nav2-velocity-smoother + - ros-jazzy-nav2-voxel-grid + - ros-jazzy-nav2-waypoint-follower + - ros-jazzy-opennav-docking + - ros-jazzy-opennav-docking-bt + - ros-jazzy-opennav-docking-core + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-nmea-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-nmea-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-nmea-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-nmea-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-nmea-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-nmea-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-nmea-msgs/recipe.yaml b/recipes/ros-jazzy-nmea-msgs/recipe.yaml new file mode 100644 index 00000000..ad43e9b4 --- /dev/null +++ b/recipes/ros-jazzy-nmea-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-nmea-msgs + version: 2.1.0 +source: + git: https://github.com/ros2-gbp/nmea_msgs-release.git + tag: release/jazzy/nmea_msgs/2.1.0-3 + target_directory: ros-jazzy-nmea-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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 + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-object-recognition-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-object-recognition-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-object-recognition-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-object-recognition-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-object-recognition-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-object-recognition-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-object-recognition-msgs/recipe.yaml b/recipes/ros-jazzy-object-recognition-msgs/recipe.yaml new file mode 100644 index 00000000..63e3af16 --- /dev/null +++ b/recipes/ros-jazzy-object-recognition-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-object-recognition-msgs + version: 2.0.0 +source: + git: https://github.com/ros2-gbp/object_recognition_msgs-release.git + tag: release/jazzy/object_recognition_msgs/2.0.0-5 + target_directory: ros-jazzy-object-recognition-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-sensor-msgs + - ros-jazzy-shape-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-sensor-msgs + - ros-jazzy-shape-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-octomap-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-octomap-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-octomap-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-octomap-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-octomap-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-octomap-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-octomap-msgs/recipe.yaml b/recipes/ros-jazzy-octomap-msgs/recipe.yaml new file mode 100644 index 00000000..697cdf53 --- /dev/null +++ b/recipes/ros-jazzy-octomap-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-octomap-msgs + version: 2.0.1 +source: + git: https://github.com/ros2-gbp/octomap_msgs-release.git + tag: release/jazzy/octomap_msgs/2.0.1-1 + target_directory: ros-jazzy-octomap-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ompl/bld_catkin.bat b/recipes/ros-jazzy-ompl/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-ompl/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-ompl/build_catkin.sh b/recipes/ros-jazzy-ompl/build_catkin.sh new file mode 100755 index 00000000..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-ompl/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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-ompl/patch/ros-jazzy-ompl.patch b/recipes/ros-jazzy-ompl/patch/ros-jazzy-ompl.patch new file mode 100644 index 00000000..daad9108 --- /dev/null +++ b/recipes/ros-jazzy-ompl/patch/ros-jazzy-ompl.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 09fc750..2e4ff16 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -178,7 +178,7 @@ find_program(R_EXEC R) + + add_subdirectory(src) + add_subdirectory(py-bindings) +-add_subdirectory(tests) ++# add_subdirectory(tests) + add_subdirectory(demos) + add_subdirectory(scripts) + add_subdirectory(doc) diff --git a/recipes/ros-jazzy-ompl/recipe.yaml b/recipes/ros-jazzy-ompl/recipe.yaml new file mode 100644 index 00000000..11ee8d13 --- /dev/null +++ b/recipes/ros-jazzy-ompl/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-ompl + version: 1.6.0 +source: + git: https://github.com/ros2-gbp/ompl-release.git + tag: release/jazzy/ompl/1.6.0-1 + target_directory: ros-jazzy-ompl/src/work + patches: + - patch/ros-jazzy-ompl.patch + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - eigen + - flann + - libboost-devel + - libboost-python-devel + - numpy + - ompl + - pip + - pkg-config + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - eigen + - flann + - libboost-devel + - libboost-python-devel + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-opennav-docking-bt/bld_ament_cmake.bat b/recipes/ros-jazzy-opennav-docking-bt/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-opennav-docking-bt/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-opennav-docking-bt/build_ament_cmake.sh b/recipes/ros-jazzy-opennav-docking-bt/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-opennav-docking-bt/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-opennav-docking-bt/recipe.yaml b/recipes/ros-jazzy-opennav-docking-bt/recipe.yaml new file mode 100644 index 00000000..27d6e15c --- /dev/null +++ b/recipes/ros-jazzy-opennav-docking-bt/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-opennav-docking-bt + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/opennav_docking_bt/1.3.4-1 + target_directory: ros-jazzy-opennav-docking-bt/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-behaviortree-cpp + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-behavior-tree + - ros-jazzy-nav2-core + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-behaviortree-cpp + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-behavior-tree + - ros-jazzy-nav2-core + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-opennav-docking-core/bld_ament_cmake.bat b/recipes/ros-jazzy-opennav-docking-core/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-opennav-docking-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-opennav-docking-core/build_ament_cmake.sh b/recipes/ros-jazzy-opennav-docking-core/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-opennav-docking-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-opennav-docking-core/recipe.yaml b/recipes/ros-jazzy-opennav-docking-core/recipe.yaml new file mode 100644 index 00000000..4619a009 --- /dev/null +++ b/recipes/ros-jazzy-opennav-docking-core/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-opennav-docking-core + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/opennav_docking_core/1.3.4-1 + target_directory: ros-jazzy-opennav-docking-core/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-opennav-docking/bld_ament_cmake.bat b/recipes/ros-jazzy-opennav-docking/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-opennav-docking/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-opennav-docking/build_ament_cmake.sh b/recipes/ros-jazzy-opennav-docking/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-opennav-docking/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-opennav-docking/recipe.yaml b/recipes/ros-jazzy-opennav-docking/recipe.yaml new file mode 100644 index 00000000..5c052db5 --- /dev/null +++ b/recipes/ros-jazzy-opennav-docking/recipe.yaml @@ -0,0 +1,118 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-opennav-docking + version: 1.3.4 +source: + git: https://github.com/SteveMacenski/navigation2-release.git + tag: release/jazzy/opennav_docking/1.3.4-1 + target_directory: ros-jazzy-opennav-docking/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-angles + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-graceful-controller + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-opennav-docking-core + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-angles + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nav2-graceful-controller + - ros-jazzy-nav2-msgs + - ros-jazzy-nav2-util + - ros-jazzy-opennav-docking-core + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.7.* 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..eee7a342 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - eigen + - orocos-kdl + - python + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-osqp-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-osqp-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-osqp-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-osqp-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-osqp-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-osqp-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-osqp-vendor/recipe.yaml b/recipes/ros-jazzy-osqp-vendor/recipe.yaml new file mode 100644 index 00000000..088687df --- /dev/null +++ b/recipes/ros-jazzy-osqp-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-osqp-vendor + version: 0.2.0 +source: + git: https://github.com/ros2-gbp/osqp_vendor-release.git + tag: release/jazzy/osqp_vendor/0.2.0-4 + target_directory: ros-jazzy-osqp-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..71bccc19 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - importlib-metadata + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-osrf-testing-tools-cpp/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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..cbf88a3b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-parallel-gripper-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-parallel-gripper-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-parallel-gripper-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-parallel-gripper-controller/build_ament_cmake.sh b/recipes/ros-jazzy-parallel-gripper-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-parallel-gripper-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-parallel-gripper-controller/recipe.yaml b/recipes/ros-jazzy-parallel-gripper-controller/recipe.yaml new file mode 100644 index 00000000..f8bc7671 --- /dev/null +++ b/recipes/ros-jazzy-parallel-gripper-controller/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-parallel-gripper-controller + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/parallel_gripper_controller/4.20.0-1 + target_directory: ros-jazzy-parallel-gripper-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-control-toolbox + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-control-toolbox + - ros-jazzy-controller-interface + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-parameter-traits/bld_ament_cmake.bat b/recipes/ros-jazzy-parameter-traits/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-parameter-traits/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-parameter-traits/build_ament_cmake.sh b/recipes/ros-jazzy-parameter-traits/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-parameter-traits/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-parameter-traits/recipe.yaml b/recipes/ros-jazzy-parameter-traits/recipe.yaml new file mode 100644 index 00000000..156c4444 --- /dev/null +++ b/recipes/ros-jazzy-parameter-traits/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-parameter-traits + version: 0.4.0 +source: + git: https://github.com/ros2-gbp/generate_parameter_library-release.git + tag: release/jazzy/parameter_traits/0.4.0-1 + target_directory: ros-jazzy-parameter-traits/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - fmt + - 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-rsl + - ros-jazzy-tcb-span + - ros-jazzy-tl-expected + - ros2-distro-mutex 0.7.* jazzy_* + run: + - fmt + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-rsl + - ros-jazzy-tcb-span + - ros-jazzy-tl-expected + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-pcl-conversions/bld_ament_cmake.bat b/recipes/ros-jazzy-pcl-conversions/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-pcl-conversions/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-pcl-conversions/build_ament_cmake.sh b/recipes/ros-jazzy-pcl-conversions/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-pcl-conversions/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-pcl-conversions/recipe.yaml b/recipes/ros-jazzy-pcl-conversions/recipe.yaml new file mode 100644 index 00000000..03ef4f12 --- /dev/null +++ b/recipes/ros-jazzy-pcl-conversions/recipe.yaml @@ -0,0 +1,115 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-pcl-conversions + version: 2.6.2 +source: + git: https://github.com/ros2-gbp/perception_pcl-release.git + tag: release/jazzy/pcl_conversions/2.6.2-1 + target_directory: ros-jazzy-pcl-conversions/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - libboost-devel + - numpy + - pcl + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-message-filters + - ros-jazzy-pcl-msgs + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - vtk-base + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - eigen + - libboost-devel + - pcl + - python + - ros-jazzy-message-filters + - ros-jazzy-pcl-msgs + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - vtk-base + - 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-pcl-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-pcl-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-pcl-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-pcl-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-pcl-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-pcl-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-pcl-msgs/recipe.yaml b/recipes/ros-jazzy-pcl-msgs/recipe.yaml new file mode 100644 index 00000000..49ff2cd0 --- /dev/null +++ b/recipes/ros-jazzy-pcl-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-pcl-msgs + version: 1.0.0 +source: + git: https://github.com/ros2-gbp/pcl_msgs-release.git + tag: release/jazzy/pcl_msgs/1.0.0-9 + target_directory: ros-jazzy-pcl-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-pcl-ros/bld_ament_cmake.bat b/recipes/ros-jazzy-pcl-ros/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-pcl-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-pcl-ros/build_ament_cmake.sh b/recipes/ros-jazzy-pcl-ros/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-pcl-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-pcl-ros/recipe.yaml b/recipes/ros-jazzy-pcl-ros/recipe.yaml new file mode 100644 index 00000000..8dcf1062 --- /dev/null +++ b/recipes/ros-jazzy-pcl-ros/recipe.yaml @@ -0,0 +1,130 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-pcl-ros + version: 2.6.2 +source: + git: https://github.com/ros2-gbp/perception_pcl-release.git + tag: release/jazzy/pcl_ros/2.6.2-1 + target_directory: ros-jazzy-pcl-ros/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - libboost-devel + - numpy + - pcl + - 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-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ros + - ros-jazzy-pcl-conversions + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - vtk-base + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - eigen + - libboost-devel + - pcl + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-pcl-conversions + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - vtk-base + - 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-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..ea78c1aa --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-perception-pcl/bld_ament_cmake.bat b/recipes/ros-jazzy-perception-pcl/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-perception-pcl/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-perception-pcl/build_ament_cmake.sh b/recipes/ros-jazzy-perception-pcl/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-perception-pcl/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-perception-pcl/recipe.yaml b/recipes/ros-jazzy-perception-pcl/recipe.yaml new file mode 100644 index 00000000..e1a82358 --- /dev/null +++ b/recipes/ros-jazzy-perception-pcl/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-perception-pcl + version: 2.6.2 +source: + git: https://github.com/ros2-gbp/perception_pcl-release.git + tag: release/jazzy/perception_pcl/2.6.2-1 + target_directory: ros-jazzy-perception-pcl/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-pcl-conversions + - ros-jazzy-pcl-msgs + - ros-jazzy-pcl-ros + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-perception/bld_ament_cmake.bat b/recipes/ros-jazzy-perception/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-perception/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-perception/build_ament_cmake.sh b/recipes/ros-jazzy-perception/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-perception/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-perception/recipe.yaml b/recipes/ros-jazzy-perception/recipe.yaml new file mode 100644 index 00000000..6a12a5a5 --- /dev/null +++ b/recipes/ros-jazzy-perception/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-perception + version: 0.11.0 +source: + git: https://github.com/ros2-gbp/variants-release.git + tag: release/jazzy/perception/0.11.0-1 + target_directory: ros-jazzy-perception/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-image-common + - ros-jazzy-image-pipeline + - ros-jazzy-image-transport-plugins + - ros-jazzy-laser-filters + - ros-jazzy-laser-geometry + - ros-jazzy-perception-pcl + - ros-jazzy-ros-base + - ros-jazzy-ros-workspace + - ros-jazzy-vision-opencv + - ros2-distro-mutex 0.7.* 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..20dc3990 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-pid-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-pid-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-pid-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-pid-controller/build_ament_cmake.sh b/recipes/ros-jazzy-pid-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-pid-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-pid-controller/recipe.yaml b/recipes/ros-jazzy-pid-controller/recipe.yaml new file mode 100644 index 00000000..5a48aa55 --- /dev/null +++ b/recipes/ros-jazzy-pid-controller/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-pid-controller + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/pid_controller/4.20.0-1 + target_directory: ros-jazzy-pid-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-angles + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-control-toolbox + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-parameter-traits + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-std-srvs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-angles + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-control-toolbox + - ros-jazzy-controller-interface + - ros-jazzy-hardware-interface + - ros-jazzy-parameter-traits + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-std-srvs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-pilz-industrial-motion-planner-testutils/bld_ament_cmake.bat b/recipes/ros-jazzy-pilz-industrial-motion-planner-testutils/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-pilz-industrial-motion-planner-testutils/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-pilz-industrial-motion-planner-testutils/build_ament_cmake.sh b/recipes/ros-jazzy-pilz-industrial-motion-planner-testutils/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-pilz-industrial-motion-planner-testutils/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-pilz-industrial-motion-planner-testutils/recipe.yaml b/recipes/ros-jazzy-pilz-industrial-motion-planner-testutils/recipe.yaml new file mode 100644 index 00000000..11d6de85 --- /dev/null +++ b/recipes/ros-jazzy-pilz-industrial-motion-planner-testutils/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-pilz-industrial-motion-planner-testutils + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/pilz_industrial_motion_planner_testutils/2.12.1-1 + target_directory: ros-jazzy-pilz-industrial-motion-planner-testutils/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-eigen3-cmake-module + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-eigen + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-pilz-industrial-motion-planner/bld_ament_cmake.bat b/recipes/ros-jazzy-pilz-industrial-motion-planner/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-pilz-industrial-motion-planner/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-pilz-industrial-motion-planner/build_ament_cmake.sh b/recipes/ros-jazzy-pilz-industrial-motion-planner/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-pilz-industrial-motion-planner/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-pilz-industrial-motion-planner/patch/ros-jazzy-pilz-industrial-motion-planner.patch b/recipes/ros-jazzy-pilz-industrial-motion-planner/patch/ros-jazzy-pilz-industrial-motion-planner.patch new file mode 100644 index 00000000..83fe60b2 --- /dev/null +++ b/recipes/ros-jazzy-pilz-industrial-motion-planner/patch/ros-jazzy-pilz-industrial-motion-planner.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e8420aec3..b1257cde3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -64,7 +64,7 @@ generate_parameter_library( + ) + + add_library(planning_context_loader_base SHARED src/planning_context_loader.cpp) +-target_link_libraries(planning_context_loader_base cartesian_limits_parameters) ++target_link_libraries(planning_context_loader_base cartesian_limits_parameters joint_limits_common) + ament_target_dependencies(planning_context_loader_base + ${THIS_PACKAGE_INCLUDE_DEPENDS}) + +@@ -79,7 +79,7 @@ add_library( + trajectory_generation_common SHARED + src/trajectory_functions.cpp src/trajectory_generator.cpp + src/trajectory_blender_transition_window.cpp) +-target_link_libraries(trajectory_generation_common cartesian_limits_parameters) ++target_link_libraries(trajectory_generation_common cartesian_limits_parameters joint_limits_common) + ament_target_dependencies(trajectory_generation_common + ${THIS_PACKAGE_INCLUDE_DEPENDS}) + diff --git a/recipes/ros-jazzy-pilz-industrial-motion-planner/recipe.yaml b/recipes/ros-jazzy-pilz-industrial-motion-planner/recipe.yaml new file mode 100644 index 00000000..dcd65edc --- /dev/null +++ b/recipes/ros-jazzy-pilz-industrial-motion-planner/recipe.yaml @@ -0,0 +1,132 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-pilz-industrial-motion-planner + version: 2.12.1 +source: + git: https://github.com/ros2-gbp/moveit2-release.git + tag: release/jazzy/pilz_industrial_motion_planner/2.12.1-1 + target_directory: ros-jazzy-pilz-industrial-motion-planner/src/work + patches: + - patch/ros-jazzy-pilz-industrial-motion-planner.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-launch-param-builder + - ros-jazzy-moveit-common + - ros-jazzy-moveit-configs-utils + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-moveit-resources-panda-moveit-config + - ros-jazzy-moveit-resources-prbt-moveit-config + - ros-jazzy-moveit-resources-prbt-pg70-support + - ros-jazzy-moveit-resources-prbt-support + - ros-jazzy-moveit-ros-move-group + - ros-jazzy-moveit-ros-planning + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-pilz-industrial-motion-planner-testutils + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-testing + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-eigen-kdl + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-kdl + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-moveit-common + - ros-jazzy-moveit-core + - ros-jazzy-moveit-msgs + - ros-jazzy-moveit-ros-move-group + - ros-jazzy-moveit-ros-planning + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-eigen-kdl + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-kdl + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-plotjuggler-ros/bld_ament_cmake.bat b/recipes/ros-jazzy-plotjuggler-ros/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-plotjuggler-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-plotjuggler-ros/build_ament_cmake.sh b/recipes/ros-jazzy-plotjuggler-ros/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-plotjuggler-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-plotjuggler-ros/recipe.yaml b/recipes/ros-jazzy-plotjuggler-ros/recipe.yaml new file mode 100644 index 00000000..809ec2dd --- /dev/null +++ b/recipes/ros-jazzy-plotjuggler-ros/recipe.yaml @@ -0,0 +1,120 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-plotjuggler-ros + version: 2.1.2 +source: + git: https://github.com/ros2-gbp/plotjuggler-ros-plugins-release.git + tag: release/jazzy/plotjuggler_ros/2.1.2-2 + target_directory: ros-jazzy-plotjuggler-ros/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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 + - libboost-devel + - libboost-python-devel + - numpy + - pip + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-plotjuggler + - ros-jazzy-rclcpp + - ros-jazzy-rcpputils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2 + - ros-jazzy-rosbag2-transport + - ros-jazzy-tf2-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - libboost-devel + - libboost-python-devel + - python + - qt-main + - ros-jazzy-plotjuggler + - ros-jazzy-rclcpp + - ros-jazzy-rcpputils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2 + - ros-jazzy-rosbag2-transport + - ros-jazzy-tf2-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* 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-plotjuggler/bld_ament_cmake.bat b/recipes/ros-jazzy-plotjuggler/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-plotjuggler/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-plotjuggler/build_ament_cmake.sh b/recipes/ros-jazzy-plotjuggler/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-plotjuggler/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-plotjuggler/patch/ros-jazzy-plotjuggler.unix.patch b/recipes/ros-jazzy-plotjuggler/patch/ros-jazzy-plotjuggler.unix.patch new file mode 100644 index 00000000..33bc88e2 --- /dev/null +++ b/recipes/ros-jazzy-plotjuggler/patch/ros-jazzy-plotjuggler.unix.patch @@ -0,0 +1,606 @@ +diff --git a/cmake/FindXCB.cmake b/cmake/FindXCB.cmake +new file mode 100644 +index 00000000..a2e2757a +--- /dev/null ++++ b/cmake/FindXCB.cmake +@@ -0,0 +1,51 @@ ++# - FindXCB ++# ++# Copyright 2015 Valve Coporation ++ ++find_package(PkgConfig) ++ ++if(NOT XCB_FIND_COMPONENTS) ++ set(XCB_FIND_COMPONENTS xcb) ++endif() ++ ++include(FindPackageHandleStandardArgs) ++set(XCB_FOUND true) ++set(XCB_INCLUDE_DIRS "") ++set(XCB_LIBRARIES "") ++foreach(comp ${XCB_FIND_COMPONENTS}) ++ # component name ++ string(TOUPPER ${comp} compname) ++ string(REPLACE "-" "_" compname ${compname}) ++ # header name ++ string(REPLACE "xcb-" "" headername xcb/${comp}.h) ++ # library name ++ set(libname ${comp}) ++ ++ pkg_check_modules(PC_${comp} QUIET ${comp}) ++ ++ find_path(${compname}_INCLUDE_DIR NAMES ${headername} ++ HINTS ++ ${PC_${comp}_INCLUDEDIR} ++ ${PC_${comp}_INCLUDE_DIRS} ++ ) ++ ++ find_library(${compname}_LIBRARY NAMES ${libname} ++ HINTS ++ ${PC_${comp}_LIBDIR} ++ ${PC_${comp}_LIBRARY_DIRS} ++ ) ++ ++ find_package_handle_standard_args(${comp} ++ FOUND_VAR ${comp}_FOUND ++ REQUIRED_VARS ${compname}_INCLUDE_DIR ${compname}_LIBRARY) ++ mark_as_advanced(${compname}_INCLUDE_DIR ${compname}_LIBRARY) ++ ++ list(APPEND XCB_INCLUDE_DIRS ${${compname}_INCLUDE_DIR}) ++ list(APPEND XCB_LIBRARIES ${${compname}_LIBRARY}) ++ ++ if(NOT ${comp}_FOUND) ++ set(XCB_FOUND false) ++ endif() ++endforeach() ++ ++list(REMOVE_DUPLICATES XCB_INCLUDE_DIRS) +diff --git a/3rdparty/nlohmann/json.hpp b/3rdparty/nlohmann/json.hpp +index cb27e058..cecdb1fd 100644 +--- a/3rdparty/nlohmann/json.hpp ++++ b/3rdparty/nlohmann/json.hpp +@@ -3198,6 +3198,7 @@ template struct identity_tag {}; + #include // false_type, is_constructible, is_integral, is_same, true_type + #include // declval + #include // tuple ++#include // char_traits + + // #include + +@@ -3261,6 +3262,7 @@ struct iterator_traits::value>> + + + // #include ++// #include + + + namespace nlohmann +@@ -3272,6 +3274,7 @@ NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin); + + + // #include ++// #include + + + namespace nlohmann +@@ -3482,6 +3485,63 @@ struct has_to_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> + }; + + ++///////////////// ++// char_traits // ++///////////////// ++ ++// Primary template of char_traits calls std char_traits ++template ++struct char_traits : std::char_traits ++{}; ++ ++// Explicitly define char traits for unsigned char since it is not standard ++template<> ++struct char_traits : std::char_traits ++{ ++ using char_type = unsigned char; ++ using int_type = uint64_t; ++ ++ // Redefine to_int_type function ++ static int_type to_int_type(char_type c) noexcept ++ { ++ return static_cast(c); ++ } ++ ++ static char_type to_char_type(int_type i) noexcept ++ { ++ return static_cast(i); ++ } ++ ++ static constexpr int_type eof() noexcept ++ { ++ return static_cast(EOF); ++ } ++}; ++ ++// Explicitly define char traits for signed char since it is not standard ++template<> ++struct char_traits : std::char_traits ++{ ++ using char_type = signed char; ++ using int_type = uint64_t; ++ ++ // Redefine to_int_type function ++ static int_type to_int_type(char_type c) noexcept ++ { ++ return static_cast(c); ++ } ++ ++ static char_type to_char_type(int_type i) noexcept ++ { ++ return static_cast(i); ++ } ++ ++ static constexpr int_type eof() noexcept ++ { ++ return static_cast(EOF); ++ } ++}; ++ + /////////////////// + // is_ functions // + /////////////////// +@@ -5342,16 +5402,16 @@ class iterator_input_adapter + : current(std::move(first)), end(std::move(last)) + {} + +- typename std::char_traits::int_type get_character() ++ typename char_traits::int_type get_character() + { + if (JSON_HEDLEY_LIKELY(current != end)) + { +- auto result = std::char_traits::to_int_type(*current); ++ auto result = char_traits::to_int_type(*current); + std::advance(current, 1); + return result; + } + +- return std::char_traits::eof(); ++ return char_traits::eof(); + } + + private: +@@ -6517,7 +6577,7 @@ class lexer : public lexer_base + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using char_type = typename InputAdapterType::char_type; +- using char_int_type = typename std::char_traits::int_type; ++ using char_int_type = typename char_traits::int_type; + + public: + using token_type = typename lexer_base::token_type; +@@ -6667,7 +6727,7 @@ class lexer : public lexer_base + switch (get()) + { + // end of file while parsing string +- case std::char_traits::eof(): ++ case char_traits::eof(): + { + error_message = "invalid string: missing closing quote"; + return token_type::parse_error; +@@ -7256,7 +7316,7 @@ class lexer : public lexer_base + { + case '\n': + case '\r': +- case std::char_traits::eof(): ++ case char_traits::eof(): + case '\0': + return true; + +@@ -7273,7 +7333,7 @@ class lexer : public lexer_base + { + switch (get()) + { +- case std::char_traits::eof(): ++ case char_traits::eof(): + case '\0': + { + error_message = "invalid comment; missing closing '*/'"; +@@ -7702,10 +7762,10 @@ scan_number_done: + token_type scan_literal(const char_type* literal_text, const std::size_t length, + token_type return_type) + { +- JSON_ASSERT(std::char_traits::to_char_type(current) == literal_text[0]); ++ JSON_ASSERT(char_traits::to_char_type(current) == literal_text[0]); + for (std::size_t i = 1; i < length; ++i) + { +- if (JSON_HEDLEY_UNLIKELY(std::char_traits::to_char_type(get()) != literal_text[i])) ++ if (JSON_HEDLEY_UNLIKELY(char_traits::to_char_type(get()) != literal_text[i])) + { + error_message = "invalid literal"; + return token_type::parse_error; +@@ -7723,7 +7783,7 @@ scan_number_done: + { + token_buffer.clear(); + token_string.clear(); +- token_string.push_back(std::char_traits::to_char_type(current)); ++ token_string.push_back(char_traits::to_char_type(current)); + } + + /* +@@ -7731,7 +7791,7 @@ scan_number_done: + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns a +- `std::char_traits::eof()` in that case. Stores the scanned characters ++ `char_traits::eof()` in that case. Stores the scanned characters + for use in error messages. + + @return character read from the input +@@ -7751,9 +7811,9 @@ scan_number_done: + current = ia.get_character(); + } + +- if (JSON_HEDLEY_LIKELY(current != std::char_traits::eof())) ++ if (JSON_HEDLEY_LIKELY(current != char_traits::eof())) + { +- token_string.push_back(std::char_traits::to_char_type(current)); ++ token_string.push_back(char_traits::to_char_type(current)); + } + + if (current == '\n') +@@ -7792,7 +7852,7 @@ scan_number_done: + --position.chars_read_current_line; + } + +- if (JSON_HEDLEY_LIKELY(current != std::char_traits::eof())) ++ if (JSON_HEDLEY_LIKELY(current != char_traits::eof())) + { + JSON_ASSERT(!token_string.empty()); + token_string.pop_back(); +@@ -7986,7 +8046,7 @@ scan_number_done: + // end of input (the null byte is needed when parsing from + // string literals) + case '\0': +- case std::char_traits::eof(): ++ case char_traits::eof(): + return token_type::end_of_input; + + // error +@@ -8004,7 +8064,7 @@ scan_number_done: + const bool ignore_comments = false; + + /// the current character +- char_int_type current = std::char_traits::eof(); ++ char_int_type current = char_traits::eof(); + + /// whether the next get() call should just return current + bool next_unget = false; +@@ -8235,7 +8295,7 @@ class binary_reader + using binary_t = typename BasicJsonType::binary_t; + using json_sax_t = SAX; + using char_type = typename InputAdapterType::char_type; +- using char_int_type = typename std::char_traits::int_type; ++ using char_int_type = typename char_traits::int_type; + + public: + /*! +@@ -8307,7 +8367,7 @@ class binary_reader + get(); + } + +- if (JSON_HEDLEY_UNLIKELY(current != std::char_traits::eof())) ++ if (JSON_HEDLEY_UNLIKELY(current != char_traits::eof())) + { + return sax->parse_error(chars_read, get_token_string(), + parse_error::create(110, chars_read, exception_message(format, "expected end of input; last byte: 0x" + get_token_string(), "value"), BasicJsonType())); +@@ -8389,7 +8449,7 @@ class binary_reader + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::bson, "string length must be at least 1, is " + std::to_string(len), "string"), BasicJsonType())); + } + +- return get_string(input_format_t::bson, len - static_cast(1), result) && get() != std::char_traits::eof(); ++ return get_string(input_format_t::bson, len - static_cast(1), result) && get() != char_traits::eof(); + } + + /*! +@@ -8580,7 +8640,7 @@ class binary_reader + switch (get_char ? get() : current) + { + // EOF +- case std::char_traits::eof(): ++ case char_traits::eof(): + return unexpect_eof(input_format_t::cbor, "value"); + + // Integer 0x00..0x17 (0..23) +@@ -9350,7 +9410,7 @@ class binary_reader + switch (get()) + { + // EOF +- case std::char_traits::eof(): ++ case char_traits::eof(): + return unexpect_eof(input_format_t::msgpack, "value"); + + // positive fixint +@@ -10172,7 +10232,7 @@ class binary_reader + { + switch (prefix) + { +- case std::char_traits::eof(): // EOF ++ case char_traits::eof(): // EOF + return unexpect_eof(input_format_t::ubjson, "value"); + + case 'T': // true +@@ -10478,7 +10538,7 @@ class binary_reader + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns a -'ve valued +- `std::char_traits::eof()` in that case. ++ `char_traits::eof()` in that case. + + @return character read from the input + */ +@@ -10618,7 +10678,7 @@ class binary_reader + JSON_HEDLEY_NON_NULL(3) + bool unexpect_eof(const input_format_t format, const char* context) const + { +- if (JSON_HEDLEY_UNLIKELY(current == std::char_traits::eof())) ++ if (JSON_HEDLEY_UNLIKELY(current == char_traits::eof())) + { + return sax->parse_error(chars_read, "", + parse_error::create(110, chars_read, exception_message(format, "unexpected end of input", context), BasicJsonType())); +@@ -10679,7 +10739,7 @@ class binary_reader + InputAdapterType ia; + + /// the current character +- char_int_type current = std::char_traits::eof(); ++ char_int_type current = char_traits::eof(); + + /// the number of characters read + std::size_t chars_read = 0; +@@ -16102,8 +16162,8 @@ class serializer + error_handler_t error_handler_ = error_handler_t::strict) + : o(std::move(s)) + , loc(std::localeconv()) +- , thousands_sep(loc->thousands_sep == nullptr ? '\0' : std::char_traits::to_char_type(* (loc->thousands_sep))) +- , decimal_point(loc->decimal_point == nullptr ? '\0' : std::char_traits::to_char_type(* (loc->decimal_point))) ++ , thousands_sep(loc->thousands_sep == nullptr ? '\0' : char_traits::to_char_type(* (loc->thousands_sep))) ++ , decimal_point(loc->decimal_point == nullptr ? '\0' : char_traits::to_char_type(* (loc->decimal_point))) + , indent_char(ichar) + , indent_string(512, indent_char) + , error_handler(error_handler_) +diff --git a/plotjuggler_plugins/ParserProtobuf/error_collectors.cpp b/plotjuggler_plugins/ParserProtobuf/error_collectors.cpp +index 761e0b73..b7ce4129 100644 +--- a/plotjuggler_plugins/ParserProtobuf/error_collectors.cpp ++++ b/plotjuggler_plugins/ParserProtobuf/error_collectors.cpp +@@ -2,38 +2,38 @@ + #include + #include + +-void FileErrorCollector::AddError(const std::string& filename, int line, int, +- const std::string& message) ++void FileErrorCollector::RecordError(const absl::string_view filename, int line, int, ++ const absl::string_view message) + { + auto msg = QString("File: [%1] Line: [%2] Message: %3\n\n") +- .arg(QString::fromStdString(filename)) ++ .arg(QString::fromStdString(std::string(filename))) + .arg(line) +- .arg(QString::fromStdString(message)); ++ .arg(QString::fromStdString(std::string(message))); + + _errors.push_back(msg); + } + +-void FileErrorCollector::AddWarning(const std::string& filename, int line, int, +- const std::string& message) ++void FileErrorCollector::RecordWarning(const absl::string_view filename, int line, int, ++ const absl::string_view message) + { + auto msg = QString("Warning [%1] line %2: %3") +- .arg(QString::fromStdString(filename)) ++ .arg(QString::fromStdString(std::string(filename))) + .arg(line) +- .arg(QString::fromStdString(message)); ++ .arg(QString::fromStdString(std::string(message))); + qDebug() << msg; + } + +-void IoErrorCollector::AddError(int line, google::protobuf::io::ColumnNumber, +- const std::string& message) ++void IoErrorCollector::RecordError(int line, google::protobuf::io::ColumnNumber, ++ const absl::string_view message) + { + _errors.push_back( +- QString("Line: [%1] Message: %2\n").arg(line).arg(QString::fromStdString(message))); ++ QString("Line: [%1] Message: %2\n").arg(line).arg(QString::fromStdString(std::string(message)))); + } + +-void IoErrorCollector::AddWarning(int line, google::protobuf::io::ColumnNumber column, +- const std::string& message) ++void IoErrorCollector::RecordWarning(int line, google::protobuf::io::ColumnNumber column, ++ const absl::string_view message) + { + qDebug() << QString("Line: [%1] Message: %2\n") + .arg(line) +- .arg(QString::fromStdString(message)); ++ .arg(QString::fromStdString(std::string(message))); + } +diff --git a/plotjuggler_plugins/ParserProtobuf/error_collectors.h b/plotjuggler_plugins/ParserProtobuf/error_collectors.h +index f70a881f..7afe1fea 100644 +--- a/plotjuggler_plugins/ParserProtobuf/error_collectors.h ++++ b/plotjuggler_plugins/ParserProtobuf/error_collectors.h +@@ -3,17 +3,18 @@ + + #include + #include ++#include + + #include + + class IoErrorCollector : public google::protobuf::io::ErrorCollector + { + public: +- void AddError(int line, google::protobuf::io::ColumnNumber column, +- const std::string& message) override; ++ void RecordError(int line, google::protobuf::io::ColumnNumber column, ++ const absl::string_view message) override; + +- void AddWarning(int line, google::protobuf::io::ColumnNumber column, +- const std::string& message) override; ++ void RecordWarning(int line, google::protobuf::io::ColumnNumber column, ++ const absl::string_view message) override; + + const QStringList& errors() + { +@@ -27,11 +28,11 @@ private: + class FileErrorCollector : public google::protobuf::compiler::MultiFileErrorCollector + { + public: +- void AddError(const std::string& filename, int line, int, +- const std::string& message) override; ++ void RecordError(const absl::string_view filename, int line, int, ++ const absl::string_view message) override; + +- void AddWarning(const std::string& filename, int line, int, +- const std::string& message) override; ++ void RecordWarning(const absl::string_view filename, int line, int, ++ const absl::string_view message) override; + + const QStringList& errors() + { +diff --git a/3rdparty/Qt-Advanced-Docking/CMakeLists.txt b/3rdparty/Qt-Advanced-Docking/CMakeLists.txt +index 6b650f1b..82c58edb 100644 +--- a/3rdparty/Qt-Advanced-Docking/CMakeLists.txt ++++ b/3rdparty/Qt-Advanced-Docking/CMakeLists.txt +@@ -67,7 +67,9 @@ target_link_libraries(qt_advanced_docking PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets + + if(UNIX AND NOT APPLE) + target_link_libraries(qt_advanced_docking PUBLIC Qt5::X11Extras) +- target_link_libraries(qt_advanced_docking PRIVATE xcb) ++ find_package(XCB REQUIRED) ++ target_link_libraries(qt_advanced_docking PRIVATE ${XCB_LIBRARIES}) ++ target_include_directories(qt_advanced_docking SYSTEM PUBLIC ${XCB_INCLUDE_DIRS}) + endif() + + set_target_properties(qt_advanced_docking PROPERTIES +diff --git a/3rdparty/lua-5.4.3/CMakeLists.txt b/3rdparty/lua-5.4.3/CMakeLists.txt +index ad3dc012..a3da197b 100644 +--- a/3rdparty/lua-5.4.3/CMakeLists.txt ++++ b/3rdparty/lua-5.4.3/CMakeLists.txt +@@ -1,3 +1,5 @@ ++include_directories( ./src ) ++ + set(LUA_LIB_SRCS + ${CMAKE_CURRENT_SOURCE_DIR}/src/lapi.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/lcode.c +@@ -32,7 +34,7 @@ set(LUA_LIB_SRCS + ${CMAKE_CURRENT_SOURCE_DIR}/src/loadlib.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/linit.c + ) +-set(LUA_LIB_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/src) ++# set(LUA_LIB_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/src) + + if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|AppleClang") + add_compile_options(-fPIC) +@@ -42,7 +44,7 @@ add_library(lua_static STATIC + ${LUA_LIB_SRCS} + ${CMAKE_CURRENT_SOURCE_DIR}/src/lua.c + ) +-target_include_directories(lua_static PUBLIC ${LUA_LIB_INCLUDE}) ++# target_include_directories(lua_static PUBLIC ${LUA_LIB_INCLUDE}) + + add_library(lua_objects OBJECT ${LUA_LIB_SRCS}) + +@@ -55,3 +57,11 @@ if(EMSCRIPTEN) + endif() + target_compile_definitions(lua_static PUBLIC ${LUA_DEFINITIONS}) + ++install( ++ TARGETS ++ lua_static ++ EXPORT export_lua_static ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++ RUNTIME DESTINATION bin ++ INCLUDES DESTINATION include ) +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 16477dd3..859f7320 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.10.2) ++cmake_minimum_required(VERSION 3.20) + + PROJECT(plotjuggler LANGUAGES C CXX VERSION 3.9.2) + +@@ -94,18 +94,6 @@ if (NOT WIN32) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer") + endif() + +-if(APPLE AND EXISTS /usr/local/opt/qt5) +- # Homebrew installs Qt5 (up to at least 5.9.1) in +- # /usr/local/qt5, ensure it can be found by CMake since +- # it is not in the default /usr/local prefix. +- # source: https://github.com/Homebrew/homebrew-core/issues/8392#issuecomment-325226494 +- list(APPEND CMAKE_PREFIX_PATH "/usr/local/opt/qt5") +- set(CMAKE_MACOSX_RPATH 1) +-elseif(APPLE AND EXISTS /opt/homebrew/opt/qt@5) +- list(APPEND CMAKE_PREFIX_PATH "/opt/homebrew/opt/qt@5") +- set(CMAKE_MACOSX_RPATH 1) +-endif() +- + find_package(Qt5 REQUIRED COMPONENTS + Core + Widgets +@@ -120,11 +108,9 @@ find_package(Qt5 REQUIRED COMPONENTS + set( QT_LINK_LIBRARIES + Qt5::Core + Qt5::Widgets +- Qt5::PrintSupport + Qt5::Xml + Qt5::Concurrent + Qt5::Svg +- Qt5::OpenGL + Qt5::WebSockets + ) + +@@ -191,7 +177,7 @@ if (BASE_AS_SHARED) + ${PLOTJUGGLER_BASE_SRC} + ${PLOTJUGGLER_BASE_MOCS} + ) +- target_link_libraries(plotjuggler_base PRIVATE lua_objects plotjuggler_qwt_objects) ++ target_link_libraries(plotjuggler_base PRIVATE ${QT_LINK_LIBRARIES} lua_objects plotjuggler_qwt_objects) + else() + add_library(plotjuggler_base STATIC + ${PLOTJUGGLER_BASE_SRC} +@@ -199,13 +185,6 @@ else() + ) + endif() + +-# target_link_libraries(plotjuggler_base plotjuggler_qwt) +- +-target_include_directories(plotjuggler_base INTERFACE +- $ +- $ +-) +- + ######################### INSTALL #################################### + + if(COMPILING_WITH_CATKIN) +diff --git a/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt b/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt +index f399fdad..4c89c787 100644 +--- a/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt ++++ b/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt +@@ -1,13 +1,6 @@ +-if(BUILDING_WITH_CONAN) +- message(STATUS "Finding Protobuf with conan") +- set(Protobuf_LIBS protobuf::libprotobuf) +-else() +- message(STATUS "Finding Protobuf without package managers") +- find_package(Protobuf QUIET) +- set(Protobuf_LIBS ${Protobuf_LIBRARIES}) +-endif() ++set(Protobuf_LIBS protobuf::libprotobuf) + +-find_package(Protobuf QUIET) ++find_package(Protobuf QUIET CONFIG) + + if( Protobuf_FOUND) + diff --git a/recipes/ros-jazzy-plotjuggler/recipe.yaml b/recipes/ros-jazzy-plotjuggler/recipe.yaml new file mode 100644 index 00000000..c876b695 --- /dev/null +++ b/recipes/ros-jazzy-plotjuggler/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-plotjuggler + version: 3.9.2 +source: + git: https://github.com/ros2-gbp/plotjuggler-release.git + tag: release/jazzy/plotjuggler/3.9.2-1 + target_directory: ros-jazzy-plotjuggler/src/work + patches: + - patch/ros-jazzy-plotjuggler.unix.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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: + - ${{ 'elfutils' if linux }} + - if: build_platform == target_platform + then: + - pkg-config + - cppzmq + - libboost-devel + - libboost-python-devel + - libprotobuf + - libxcb + - lz4 + - numpy + - pip + - protobuf + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-ament-index-cpp + - ros-jazzy-fastcdr + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - zeromq + - zstd + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - cppzmq + - libboost-devel + - libboost-python-devel + - libprotobuf + - lz4 + - protobuf + - python + - qt-main + - ros-jazzy-ament-index-cpp + - ros-jazzy-fastcdr + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - zeromq + - zstd + - 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-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..90276298 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..c05bd3af --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-pose-broadcaster/bld_ament_cmake.bat b/recipes/ros-jazzy-pose-broadcaster/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-pose-broadcaster/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-pose-broadcaster/build_ament_cmake.sh b/recipes/ros-jazzy-pose-broadcaster/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-pose-broadcaster/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-pose-broadcaster/recipe.yaml b/recipes/ros-jazzy-pose-broadcaster/recipe.yaml new file mode 100644 index 00000000..8a0c71cd --- /dev/null +++ b/recipes/ros-jazzy-pose-broadcaster/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-pose-broadcaster + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/pose_broadcaster/4.20.0-1 + target_directory: ros-jazzy-pose-broadcaster/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-tf2-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-controller-interface + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-position-controllers/bld_ament_cmake.bat b/recipes/ros-jazzy-position-controllers/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-position-controllers/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-position-controllers/build_ament_cmake.sh b/recipes/ros-jazzy-position-controllers/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-position-controllers/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-position-controllers/recipe.yaml b/recipes/ros-jazzy-position-controllers/recipe.yaml new file mode 100644 index 00000000..3b561e45 --- /dev/null +++ b/recipes/ros-jazzy-position-controllers/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-position-controllers + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/position_controllers/4.20.0-1 + target_directory: ros-jazzy-position-controllers/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-controller-manager + - ros-jazzy-forward-command-controller + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-forward-command-controller + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..bce738e2 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* jazzy_* + run: + - pybind11 + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..7a5f0e9e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-python-orocos-kdl-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-python-orocos-kdl-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-python-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-python-orocos-kdl-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-python-orocos-kdl-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-python-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-python-orocos-kdl-vendor/recipe.yaml b/recipes/ros-jazzy-python-orocos-kdl-vendor/recipe.yaml new file mode 100644 index 00000000..a60b29ba --- /dev/null +++ b/recipes/ros-jazzy-python-orocos-kdl-vendor/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-python-orocos-kdl-vendor + version: 0.5.1 +source: + git: https://github.com/ros2-gbp/orocos_kdl_vendor-release.git + tag: release/jazzy/python_orocos_kdl_vendor/0.5.1-2 + target_directory: ros-jazzy-python-orocos-kdl-vendor/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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 + - python + - python-orocos-kdl + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-pybind11-vendor + - ros-jazzy-python-cmake-module + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - pybind11 + run: + - python + - python-orocos-kdl + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-pybind11-vendor + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..d1a4949a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..1ad3b249 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - pydot + - python + - ros-jazzy-python-qt-binding + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..331a84b1 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..f22ae187 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-index-python + - ros-jazzy-python-qt-binding + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..8a94aab0 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..243c61ea --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..401ffd4e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-random-numbers/bld_ament_cmake.bat b/recipes/ros-jazzy-random-numbers/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-random-numbers/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-random-numbers/build_ament_cmake.sh b/recipes/ros-jazzy-random-numbers/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-random-numbers/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-random-numbers/recipe.yaml b/recipes/ros-jazzy-random-numbers/recipe.yaml new file mode 100644 index 00000000..d25c3d94 --- /dev/null +++ b/recipes/ros-jazzy-random-numbers/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-random-numbers + version: 2.0.1 +source: + git: https://github.com/ros2-gbp/random_numbers-release.git + tag: release/jazzy/random_numbers/2.0.1-5 + target_directory: ros-jazzy-random-numbers/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-cmake + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - libboost + - libboost-devel + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-range-sensor-broadcaster/bld_ament_cmake.bat b/recipes/ros-jazzy-range-sensor-broadcaster/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-range-sensor-broadcaster/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-range-sensor-broadcaster/build_ament_cmake.sh b/recipes/ros-jazzy-range-sensor-broadcaster/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-range-sensor-broadcaster/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-range-sensor-broadcaster/recipe.yaml b/recipes/ros-jazzy-range-sensor-broadcaster/recipe.yaml new file mode 100644 index 00000000..a54af76d --- /dev/null +++ b/recipes/ros-jazzy-range-sensor-broadcaster/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-range-sensor-broadcaster + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/range_sensor_broadcaster/4.20.0-1 + target_directory: ros-jazzy-range-sensor-broadcaster/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-controller-interface + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.7.* 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..8185494e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..7018c253 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* 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..3b2654c2 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..ba4b9eb3 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..627ab75d --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..904a7130 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - yaml + - yaml-cpp + run: + - python + - ros-jazzy-libyaml-vendor + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..cdf1e4a8 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..9e2ed5d6 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..8565452d --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..dfebfc2c --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..4dfc187b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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/patch/ros-jazzy-rclpy.osx.patch b/recipes/ros-jazzy-rclpy/patch/ros-jazzy-rclpy.osx.patch new file mode 100644 index 00000000..89b7d203 --- /dev/null +++ b/recipes/ros-jazzy-rclpy/patch/ros-jazzy-rclpy.osx.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 80b8a1f..5b6a55b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -72,7 +72,7 @@ function(configure_build_install_location _library_name) + endfunction() + + # Split from main extension and converted to pybind11 +-pybind11_add_module(_rclpy_pybind11 SHARED ++pybind11_add_module(_rclpy_pybind11 MODULE + src/rclpy/_rclpy_logging.cpp + src/rclpy/_rclpy_pybind11.cpp + src/rclpy/action_client.cpp diff --git a/recipes/ros-jazzy-rclpy/recipe.yaml b/recipes/ros-jazzy-rclpy/recipe.yaml new file mode 100644 index 00000000..58adeae1 --- /dev/null +++ b/recipes/ros-jazzy-rclpy/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-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 + patches: + - patch/ros-jazzy-rclpy.osx.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..c7d8881c --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..a6a03de7 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-realtime-tools/bld_ament_cmake.bat b/recipes/ros-jazzy-realtime-tools/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-realtime-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-realtime-tools/build_ament_cmake.sh b/recipes/ros-jazzy-realtime-tools/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-realtime-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-realtime-tools/patch/ros-jazzy-realtime-tools.osx.patch b/recipes/ros-jazzy-realtime-tools/patch/ros-jazzy-realtime-tools.osx.patch new file mode 100644 index 00000000..bc993ecd --- /dev/null +++ b/recipes/ros-jazzy-realtime-tools/patch/ros-jazzy-realtime-tools.osx.patch @@ -0,0 +1,83 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9ccbe4c..5652dad 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -48,7 +48,7 @@ target_include_directories(realtime_tools PUBLIC + $ + ) + ament_target_dependencies(realtime_tools PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS}) +-if(UNIX) ++if(UNIX AND NOT APPLE) + target_link_libraries(realtime_tools PUBLIC cap) + endif() + +@@ -62,7 +62,7 @@ target_include_directories(thread_priority PUBLIC + $ + ) + ament_target_dependencies(thread_priority PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS}) +-if(UNIX) ++if(UNIX AND NOT APPLE) + target_link_libraries(thread_priority PUBLIC cap) + endif() + +diff --git a/src/realtime_helpers.cpp b/src/realtime_helpers.cpp +index 9dbbfdf..10c3066 100644 +--- a/src/realtime_helpers.cpp ++++ b/src/realtime_helpers.cpp +@@ -32,13 +32,16 @@ + #include + #else + #include +-#include + #include + #include + + #include + #endif + ++#if defined(__unix__) ++#include ++#endif ++ + #include + #include + #include +@@ -75,6 +78,19 @@ bool configure_sched_fifo(int priority) + #ifdef _WIN32 + HANDLE thread = GetCurrentThread(); + return SetThreadPriority(thread, priority); ++#elif defined(__APPLE__) ++ pthread_t thread = pthread_self(); ++ struct sched_param schedp; ++ memset(&schedp, 0, sizeof(schedp)); ++ schedp.sched_priority = priority; ++ ++ int policy = SCHED_FIFO; ++ if (pthread_setschedparam(thread, policy, &schedp) == 0) { ++ return true; ++ } else { ++ // Optionally log strerror(errno) for debugging ++ return false; ++ } + #else + struct sched_param schedp; + memset(&schedp, 0, sizeof(schedp)); +@@ -94,6 +110,8 @@ std::pair lock_memory() + { + #ifdef _WIN32 + return {false, "Memory locking is not supported on Windows."}; ++#elif defined(__APPLE__) ++ return {false, "Memory locking is not supported on MacOS."}; + #else + auto is_capable = [](cap_value_t v) -> bool { + bool rc = false; +@@ -146,6 +164,9 @@ std::pair set_thread_affinity( + #ifdef _WIN32 + message = "Thread affinity is not supported on Windows."; + return std::make_pair(false, message); ++#elif defined(__APPLE__) ++ message = "Memory locking is not supported on MacOS."; ++ return std::make_pair(false, message); + #else + auto set_affinity_result_message = [](int result, std::string & msg) -> bool { + if (result == 0) { diff --git a/recipes/ros-jazzy-realtime-tools/recipe.yaml b/recipes/ros-jazzy-realtime-tools/recipe.yaml new file mode 100644 index 00000000..2ecc4cc8 --- /dev/null +++ b/recipes/ros-jazzy-realtime-tools/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-realtime-tools + version: 3.3.0 +source: + git: https://github.com/ros2-gbp/realtime_tools-release.git + tag: release/jazzy/realtime_tools/3.3.0-1 + target_directory: ros-jazzy-realtime-tools/src/work + patches: + - patch/ros-jazzy-realtime-tools.osx.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-lifecycle-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - libboost-devel + - python + - ros-jazzy-ament-cmake + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-action + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..0caba783 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..73732a1c --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..63cdfec5 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-rmw-connextdds-common + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..6f35084c --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..64317e02 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..13ba231e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..4f1292e1 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..d71f2a45 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..50ed1587 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..fb4e5eb7 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rmw-zenoh-cpp/bld_ament_cmake.bat b/recipes/ros-jazzy-rmw-zenoh-cpp/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rmw-zenoh-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-zenoh-cpp/build_ament_cmake.sh b/recipes/ros-jazzy-rmw-zenoh-cpp/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rmw-zenoh-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-zenoh-cpp/recipe.yaml b/recipes/ros-jazzy-rmw-zenoh-cpp/recipe.yaml new file mode 100644 index 00000000..d16833ab --- /dev/null +++ b/recipes/ros-jazzy-rmw-zenoh-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-rmw-zenoh-cpp + version: 0.2.0 +source: + git: https://github.com/ros2-gbp/rmw_zenoh-release.git + tag: release/jazzy/rmw_zenoh_cpp/0.2.0-1 + target_directory: ros-jazzy-rmw-zenoh-cpp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - libzenohc + - libzenohcxx + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-index-cpp + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-fastcdr + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-typesupport-fastrtps-c + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-zenoh-cpp-vendor + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-fastcdr + - ros-jazzy-rcpputils + - ros-jazzy-rcutils + - ros-jazzy-rmw + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-typesupport-fastrtps-c + - ros-jazzy-rosidl-typesupport-fastrtps-cpp + - ros-jazzy-zenoh-cpp-vendor + - ros2-distro-mutex 0.7.* 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..b2ce647f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-dynamic-typesupport + - ros-jazzy-rosidl-runtime-c + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-robot-localization/bld_ament_cmake.bat b/recipes/ros-jazzy-robot-localization/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-robot-localization/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-localization/build_ament_cmake.sh b/recipes/ros-jazzy-robot-localization/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-robot-localization/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-localization/recipe.yaml b/recipes/ros-jazzy-robot-localization/recipe.yaml new file mode 100644 index 00000000..7e5c8ee8 --- /dev/null +++ b/recipes/ros-jazzy-robot-localization/recipe.yaml @@ -0,0 +1,132 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-robot-localization + version: 3.8.1 +source: + git: https://github.com/ros2-gbp/robot_localization-release.git + tag: release/jazzy/robot_localization/3.8.1-1 + target_directory: ros-jazzy-robot-localization/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - geographiclib-cpp + - libboost-devel + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-angles + - ros-jazzy-builtin-interfaces + - ros-jazzy-diagnostic-msgs + - ros-jazzy-diagnostic-updater + - ros-jazzy-geographic-msgs + - ros-jazzy-geometry-msgs + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-message-filters + - ros-jazzy-nav-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rmw-implementation + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.7.* jazzy_* + run: + - eigen + - geographiclib-cpp + - libboost-devel + - python + - ros-jazzy-angles + - ros-jazzy-diagnostic-msgs + - ros-jazzy-diagnostic-updater + - ros-jazzy-geographic-msgs + - ros-jazzy-geometry-msgs + - ros-jazzy-message-filters + - ros-jazzy-nav-msgs + - ros-jazzy-rclcpp + - ros-jazzy-rmw-implementation + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-yaml-cpp-vendor + - ros2-distro-mutex 0.7.* 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..c1c235fe --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..2b221c6a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..ba21ce4a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..5d3aa192 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros2-distro-mutex 0.7.* 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..0fa48d1a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..f3022920 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..b03a951e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..69d5a28d --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..e4a413e4 --- /dev/null +++ b/recipes/ros-jazzy-ros-gz-sim/recipe.yaml @@ -0,0 +1,126 @@ +# 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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-rcpputils + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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-rcpputils + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..73fd0ef5 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros-industrial-cmake-boilerplate/bld_catkin.bat b/recipes/ros-jazzy-ros-industrial-cmake-boilerplate/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-ros-industrial-cmake-boilerplate/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-industrial-cmake-boilerplate/build_catkin.sh b/recipes/ros-jazzy-ros-industrial-cmake-boilerplate/build_catkin.sh new file mode 100755 index 00000000..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-ros-industrial-cmake-boilerplate/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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-industrial-cmake-boilerplate/recipe.yaml b/recipes/ros-jazzy-ros-industrial-cmake-boilerplate/recipe.yaml new file mode 100644 index 00000000..ea0bcc17 --- /dev/null +++ b/recipes/ros-jazzy-ros-industrial-cmake-boilerplate/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-ros-industrial-cmake-boilerplate + version: 0.5.4 +source: + git: https://github.com/ros2-gbp/ros_industrial_cmake_boilerplate-release.git + tag: release/jazzy/ros_industrial_cmake_boilerplate/0.5.4-3 + target_directory: ros-jazzy-ros-industrial-cmake-boilerplate/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - cppcheck + - gtest + - lcov + - libclang + - numpy + - pip + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..e4ea34a8 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..4a35f587 --- /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";; + 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..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-ros-workspace/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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/patch/ros-jazzy-ros-workspace.patch b/recipes/ros-jazzy-ros-workspace/patch/ros-jazzy-ros-workspace.patch new file mode 100644 index 00000000..7d05c9ca --- /dev/null +++ b/recipes/ros-jazzy-ros-workspace/patch/ros-jazzy-ros-workspace.patch @@ -0,0 +1,61 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f2ed31b..50b5843 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -4,7 +4,7 @@ project(ros_workspace NONE) + find_package(ament_cmake_core REQUIRED) + + # Collect current python 3 version +-execute_process(COMMAND python3 -c "from distutils import sysconfig; print(sysconfig.get_python_version())" OUTPUT_VARIABLE PYTHON_MAJOR_MINOR OUTPUT_STRIP_TRAILING_WHITESPACE) ++find_package (Python COMPONENTS Interpreter Development) + + # Locate ament_package template files. + if(WIN32) +@@ -14,7 +14,15 @@ else() + set(PYTHON_INSTALL_DIR "lib/python${PYTHON_MAJOR_MINOR}/site-packages") + set(SHELL_EXT "sh") + endif() +-set(AMENT_PACKAGE_DIR "${CMAKE_INSTALL_PREFIX}/${PYTHON_INSTALL_DIR}/ament_package") ++set(AMENT_PACKAGE_DIR "${Python_SITELIB}/ament_package") ++ ++if(NOT EXISTS "${AMENT_PACKAGE_DIR}" AND "$ENV{CONDA_BUILD_CROSS_COMPILATION}" EQUAL "1") ++ message(WARNING "Could not find '${AMENT_PACKAGE_DIR}'. Replace '$ENV{PREFIX}' with '$ENV{BUILD_PREFIX}'.") ++ string(REPLACE "$ENV{PREFIX}" "$ENV{BUILD_PREFIX}" AMENT_PACKAGE_DIR_REP ${AMENT_PACKAGE_DIR}) ++ set(AMENT_PACKAGE_DIR "${AMENT_PACKAGE_DIR_REP}") ++ message(WARNING "Now try '${AMENT_PACKAGE_DIR}'.") ++endif() ++ + if(NOT EXISTS "${AMENT_PACKAGE_DIR}") + # Check for an .egg-link file and use the listed directory if it exists + get_filename_component(AMENT_PACKAGE_EGG_LINK "${AMENT_PACKAGE_DIR}" DIRECTORY) +@@ -38,28 +46,7 @@ set( + "prepend-non-duplicate;PYTHONPATH;${PYTHON_INSTALL_DIR}") + + # Set environment hooks for default environment. +-if(WIN32) +- ament_environment_hooks("${PYTHONPATH_HOOK}") +-else() +- set(LIBRARY_PATH_HOOK "${AMENT_PACKAGE_TEMPLATE_DIR}/environment_hook/library_path.${SHELL_EXT}") +- # enable C language so that a trycompile can determine what the +- # anticipated libdir will be. +- enable_language(C) +- include(GNUInstallDirs) +- if(NOT ${CMAKE_INSTALL_LIBDIR} STREQUAL "lib") +- # register multiarch information for .dsv generation +- if(APPLE) +- set(LIBRARY_PATH_ENV_VAR "DYLD_LIBRARY_PATH") +- else() +- set(LIBRARY_PATH_ENV_VAR "LD_LIBRARY_PATH") +- endif() +- set( +- AMENT_CMAKE_ENVIRONMENT_HOOKS_DESC_multiarch_library_paths +- "prepend-non-duplicate;${LIBRARY_PATH_ENV_VAR};${CMAKE_INSTALL_LIBDIR}") +- set(MULTIARCH_LIBRARY_PATH_HOOK "env-hooks/multiarch_library_paths.sh.in") +- endif() +- ament_environment_hooks("${LIBRARY_PATH_HOOK}" "${PYTHONPATH_HOOK}" ${MULTIARCH_LIBRARY_PATH_HOOK}) +-endif() ++ament_environment_hooks("${BINARY_PATH_HOOK}" "${PYTHONPATH_HOOK}") + + # skip using ament_index/resource_index/parent_prefix_path + # if for Debian packages it is known that there are no underlays + diff --git a/recipes/ros-jazzy-ros-workspace/recipe.yaml b/recipes/ros-jazzy-ros-workspace/recipe.yaml new file mode 100644 index 00000000..7df0e765 --- /dev/null +++ b/recipes/ros-jazzy-ros-workspace/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-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 + patches: + - patch/ros-jazzy-ros-workspace.patch + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2-control-test-assets/bld_ament_cmake.bat b/recipes/ros-jazzy-ros2-control-test-assets/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros2-control-test-assets/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2-control-test-assets/build_ament_cmake.sh b/recipes/ros-jazzy-ros2-control-test-assets/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros2-control-test-assets/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros2-control-test-assets/recipe.yaml b/recipes/ros-jazzy-ros2-control-test-assets/recipe.yaml new file mode 100644 index 00000000..88d64826 --- /dev/null +++ b/recipes/ros-jazzy-ros2-control-test-assets/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-ros2-control-test-assets + version: 4.25.0 +source: + git: https://github.com/ros2-gbp/ros2_control-release.git + tag: release/jazzy/ros2_control_test_assets/4.25.0-1 + target_directory: ros-jazzy-ros2-control-test-assets/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2-control/bld_ament_cmake.bat b/recipes/ros-jazzy-ros2-control/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros2-control/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2-control/build_ament_cmake.sh b/recipes/ros-jazzy-ros2-control/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros2-control/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros2-control/recipe.yaml b/recipes/ros-jazzy-ros2-control/recipe.yaml new file mode 100644 index 00000000..90b3c4d7 --- /dev/null +++ b/recipes/ros-jazzy-ros2-control/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-ros2-control + version: 4.25.0 +source: + git: https://github.com/ros2-gbp/ros2_control-release.git + tag: release/jazzy/ros2_control/4.25.0-1 + target_directory: ros-jazzy-ros2-control/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-controller-manager-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-joint-limits + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-ros2controlcli + - ros-jazzy-transmission-interface + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2-controllers-test-nodes/bld_ament_python.bat b/recipes/ros-jazzy-ros2-controllers-test-nodes/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2-controllers-test-nodes/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-ros2-controllers-test-nodes/build_ament_python.sh b/recipes/ros-jazzy-ros2-controllers-test-nodes/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2-controllers-test-nodes/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-ros2-controllers-test-nodes/recipe.yaml b/recipes/ros-jazzy-ros2-controllers-test-nodes/recipe.yaml new file mode 100644 index 00000000..cd674747 --- /dev/null +++ b/recipes/ros-jazzy-ros2-controllers-test-nodes/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-ros2-controllers-test-nodes + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/ros2_controllers_test_nodes/4.20.0-1 + target_directory: ros-jazzy-ros2-controllers-test-nodes/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-launch-ros + - ros-jazzy-launch-testing-ros + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-trajectory-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-trajectory-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2-controllers/bld_ament_cmake.bat b/recipes/ros-jazzy-ros2-controllers/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ros2-controllers/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ros2-controllers/build_ament_cmake.sh b/recipes/ros-jazzy-ros2-controllers/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ros2-controllers/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ros2-controllers/recipe.yaml b/recipes/ros-jazzy-ros2-controllers/recipe.yaml new file mode 100644 index 00000000..65c6e5db --- /dev/null +++ b/recipes/ros-jazzy-ros2-controllers/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-ros2-controllers + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/ros2_controllers/4.20.0-1 + target_directory: ros-jazzy-ros2-controllers/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ackermann-steering-controller + - ros-jazzy-admittance-controller + - ros-jazzy-bicycle-steering-controller + - ros-jazzy-diff-drive-controller + - ros-jazzy-effort-controllers + - ros-jazzy-force-torque-sensor-broadcaster + - ros-jazzy-forward-command-controller + - ros-jazzy-gpio-controllers + - ros-jazzy-gripper-controllers + - ros-jazzy-imu-sensor-broadcaster + - ros-jazzy-joint-state-broadcaster + - ros-jazzy-joint-trajectory-controller + - ros-jazzy-mecanum-drive-controller + - ros-jazzy-parallel-gripper-controller + - ros-jazzy-pid-controller + - ros-jazzy-pose-broadcaster + - ros-jazzy-position-controllers + - ros-jazzy-range-sensor-broadcaster + - ros-jazzy-ros-workspace + - ros-jazzy-steering-controllers-library + - ros-jazzy-tricycle-controller + - ros-jazzy-tricycle-steering-controller + - ros-jazzy-velocity-controllers + - ros2-distro-mutex 0.7.* 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..2f71227c --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..91c3741f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..2226ba0a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..c7c76357 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* 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..358d1af9 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - argcomplete + - importlib-metadata + - packaging + - psutil + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..821b58ec --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ros2controlcli/bld_ament_python.bat b/recipes/ros-jazzy-ros2controlcli/bld_ament_python.bat new file mode 100755 index 00000000..902db09b --- /dev/null +++ b/recipes/ros-jazzy-ros2controlcli/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-ros2controlcli/build_ament_python.sh b/recipes/ros-jazzy-ros2controlcli/build_ament_python.sh new file mode 100755 index 00000000..e95680de --- /dev/null +++ b/recipes/ros-jazzy-ros2controlcli/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-ros2controlcli/recipe.yaml b/recipes/ros-jazzy-ros2controlcli/recipe.yaml new file mode 100644 index 00000000..5cceed24 --- /dev/null +++ b/recipes/ros-jazzy-ros2controlcli/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-ros2controlcli + version: 4.25.0 +source: + git: https://github.com/ros2-gbp/ros2_control-release.git + tag: release/jazzy/ros2controlcli/4.25.0-1 + target_directory: ros-jazzy-ros2controlcli/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_python.sh' if unix else '%RECIPE_DIR%\\bld_ament_python.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-controller-manager + - ros-jazzy-controller-manager-msgs + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-ros2node + - ros-jazzy-ros2param + - ros2-distro-mutex 0.7.* jazzy_* + - setuptools + run: + - pygraphviz + - python + - ros-jazzy-controller-manager + - ros-jazzy-controller-manager-msgs + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-ros2node + - ros-jazzy-ros2param + - ros-jazzy-rosidl-runtime-py + - ros2-distro-mutex 0.7.* 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..563e4821 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..66671fcf --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..186eb836 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..436f3c2a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..1ab80e5d --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..44e1cd20 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros2-distro-mutex 0.7.* 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..352099a7 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros2-distro-mutex 0.7.* 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..d4b08abd --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..c1fc2937 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..f6f3b531 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-ros2pkg + - ros2-distro-mutex 0.7.* 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..67c2c885 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - pyyaml + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-rosidl-runtime-py + - ros2-distro-mutex 0.7.* 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..a936acd2 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..b5ea9fd7 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosapi-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-rosapi-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosapi-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-rosapi-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-rosapi-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosapi-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-rosapi-msgs/recipe.yaml b/recipes/ros-jazzy-rosapi-msgs/recipe.yaml new file mode 100644 index 00000000..ef47a5a7 --- /dev/null +++ b/recipes/ros-jazzy-rosapi-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-rosapi-msgs + version: 2.1.0 +source: + git: https://github.com/ros2-gbp/rosbridge_suite-release.git + tag: release/jazzy/rosapi_msgs/2.1.0-1 + target_directory: ros-jazzy-rosapi-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-builtin-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-rcl-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosapi/bld_ament_cmake.bat b/recipes/ros-jazzy-rosapi/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosapi/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosapi/build_ament_cmake.sh b/recipes/ros-jazzy-rosapi/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosapi/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosapi/recipe.yaml b/recipes/ros-jazzy-rosapi/recipe.yaml new file mode 100644 index 00000000..39fcb228 --- /dev/null +++ b/recipes/ros-jazzy-rosapi/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-rosapi + version: 2.1.0 +source: + git: https://github.com/ros2-gbp/rosbridge_suite-release.git + tag: release/jazzy/rosapi/2.1.0-1 + target_directory: ros-jazzy-rosapi/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-pytest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-geometry-msgs + - ros-jazzy-rmw-dds-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-shape-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-rcl-interfaces + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2node + - ros-jazzy-ros2param + - ros-jazzy-ros2pkg + - ros-jazzy-ros2service + - ros-jazzy-ros2topic + - ros-jazzy-rosapi-msgs + - ros-jazzy-rosbridge-library + - ros2-distro-mutex 0.7.* 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..2929600a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..c6ab0807 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..9c20fd39 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..97f23927 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* 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/patch/ros-jazzy-rosbag2-py.osx.patch b/recipes/ros-jazzy-rosbag2-py/patch/ros-jazzy-rosbag2-py.osx.patch new file mode 100644 index 00000000..d7564996 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-py/patch/ros-jazzy-rosbag2-py.osx.patch @@ -0,0 +1,74 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index feb07925f..6000ec43e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -41,21 +41,21 @@ find_package(pybind11 REQUIRED) + + ament_python_install_package(${PROJECT_NAME}) + +-pybind11_add_module(_compression_options SHARED ++pybind11_add_module(_compression_options MODULE + src/rosbag2_py/_compression_options.cpp + ) + target_link_libraries(_compression_options PUBLIC + rosbag2_compression::rosbag2_compression + ) + +-pybind11_add_module(_message_definitions SHARED ++pybind11_add_module(_message_definitions MODULE + src/rosbag2_py/_message_definitions.cpp + ) + target_link_libraries(_message_definitions PUBLIC + rosbag2_cpp::rosbag2_cpp + ) + +-pybind11_add_module(_reader SHARED ++pybind11_add_module(_reader MODULE + src/rosbag2_py/_reader.cpp + ) + target_link_libraries(_reader PUBLIC +@@ -64,7 +64,7 @@ target_link_libraries(_reader PUBLIC + rosbag2_storage::rosbag2_storage + ) + +-pybind11_add_module(_storage SHARED ++pybind11_add_module(_storage MODULE + src/rosbag2_py/_storage.cpp + src/rosbag2_py/format_bag_metadata.cpp + ) +@@ -73,7 +73,7 @@ target_link_libraries(_storage PUBLIC + rosbag2_storage::rosbag2_storage + ) + +-pybind11_add_module(_writer SHARED ++pybind11_add_module(_writer MODULE + src/rosbag2_py/_writer.cpp + ) + target_link_libraries(_writer PUBLIC +@@ -82,7 +82,7 @@ target_link_libraries(_writer PUBLIC + rosbag2_storage::rosbag2_storage + ) + +-pybind11_add_module(_info SHARED ++pybind11_add_module(_info MODULE + src/rosbag2_py/_info.cpp + src/rosbag2_py/format_bag_metadata.cpp + src/rosbag2_py/format_service_info.cpp +@@ -92,7 +92,7 @@ target_link_libraries(_info PUBLIC + rosbag2_storage::rosbag2_storage + ) + +-pybind11_add_module(_transport SHARED ++pybind11_add_module(_transport MODULE + src/rosbag2_py/_transport.cpp + ) + target_link_libraries(_transport PUBLIC +@@ -102,7 +102,7 @@ target_link_libraries(_transport PUBLIC + rosbag2_transport::rosbag2_transport + ) + +-pybind11_add_module(_reindexer SHARED ++pybind11_add_module(_reindexer MODULE + src/rosbag2_py/_reindexer.cpp + ) + target_link_libraries(_reindexer PUBLIC diff --git a/recipes/ros-jazzy-rosbag2-py/recipe.yaml b/recipes/ros-jazzy-rosbag2-py/recipe.yaml new file mode 100644 index 00000000..ccb5dc35 --- /dev/null +++ b/recipes/ros-jazzy-rosbag2-py/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-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 + patches: + - patch/ros-jazzy-rosbag2-py.osx.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..58cd7d62 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosbag2-storage-mcap + - ros-jazzy-rosbag2-storage-sqlite3 + - ros2-distro-mutex 0.7.* 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..c043ca6e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..8dfdf81e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..5c97a832 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..1669a0f7 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-test-msgs + - ros2-distro-mutex 0.7.* 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..1427db0f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..af0a6560 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-index-cpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..bece1770 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..f3857d3f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbridge-library/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbridge-library/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-library/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbridge-library/build_ament_cmake.sh b/recipes/ros-jazzy-rosbridge-library/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-library/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbridge-library/recipe.yaml b/recipes/ros-jazzy-rosbridge-library/recipe.yaml new file mode 100644 index 00000000..d39cdf0e --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-library/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-rosbridge-library + version: 2.1.0 +source: + git: https://github.com/ros2-gbp/rosbridge_suite-release.git + tag: release/jazzy/rosbridge_library/2.1.0-1 + target_directory: ros-jazzy-rosbridge-library/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pillow + - pip + - pymongo + - python + - ros-jazzy-action-msgs + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-ros + - ros-jazzy-builtin-interfaces + - ros-jazzy-control-msgs + - ros-jazzy-diagnostic-msgs + - ros-jazzy-example-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosbridge-test-msgs + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-stereo-msgs + - ros-jazzy-tf2-msgs + - ros-jazzy-trajectory-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - pillow + - pymongo + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbridge-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbridge-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-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-rosbridge-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-rosbridge-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-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-rosbridge-msgs/recipe.yaml b/recipes/ros-jazzy-rosbridge-msgs/recipe.yaml new file mode 100644 index 00000000..e6acd234 --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-msgs/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-rosbridge-msgs + version: 2.1.0 +source: + git: https://github.com/ros2-gbp/rosbridge_suite-release.git + tag: release/jazzy/rosbridge_msgs/2.1.0-1 + target_directory: ros-jazzy-rosbridge-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-builtin-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbridge-server/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbridge-server/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-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-rosbridge-server/build_ament_cmake.sh b/recipes/ros-jazzy-rosbridge-server/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-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-rosbridge-server/recipe.yaml b/recipes/ros-jazzy-rosbridge-server/recipe.yaml new file mode 100644 index 00000000..b9c7cf54 --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-server/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-rosbridge-server + version: 2.1.0 +source: + git: https://github.com/ros2-gbp/rosbridge_suite-release.git + tag: release/jazzy/rosbridge_server/2.1.0-1 + target_directory: ros-jazzy-rosbridge-server/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - autobahn + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-ros + - ros-jazzy-example-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-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-srvs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rosapi + - ros-jazzy-rosbridge-library + - ros-jazzy-rosbridge-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - tornado + - twisted + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbridge-suite/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbridge-suite/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-suite/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-rosbridge-suite/build_ament_cmake.sh b/recipes/ros-jazzy-rosbridge-suite/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-suite/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-rosbridge-suite/recipe.yaml b/recipes/ros-jazzy-rosbridge-suite/recipe.yaml new file mode 100644 index 00000000..e4a39f1b --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-suite/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-rosbridge-suite + version: 2.1.0 +source: + git: https://github.com/ros2-gbp/rosbridge_suite-release.git + tag: release/jazzy/rosbridge_suite/2.1.0-1 + target_directory: ros-jazzy-rosbridge-suite/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosapi + - ros-jazzy-rosbridge-library + - ros-jazzy-rosbridge-server + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rosbridge-test-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-rosbridge-test-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-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-rosbridge-test-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-rosbridge-test-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-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-rosbridge-test-msgs/recipe.yaml b/recipes/ros-jazzy-rosbridge-test-msgs/recipe.yaml new file mode 100644 index 00000000..344c7e0e --- /dev/null +++ b/recipes/ros-jazzy-rosbridge-test-msgs/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-rosbridge-test-msgs + version: 2.1.0 +source: + git: https://github.com/ros2-gbp/rosbridge_suite-release.git + tag: release/jazzy/rosbridge_test_msgs/2.1.0-1 + target_directory: ros-jazzy-rosbridge-test-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-pytest + - ros-jazzy-builtin-interfaces + - ros-jazzy-diagnostic-msgs + - ros-jazzy-example-interfaces + - ros-jazzy-geometry-msgs + - 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 + - ros-jazzy-std-srvs + - ros-jazzy-stereo-msgs + - ros-jazzy-tf2-msgs + - ros-jazzy-trajectory-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..97e918c6 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* 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..c6b02b03 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - empy + - python + - ros-jazzy-ament-cmake-core + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-cli + - ros2-distro-mutex 0.7.* 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..587a1eee --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - argcomplete + - importlib-metadata + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..3c3fc86c --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - empy + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-pycommon + - ros2-distro-mutex 0.7.* 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..a82528ab --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..26ff2c3c --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..1cbc8015 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..062870d9 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-runtime + - ros-jazzy-service-msgs + - ros2-distro-mutex 0.7.* 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..7116f6f9 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..e4dab09a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros2-distro-mutex 0.7.* 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..82539d39 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..cd12bfff --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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/patch/ros-jazzy-rosidl-generator-py.osx.patch b/recipes/ros-jazzy-rosidl-generator-py/patch/ros-jazzy-rosidl-generator-py.osx.patch new file mode 100644 index 00000000..cde64b21 --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-py/patch/ros-jazzy-rosidl-generator-py.osx.patch @@ -0,0 +1,69 @@ +diff --git a/cmake/rosidl_generator_py_generate_interfaces.cmake b/cmake/rosidl_generator_py_generate_interfaces.cmake +index cfc424a..cddd23d 100644 +--- a/cmake/rosidl_generator_py_generate_interfaces.cmake ++++ b/cmake/rosidl_generator_py_generate_interfaces.cmake +@@ -138,7 +139,7 @@ set_property( + + set(_target_name_lib "${rosidl_generate_interfaces_TARGET}__rosidl_generator_py") + add_library(${_target_name_lib} SHARED ${_generated_c_files}) +-target_link_libraries(${_target_name_lib} PRIVATE ++target_link_libraries(${_target_name_lib} PUBLIC + ${rosidl_generate_interfaces_TARGET}__rosidl_generator_c) + add_dependencies( + ${_target_name_lib} +@@ -146,11 +147,6 @@ add_dependencies( + ${rosidl_generate_interfaces_TARGET}__rosidl_typesupport_c + ) + +-target_link_libraries( +- ${_target_name_lib} PRIVATE +- Python3::NumPy +- Python3::Python +-) + target_include_directories(${_target_name_lib} + PRIVATE + ${CMAKE_CURRENT_BINARY_DIR}/rosidl_generator_c +@@ -162,8 +158,15 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(_extension_compile_flags -Wall -Wextra) + endif() + ++if(APPLE) ++ set_target_properties(${_target_name_lib} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") ++ target_include_directories(${_target_name_lib} PUBLIC ${Python3_INCLUDE_DIRS} ${Python3_NumPy_INCLUDE_DIRS}) ++else() ++ target_link_libraries(${_target_name_lib} PUBLIC Python3::NumPy Python3::Python) ++endif() ++ + rosidl_get_typesupport_target(c_typesupport_target "${rosidl_generate_interfaces_TARGET}" "rosidl_typesupport_c") +-target_link_libraries(${_target_name_lib} PRIVATE ${c_typesupport_target}) ++target_link_libraries(${_target_name_lib} PUBLIC ${c_typesupport_target}) + + foreach(_typesupport_impl ${_typesupport_impls}) + find_package(${_typesupport_impl} REQUIRED) +@@ -194,7 +197,7 @@ foreach(_typesupport_impl ${_typesupport_impls}) + RUNTIME_OUTPUT_DIRECTORY ${_output_path}) + + target_link_libraries( +- ${_target_name} PRIVATE ++ ${_target_name} PUBLIC + ${_target_name_lib} + ${rosidl_generate_interfaces_TARGET}__${_typesupport_impl} + ${c_typesupport_target} +@@ -210,7 +213,7 @@ foreach(_typesupport_impl ${_typesupport_impls}) + ) + + foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES}) +- target_link_libraries(${_target_name} PRIVATE ${${_pkg_name}__TARGETS}) ++ target_link_libraries(${_target_name} PUBLIC ${${_pkg_name}__TARGETS}) + endforeach() + + add_dependencies(${_target_name} +@@ -231,7 +234,7 @@ endforeach() + + # Depend on rosidl_generator_py generated targets from our dependencies + foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES}) +- target_link_libraries(${_target_name_lib} PRIVATE ${${_pkg_name}_TARGETS${rosidl_generator_py_suffix}}) ++ target_link_libraries(${_target_name_lib} PUBLIC ${${_pkg_name}_TARGETS${rosidl_generator_py_suffix}}) + endforeach() + + set_target_properties(${_target_name_lib} PROPERTIES COMPILE_OPTIONS "${_extension_compile_flags}") 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..7a69b0bd --- /dev/null +++ b/recipes/ros-jazzy-rosidl-generator-py/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-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 + patches: + - patch/ros-jazzy-rosidl-generator-py.osx.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..31cf65a1 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..b5115a9e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - lark-parser + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-adapter + - ros2-distro-mutex 0.7.* 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..e142b062 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-parser + - ros2-distro-mutex 0.7.* 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..3ed0d3bf --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-rcutils + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-typesupport-interface + - ros2-distro-mutex 0.7.* 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..524d8b9d --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-runtime-c + - ros2-distro-mutex 0.7.* 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..68240f6a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - numpy + - python + - pyyaml + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-parser + - ros2-distro-mutex 0.7.* 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..e04cbe9a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..285444d3 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..6ce01e13 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..a5c4d9e2 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..5deb5b7b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..6208686f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..04ce0204 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..c097e3c9 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..3baa6b67 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..0f37b49e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..ff355f17 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..de72e3b2 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..26509d60 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..d44e98e4 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..7f74f5aa --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..f672e2bd --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-qt-gui + - ros-jazzy-ros-workspace + - ros-jazzy-rqt-gui + - ros2-distro-mutex 0.7.* 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..8f5f1d70 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..711ce32b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..705c5028 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..82538eff --- /dev/null +++ b/recipes/ros-jazzy-rqt-plot/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-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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-rosidl-runtime-py + - ros-jazzy-rqt-gui + - ros-jazzy-rqt-gui-py + - ros-jazzy-rqt-py-common + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..a69e8b0e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..d796e978 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..0306cd3b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..61f55514 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..29370b42 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..972ae5b4 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..f273aa35 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..ca8afc01 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rsl/bld_catkin.bat b/recipes/ros-jazzy-rsl/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-rsl/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-rsl/build_catkin.sh b/recipes/ros-jazzy-rsl/build_catkin.sh new file mode 100755 index 00000000..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-rsl/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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-rsl/patch/ros-jazzy-rsl.patch b/recipes/ros-jazzy-rsl/patch/ros-jazzy-rsl.patch new file mode 100644 index 00000000..e3560f29 --- /dev/null +++ b/recipes/ros-jazzy-rsl/patch/ros-jazzy-rsl.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6d47b08..c7b66df 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -10,7 +10,7 @@ find_package(tcb_span REQUIRED) + find_package(tl_expected REQUIRED) + + if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") +- add_compile_options(-Werror -Wall -Wextra -Wpedantic -Wshadow -Wconversion -Wsign-conversion -Wold-style-cast) ++ add_compile_options(-Wall -Wextra -Wpedantic -Wshadow -Wconversion -Wsign-conversion -Wold-style-cast) + endif() + + option(BUILD_SHARED_LIBS "Build shared libraries" ON) diff --git a/recipes/ros-jazzy-rsl/recipe.yaml b/recipes/ros-jazzy-rsl/recipe.yaml new file mode 100644 index 00000000..6cc0e343 --- /dev/null +++ b/recipes/ros-jazzy-rsl/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-rsl + version: 1.1.0 +source: + git: https://github.com/ros2-gbp/RSL-release.git + tag: release/jazzy/rsl/1.1.0-3 + target_directory: ros-jazzy-rsl/src/work + patches: + - patch/ros-jazzy-rsl.patch + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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: + - git + - if: build_platform != target_platform + then: + - doxygen + host: + - if: build_platform == target_platform + then: + - pkg-config + - clang-tools + - eigen + - fmt + - graphviz + - numpy + - pip + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tcb-span + - ros-jazzy-tl-expected + - ros2-distro-mutex 0.7.* jazzy_* + - if: build_platform == target_platform + then: + - git + - if: build_platform == target_platform + then: + - doxygen + run: + - eigen + - fmt + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-tcb-span + - ros-jazzy-tl-expected + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-rtcm-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-rtcm-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rtcm-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-rtcm-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-rtcm-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rtcm-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-rtcm-msgs/recipe.yaml b/recipes/ros-jazzy-rtcm-msgs/recipe.yaml new file mode 100644 index 00000000..f39c8464 --- /dev/null +++ b/recipes/ros-jazzy-rtcm-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-rtcm-msgs + version: 1.1.6 +source: + git: https://github.com/ros2-gbp/rtcm_msgs-release.git + tag: release/jazzy/rtcm_msgs/1.1.6-4 + target_directory: ros-jazzy-rtcm-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..95e2025e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ruckig/bld_catkin.bat b/recipes/ros-jazzy-ruckig/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-ruckig/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-ruckig/build_catkin.sh b/recipes/ros-jazzy-ruckig/build_catkin.sh new file mode 100755 index 00000000..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-ruckig/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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-ruckig/recipe.yaml b/recipes/ros-jazzy-ruckig/recipe.yaml new file mode 100644 index 00000000..60d3c8a4 --- /dev/null +++ b/recipes/ros-jazzy-ruckig/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-ruckig + version: 0.9.2 +source: + git: https://github.com/ros2-gbp/ruckig-release.git + tag: release/jazzy/ruckig/0.9.2-5 + target_directory: ros-jazzy-ruckig/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..4d3ef3e3 --- /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.7 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_assimp_vendor/14.1.7-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - 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.7.* jazzy_* + run: + - assimp + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..05cf1f04 --- /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.7 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_common/14.1.7-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..793ca361 --- /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.7 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_default_plugins/14.1.7-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..488a8f88 --- /dev/null +++ b/recipes/ros-jazzy-rviz-ogre-vendor/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-rviz-ogre-vendor + version: 14.1.7 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_ogre_vendor/14.1.7-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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: + - ${{ '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.7.* jazzy_* + - xorg-libx11 + - xorg-libxaw + - xorg-libxrandr + - 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.7.* jazzy_* + - xorg-libx11 + - xorg-libxaw + - xorg-libxrandr + - 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..fd1055b3 --- /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.7 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_rendering_tests/14.1.7-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..db0b6a69 --- /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.7 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_rendering/14.1.7-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..828dbd0f --- /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.7 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz_visual_testing_framework/14.1.7-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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-tools/bld_ament_cmake.bat b/recipes/ros-jazzy-rviz-visual-tools/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-rviz-visual-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-rviz-visual-tools/build_ament_cmake.sh b/recipes/ros-jazzy-rviz-visual-tools/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-rviz-visual-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-rviz-visual-tools/recipe.yaml b/recipes/ros-jazzy-rviz-visual-tools/recipe.yaml new file mode 100644 index 00000000..0bcb6fbe --- /dev/null +++ b/recipes/ros-jazzy-rviz-visual-tools/recipe.yaml @@ -0,0 +1,148 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-rviz-visual-tools + version: 4.1.4 +source: + git: https://github.com/ros2-gbp/rviz_visual_tools-release.git + tag: release/jazzy/rviz_visual_tools/4.1.4-4 + target_directory: ros-jazzy-rviz-visual-tools/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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 + - numpy + - pip + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-eigen-stl-containers + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-geometry-msgs + - ros-jazzy-interactive-markers + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-common + - ros-jazzy-rviz-default-plugins + - ros-jazzy-rviz-ogre-vendor + - ros-jazzy-rviz-rendering + - ros-jazzy-sensor-msgs + - ros-jazzy-shape-msgs + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-trajectory-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - eigen + - python + - qt-main + - ros-jazzy-ament-index-python + - ros-jazzy-eigen-stl-containers + - ros-jazzy-eigen3-cmake-module + - ros-jazzy-geometry-msgs + - ros-jazzy-interactive-markers + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-rviz-common + - ros-jazzy-rviz-default-plugins + - ros-jazzy-rviz-ogre-vendor + - ros-jazzy-rviz-rendering + - ros-jazzy-rviz2 + - ros-jazzy-sensor-msgs + - ros-jazzy-shape-msgs + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-eigen + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-trajectory-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* 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..1d30c9b5 --- /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.7 +source: + git: https://github.com/ros2-gbp/rviz-release.git + tag: release/jazzy/rviz2/14.1.7-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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-sbg-driver/bld_ament_cmake.bat b/recipes/ros-jazzy-sbg-driver/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-sbg-driver/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-sbg-driver/build_ament_cmake.sh b/recipes/ros-jazzy-sbg-driver/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-sbg-driver/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-sbg-driver/recipe.yaml b/recipes/ros-jazzy-sbg-driver/recipe.yaml new file mode 100644 index 00000000..7fe3b208 --- /dev/null +++ b/recipes/ros-jazzy-sbg-driver/recipe.yaml @@ -0,0 +1,108 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-sbg-driver + version: 3.2.0 +source: + git: https://github.com/SBG-Systems/sbg_ros2-release.git + tag: release/jazzy/sbg_driver/3.2.0-1 + target_directory: ros-jazzy-sbg-driver/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nmea-msgs + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rtcm-msgs + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-nav-msgs + - ros-jazzy-nmea-msgs + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-rtcm-msgs + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} 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..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-sdformat-test-files/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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..e09abd6f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - cmake + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..7fa8b01b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..a499aa58 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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..a75ffb36 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - sdl2 + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - sdl2 + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-self-test/bld_ament_cmake.bat b/recipes/ros-jazzy-self-test/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-self-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-self-test/build_ament_cmake.sh b/recipes/ros-jazzy-self-test/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-self-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-self-test/recipe.yaml b/recipes/ros-jazzy-self-test/recipe.yaml new file mode 100644 index 00000000..cb8ab1af --- /dev/null +++ b/recipes/ros-jazzy-self-test/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-self-test + version: 4.2.1 +source: + git: https://github.com/ros2-gbp/diagnostics-release.git + tag: release/jazzy/self_test/4.2.1-1 + target_directory: ros-jazzy-self-test/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-diagnostic-msgs + - ros-jazzy-diagnostic-updater + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-diagnostic-msgs + - ros-jazzy-diagnostic-updater + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - 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..0eb6bb7e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - numpy + - python + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* 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..c08e7b9c --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..33b8cf9b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-runtime + - ros2-distro-mutex 0.7.* 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..7adeaa0b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-simulation/bld_ament_cmake.bat b/recipes/ros-jazzy-simulation/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-simulation/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-simulation/build_ament_cmake.sh b/recipes/ros-jazzy-simulation/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-simulation/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-simulation/recipe.yaml b/recipes/ros-jazzy-simulation/recipe.yaml new file mode 100644 index 00000000..c9a44839 --- /dev/null +++ b/recipes/ros-jazzy-simulation/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-simulation + version: 0.11.0 +source: + git: https://github.com/ros2-gbp/variants-release.git + tag: release/jazzy/simulation/0.11.0-1 + target_directory: ros-jazzy-simulation/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-base + - ros-jazzy-ros-gz-bridge + - ros-jazzy-ros-gz-image + - ros-jazzy-ros-gz-interfaces + - ros-jazzy-ros-gz-sim + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-slam-toolbox/bld_ament_cmake.bat b/recipes/ros-jazzy-slam-toolbox/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-slam-toolbox/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-slam-toolbox/build_ament_cmake.sh b/recipes/ros-jazzy-slam-toolbox/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-slam-toolbox/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-slam-toolbox/recipe.yaml b/recipes/ros-jazzy-slam-toolbox/recipe.yaml new file mode 100644 index 00000000..1d0f0a37 --- /dev/null +++ b/recipes/ros-jazzy-slam-toolbox/recipe.yaml @@ -0,0 +1,172 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-slam-toolbox + version: 2.8.2 +source: + git: https://github.com/SteveMacenski/slam_toolbox-release.git + tag: release/jazzy/slam_toolbox/2.8.2-1 + target_directory: ros-jazzy-slam-toolbox/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + - ${{ 'qt-main' if (build_platform != target_platform) }} + - if: build_platform != target_platform + then: + - qt-main + host: + - blas-devel + - if: build_platform == target_platform + then: + - pkg-config + - ceres-solver + - eigen + - libboost-devel + - libboost-python-devel + - liblapack + - numpy + - pip + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-cpplint + - ros-jazzy-ament-cmake-flake8 + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-uncrustify + - ros-jazzy-ament-lint-auto + - ros-jazzy-bond + - ros-jazzy-bondcpp + - ros-jazzy-builtin-interfaces + - ros-jazzy-interactive-markers + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-lifecycle-msgs + - ros-jazzy-message-filters + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rviz-common + - ros-jazzy-rviz-default-plugins + - 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-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-tf2-sensor-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - suitesparse + - tbb + - tbb-devel + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - ceres-solver + - eigen + - libboost-devel + - libboost-python-devel + - liblapack + - python + - qt-main + - ros-jazzy-bond + - ros-jazzy-bondcpp + - ros-jazzy-builtin-interfaces + - ros-jazzy-interactive-markers + - ros-jazzy-lifecycle-msgs + - ros-jazzy-message-filters + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rviz-common + - ros-jazzy-rviz-default-plugins + - 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-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-tf2-sensor-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - suitesparse + - tbb + - tbb-devel + - 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-smclib/bld_ament_cmake.bat b/recipes/ros-jazzy-smclib/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-smclib/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-smclib/build_ament_cmake.sh b/recipes/ros-jazzy-smclib/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-smclib/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-smclib/recipe.yaml b/recipes/ros-jazzy-smclib/recipe.yaml new file mode 100644 index 00000000..5ccbacd6 --- /dev/null +++ b/recipes/ros-jazzy-smclib/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-smclib + version: 4.1.2 +source: + git: https://github.com/ros2-gbp/bond_core-release.git + tag: release/jazzy/smclib/4.1.2-1 + target_directory: ros-jazzy-smclib/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..10ad6fc6 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - spdlog + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..7a38061b --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - sqlite + - sqlite 3.* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - sqlite + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-srdfdom/bld_ament_cmake.bat b/recipes/ros-jazzy-srdfdom/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-srdfdom/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-srdfdom/build_ament_cmake.sh b/recipes/ros-jazzy-srdfdom/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-srdfdom/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-srdfdom/recipe.yaml b/recipes/ros-jazzy-srdfdom/recipe.yaml new file mode 100644 index 00000000..c686f270 --- /dev/null +++ b/recipes/ros-jazzy-srdfdom/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-srdfdom + version: 2.0.7 +source: + git: https://github.com/ros2-gbp/srdfdom-release.git + tag: release/jazzy/srdfdom/2.0.7-1 + target_directory: ros-jazzy-srdfdom/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - libboost-devel + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-cmake + - ros-jazzy-console-bridge-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tinyxml2-vendor + - ros-jazzy-urdf + - ros-jazzy-urdfdom-headers + - ros2-distro-mutex 0.7.* jazzy_* + run: + - console_bridge + - python + - ros-jazzy-console-bridge-vendor + - ros-jazzy-ros-workspace + - ros-jazzy-tinyxml2-vendor + - ros-jazzy-urdf + - ros-jazzy-urdfdom-py + - ros2-distro-mutex 0.7.* jazzy_* + - 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..67a80a00 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-sros2 + - ros2-distro-mutex 0.7.* 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..238bf510 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..586482b0 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* 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..3e089c06 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* 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..9aee1c03 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-steering-controllers-library/bld_ament_cmake.bat b/recipes/ros-jazzy-steering-controllers-library/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-steering-controllers-library/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-steering-controllers-library/build_ament_cmake.sh b/recipes/ros-jazzy-steering-controllers-library/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-steering-controllers-library/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-steering-controllers-library/recipe.yaml b/recipes/ros-jazzy-steering-controllers-library/recipe.yaml new file mode 100644 index 00000000..d1fe6dd4 --- /dev/null +++ b/recipes/ros-jazzy-steering-controllers-library/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-steering-controllers-library + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/steering_controllers_library/4.20.0-1 + target_directory: ros-jazzy-steering-controllers-library/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-ackermann-msgs + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcpputils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-ackermann-msgs + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcpputils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-stereo-image-proc/bld_ament_cmake.bat b/recipes/ros-jazzy-stereo-image-proc/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-stereo-image-proc/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-image-proc/build_ament_cmake.sh b/recipes/ros-jazzy-stereo-image-proc/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-stereo-image-proc/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-image-proc/recipe.yaml b/recipes/ros-jazzy-stereo-image-proc/recipe.yaml new file mode 100644 index 00000000..56805a03 --- /dev/null +++ b/recipes/ros-jazzy-stereo-image-proc/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-stereo-image-proc + version: 5.0.6 +source: + git: https://github.com/ros2-gbp/image_pipeline-release.git + tag: release/jazzy/stereo_image_proc/5.0.6-1 + target_directory: ros-jazzy-stereo-image-proc/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-auto + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-cv-bridge + - ros-jazzy-image-geometry + - ros-jazzy-image-proc + - ros-jazzy-image-transport + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-message-filters + - ros-jazzy-python-cmake-module + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-testing + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-stereo-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-cv-bridge + - ros-jazzy-image-geometry + - ros-jazzy-image-proc + - ros-jazzy-image-transport + - ros-jazzy-message-filters + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-stereo-msgs + - ros2-distro-mutex 0.7.* 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..a199d393 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-stomp/bld_catkin.bat b/recipes/ros-jazzy-stomp/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-stomp/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-stomp/build_catkin.sh b/recipes/ros-jazzy-stomp/build_catkin.sh new file mode 100755 index 00000000..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-stomp/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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-stomp/recipe.yaml b/recipes/ros-jazzy-stomp/recipe.yaml new file mode 100644 index 00000000..6945d4dc --- /dev/null +++ b/recipes/ros-jazzy-stomp/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-stomp + version: 0.1.2 +source: + git: https://github.com/ros2-gbp/stomp-release.git + tag: release/jazzy/stomp/0.1.2-4 + target_directory: ros-jazzy-stomp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - eigen + - gtest + - numpy + - pip + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-industrial-cmake-boilerplate + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - console_bridge + - eigen + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..a6467f83 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tcb-span/bld_ament_cmake.bat b/recipes/ros-jazzy-tcb-span/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tcb-span/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tcb-span/build_ament_cmake.sh b/recipes/ros-jazzy-tcb-span/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tcb-span/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tcb-span/recipe.yaml b/recipes/ros-jazzy-tcb-span/recipe.yaml new file mode 100644 index 00000000..404099ab --- /dev/null +++ b/recipes/ros-jazzy-tcb-span/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-tcb-span + version: 1.0.2 +source: + git: https://github.com/ros2-gbp/cpp_polyfills-release.git + tag: release/jazzy/tcb_span/1.0.2-5 + target_directory: ros-jazzy-tcb-span/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..e0f3a664 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..020b215f --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - setuptools + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..712df02a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..edca96ec --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* 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..eddbdb9d --- /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.8 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_bullet/0.36.8-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - bullet + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* 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..bc8e1815 --- /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.8 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_eigen_kdl/0.36.8-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - eigen + - python + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros2-distro-mutex 0.7.* 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..84883e15 --- /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.8 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_eigen/0.36.8-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* jazzy_* + run: + - eigen + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* 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..a4d24630 --- /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.8 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_geometry_msgs/0.36.8-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..5d160a6e --- /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.8 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_kdl/0.36.8-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-orocos-kdl-vendor + - ros-jazzy-python-orocos-kdl-vendor + - ros-jazzy-ros-workspace + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros-jazzy-tf2-ros-py + - ros2-distro-mutex 0.7.* 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..13c9440c --- /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.8 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_msgs/0.36.8-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* 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..4e76b727 --- /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.8 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_py/0.36.8-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..237792b0 --- /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.8 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_ros_py/0.36.8-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..ab6c03b6 --- /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.8 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_ros/0.36.8-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..b8eb9430 --- /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.8 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_sensor_msgs/0.36.8-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* 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..6cd4342a --- /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.8 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2_tools/0.36.8-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..8a8731b7 --- /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.8 +source: + git: https://github.com/ros2-gbp/geometry2-release.git + tag: release/jazzy/tf2/0.36.8-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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* 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..fbd2c384 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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.7.* 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.7.* 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/patch/ros-jazzy-tinyxml2-vendor.patch b/recipes/ros-jazzy-tinyxml2-vendor/patch/ros-jazzy-tinyxml2-vendor.patch new file mode 100644 index 00000000..8a8075dc --- /dev/null +++ b/recipes/ros-jazzy-tinyxml2-vendor/patch/ros-jazzy-tinyxml2-vendor.patch @@ -0,0 +1,17 @@ +diff --git a/cmake/Modules/FindTinyXML2.cmake b/cmake/Modules/FindTinyXML2.cmake +index 87991be..5436d86 100644 +--- a/cmake/Modules/FindTinyXML2.cmake ++++ b/cmake/Modules/FindTinyXML2.cmake +@@ -67,6 +67,12 @@ else() + set_property(TARGET tinyxml2::tinyxml2 PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${TINYXML2_INCLUDE_DIR}) + list(APPEND TinyXML2_TARGETS tinyxml2::tinyxml2) + endif() ++ ++ # Compatibility with https://github.com/gazebosim/gz-cmake/blob/eb1c510e6278935eb742ed92c6a6d1388439f8bd/cmake/FindTINYXML2.cmake#L4 ++ if(NOT TARGET TINYXML2::TINYXML2) ++ add_library(TINYXML2::TINYXML2 INTERFACE IMPORTED) ++ set_property(TARGET TINYXML2::TINYXML2 PROPERTY INTERFACE_LINK_LIBRARIES tinyxml2::tinyxml2) ++ endif() + endif() + + # Set mixed case INCLUDE_DIRS and LIBRARY variables from upper case ones. diff --git a/recipes/ros-jazzy-tinyxml2-vendor/recipe.yaml b/recipes/ros-jazzy-tinyxml2-vendor/recipe.yaml new file mode 100644 index 00000000..ccacbba8 --- /dev/null +++ b/recipes/ros-jazzy-tinyxml2-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-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 + patches: + - patch/ros-jazzy-tinyxml2-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - tinyxml2 + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - tinyxml2 + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tl-expected/bld_ament_cmake.bat b/recipes/ros-jazzy-tl-expected/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tl-expected/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tl-expected/build_ament_cmake.sh b/recipes/ros-jazzy-tl-expected/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tl-expected/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tl-expected/recipe.yaml b/recipes/ros-jazzy-tl-expected/recipe.yaml new file mode 100644 index 00000000..4ba36e54 --- /dev/null +++ b/recipes/ros-jazzy-tl-expected/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-tl-expected + version: 1.0.2 +source: + git: https://github.com/ros2-gbp/cpp_polyfills-release.git + tag: release/jazzy/tl_expected/1.0.2-5 + target_directory: ros-jazzy-tl-expected/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - 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..6a877615 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-topic-tools-interfaces/bld_ament_cmake.bat b/recipes/ros-jazzy-topic-tools-interfaces/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-topic-tools-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-topic-tools-interfaces/build_ament_cmake.sh b/recipes/ros-jazzy-topic-tools-interfaces/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-topic-tools-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-topic-tools-interfaces/recipe.yaml b/recipes/ros-jazzy-topic-tools-interfaces/recipe.yaml new file mode 100644 index 00000000..6ec8a095 --- /dev/null +++ b/recipes/ros-jazzy-topic-tools-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-topic-tools-interfaces + version: 1.3.2 +source: + git: https://github.com/ros2-gbp/topic_tools-release.git + tag: release/jazzy/topic_tools_interfaces/1.3.2-1 + target_directory: ros-jazzy-topic-tools-interfaces/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-topic-tools/bld_ament_cmake.bat b/recipes/ros-jazzy-topic-tools/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-topic-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-topic-tools/build_ament_cmake.sh b/recipes/ros-jazzy-topic-tools/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-topic-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-topic-tools/recipe.yaml b/recipes/ros-jazzy-topic-tools/recipe.yaml new file mode 100644 index 00000000..637d08d5 --- /dev/null +++ b/recipes/ros-jazzy-topic-tools/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-topic-tools + version: 1.3.2 +source: + git: https://github.com/ros2-gbp/topic_tools-release.git + tag: release/jazzy/topic_tools/1.3.2-1 + target_directory: ros-jazzy-topic-tools/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rosidl-runtime-py + - ros-jazzy-std-msgs + - ros-jazzy-topic-tools-interfaces + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-rosidl-runtime-py + - ros-jazzy-topic-tools-interfaces + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tracetools-image-pipeline/bld_ament_cmake.bat b/recipes/ros-jazzy-tracetools-image-pipeline/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tracetools-image-pipeline/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-image-pipeline/build_ament_cmake.sh b/recipes/ros-jazzy-tracetools-image-pipeline/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tracetools-image-pipeline/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-image-pipeline/recipe.yaml b/recipes/ros-jazzy-tracetools-image-pipeline/recipe.yaml new file mode 100644 index 00000000..ec88a6d0 --- /dev/null +++ b/recipes/ros-jazzy-tracetools-image-pipeline/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-tracetools-image-pipeline + version: 5.0.6 +source: + git: https://github.com/ros2-gbp/image_pipeline-release.git + tag: release/jazzy/tracetools_image_pipeline/5.0.6-1 + target_directory: ros-jazzy-tracetools-image-pipeline/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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 + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..eef7158e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - 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.7.* jazzy_* + run: + - ${{ "lttng-ust" if linux }} + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..e1ab0c1a --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-transmission-interface/bld_ament_cmake.bat b/recipes/ros-jazzy-transmission-interface/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-transmission-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-transmission-interface/build_ament_cmake.sh b/recipes/ros-jazzy-transmission-interface/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-transmission-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-transmission-interface/recipe.yaml b/recipes/ros-jazzy-transmission-interface/recipe.yaml new file mode 100644 index 00000000..009b2456 --- /dev/null +++ b/recipes/ros-jazzy-transmission-interface/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-transmission-interface + version: 4.25.0 +source: + git: https://github.com/ros2-gbp/ros2_control-release.git + tag: release/jazzy/transmission_interface/4.25.0-1 + target_directory: ros-jazzy-transmission-interface/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-gen-version-h + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tricycle-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-tricycle-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tricycle-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tricycle-controller/build_ament_cmake.sh b/recipes/ros-jazzy-tricycle-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tricycle-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tricycle-controller/recipe.yaml b/recipes/ros-jazzy-tricycle-controller/recipe.yaml new file mode 100644 index 00000000..8f07e6e6 --- /dev/null +++ b/recipes/ros-jazzy-tricycle-controller/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-tricycle-controller + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/tricycle_controller/4.20.0-1 + target_directory: ros-jazzy-tricycle-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-ackermann-msgs + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gmock + - ros-jazzy-backward-ros + - ros-jazzy-builtin-interfaces + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcpputils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-ackermann-msgs + - ros-jazzy-backward-ros + - ros-jazzy-builtin-interfaces + - ros-jazzy-controller-interface + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcpputils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tricycle-steering-controller/bld_ament_cmake.bat b/recipes/ros-jazzy-tricycle-steering-controller/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tricycle-steering-controller/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tricycle-steering-controller/build_ament_cmake.sh b/recipes/ros-jazzy-tricycle-steering-controller/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tricycle-steering-controller/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tricycle-steering-controller/recipe.yaml b/recipes/ros-jazzy-tricycle-steering-controller/recipe.yaml new file mode 100644 index 00000000..c32393ce --- /dev/null +++ b/recipes/ros-jazzy-tricycle-steering-controller/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-tricycle-steering-controller + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/tricycle_steering_controller/4.20.0-1 + target_directory: ros-jazzy-tricycle-steering-controller/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-std-srvs + - ros-jazzy-steering-controllers-library + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-hardware-interface + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-std-srvs + - ros-jazzy-steering-controllers-library + - ros2-distro-mutex 0.7.* 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..a20e9da4 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* 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.7.* 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-twist-mux-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-twist-mux-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-twist-mux-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-twist-mux-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-twist-mux-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-twist-mux-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-twist-mux-msgs/recipe.yaml b/recipes/ros-jazzy-twist-mux-msgs/recipe.yaml new file mode 100644 index 00000000..ed59e757 --- /dev/null +++ b/recipes/ros-jazzy-twist-mux-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-twist-mux-msgs + version: 3.0.1 +source: + git: https://github.com/ros2-gbp/twist_mux_msgs-release.git + tag: release/jazzy/twist_mux_msgs/3.0.1-3 + target_directory: ros-jazzy-twist-mux-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-twist-mux/bld_ament_cmake.bat b/recipes/ros-jazzy-twist-mux/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-twist-mux/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-twist-mux/build_ament_cmake.sh b/recipes/ros-jazzy-twist-mux/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-twist-mux/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-twist-mux/recipe.yaml b/recipes/ros-jazzy-twist-mux/recipe.yaml new file mode 100644 index 00000000..994685dd --- /dev/null +++ b/recipes/ros-jazzy-twist-mux/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-twist-mux + version: 4.4.0 +source: + git: https://github.com/ros2-gbp/twist_mux-release.git + tag: release/jazzy/twist_mux/4.4.0-1 + target_directory: ros-jazzy-twist-mux/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-xmllint + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-diagnostic-updater + - ros-jazzy-geometry-msgs + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-launch-testing-ros + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-diagnostic-updater + - ros-jazzy-geometry-msgs + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-twist-mux-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} 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..3172d2fe --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-runtime + - ros-jazzy-service-msgs + - ros2-distro-mutex 0.7.* 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..693c5ea0 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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.7.* jazzy_* + - uncrustify + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..9c5e6f9d --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-core-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ur-calibration/bld_ament_cmake.bat b/recipes/ros-jazzy-ur-calibration/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ur-calibration/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ur-calibration/build_ament_cmake.sh b/recipes/ros-jazzy-ur-calibration/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ur-calibration/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ur-calibration/recipe.yaml b/recipes/ros-jazzy-ur-calibration/recipe.yaml new file mode 100644 index 00000000..d6e75943 --- /dev/null +++ b/recipes/ros-jazzy-ur-calibration/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-ur-calibration + version: 3.0.2 +source: + git: https://github.com/ros2-gbp/Universal_Robots_ROS2_Driver-release.git + tag: release/jazzy/ur_calibration/3.0.2-1 + target_directory: ros-jazzy-ur-calibration/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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-gmock + - 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-ur-client-library + - ros-jazzy-ur-robot-driver + - ros2-distro-mutex 0.7.* jazzy_* + - yaml-cpp + run: + - eigen + - python + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-ur-client-library + - ros-jazzy-ur-robot-driver + - ros2-distro-mutex 0.7.* jazzy_* + - yaml-cpp + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ur-client-library/bld_catkin.bat b/recipes/ros-jazzy-ur-client-library/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-ur-client-library/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-ur-client-library/build_catkin.sh b/recipes/ros-jazzy-ur-client-library/build_catkin.sh new file mode 100755 index 00000000..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-ur-client-library/build_catkin.sh @@ -0,0 +1,138 @@ +# 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" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_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 + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +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 \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -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 "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target 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-ur-client-library/patch/ros-jazzy-ur-client-library.osx.patch b/recipes/ros-jazzy-ur-client-library/patch/ros-jazzy-ur-client-library.osx.patch new file mode 100644 index 00000000..e416aa38 --- /dev/null +++ b/recipes/ros-jazzy-ur-client-library/patch/ros-jazzy-ur-client-library.osx.patch @@ -0,0 +1,243 @@ +diff --git a/include/ur_client_library/portable_endian.h b/include/ur_client_library/portable_endian.h +new file mode 100644 +index 0000000..2b43378 +--- /dev/null ++++ b/include/ur_client_library/portable_endian.h +@@ -0,0 +1,118 @@ ++// "License": Public Domain ++// I, Mathias Panzenböck, place this file hereby into the public domain. Use it at your own risk for whatever you like. ++// In case there are jurisdictions that don't support putting things in the public domain you can also consider it to ++// be "dual licensed" under the BSD, MIT and Apache licenses, if you want to. This code is trivial anyway. Consider it ++// an example on how to get the endian conversion functions on different platforms. ++ ++#ifndef PORTABLE_ENDIAN_H__ ++#define PORTABLE_ENDIAN_H__ ++ ++#if (defined(_WIN16) || defined(_WIN32) || defined(_WIN64)) && !defined(__WINDOWS__) ++ ++# define __WINDOWS__ ++ ++#endif ++ ++#if defined(__linux__) || defined(__CYGWIN__) ++ ++# include ++ ++#elif defined(__APPLE__) ++ ++# include ++ ++# define htobe16(x) OSSwapHostToBigInt16(x) ++# define htole16(x) OSSwapHostToLittleInt16(x) ++# define be16toh(x) OSSwapBigToHostInt16(x) ++# define le16toh(x) OSSwapLittleToHostInt16(x) ++ ++# define htobe32(x) OSSwapHostToBigInt32(x) ++# define htole32(x) OSSwapHostToLittleInt32(x) ++# define be32toh(x) OSSwapBigToHostInt32(x) ++# define le32toh(x) OSSwapLittleToHostInt32(x) ++ ++# define htobe64(x) OSSwapHostToBigInt64(x) ++# define htole64(x) OSSwapHostToLittleInt64(x) ++# define be64toh(x) OSSwapBigToHostInt64(x) ++# define le64toh(x) OSSwapLittleToHostInt64(x) ++ ++# define __BYTE_ORDER BYTE_ORDER ++# define __BIG_ENDIAN BIG_ENDIAN ++# define __LITTLE_ENDIAN LITTLE_ENDIAN ++# define __PDP_ENDIAN PDP_ENDIAN ++ ++#elif defined(__OpenBSD__) ++ ++# include ++ ++#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) ++ ++# include ++ ++# define be16toh(x) betoh16(x) ++# define le16toh(x) letoh16(x) ++ ++# define be32toh(x) betoh32(x) ++# define le32toh(x) letoh32(x) ++ ++# define be64toh(x) betoh64(x) ++# define le64toh(x) letoh64(x) ++ ++#elif defined(__WINDOWS__) ++ ++# include ++# include ++ ++# if BYTE_ORDER == LITTLE_ENDIAN ++ ++# define htobe16(x) htons(x) ++# define htole16(x) (x) ++# define be16toh(x) ntohs(x) ++# define le16toh(x) (x) ++ ++# define htobe32(x) htonl(x) ++# define htole32(x) (x) ++# define be32toh(x) ntohl(x) ++# define le32toh(x) (x) ++ ++# define htobe64(x) htonll(x) ++# define htole64(x) (x) ++# define be64toh(x) ntohll(x) ++# define le64toh(x) (x) ++ ++# elif BYTE_ORDER == BIG_ENDIAN ++ ++ /* that would be xbox 360 */ ++# define htobe16(x) (x) ++# define htole16(x) __builtin_bswap16(x) ++# define be16toh(x) (x) ++# define le16toh(x) __builtin_bswap16(x) ++ ++# define htobe32(x) (x) ++# define htole32(x) __builtin_bswap32(x) ++# define be32toh(x) (x) ++# define le32toh(x) __builtin_bswap32(x) ++ ++# define htobe64(x) (x) ++# define htole64(x) __builtin_bswap64(x) ++# define be64toh(x) (x) ++# define le64toh(x) __builtin_bswap64(x) ++ ++# else ++ ++# error byte order not supported ++ ++# endif ++ ++# define __BYTE_ORDER BYTE_ORDER ++# define __BIG_ENDIAN BIG_ENDIAN ++# define __LITTLE_ENDIAN LITTLE_ENDIAN ++# define __PDP_ENDIAN PDP_ENDIAN ++ ++#else ++ ++# error platform not supported ++ ++#endif ++ ++#endif + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 878ffed..a1b176e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -69,6 +65,9 @@ endif() + if(CMAKE_THREAD_LIBS_INIT) + target_link_libraries(urcl PUBLIC "${CMAKE_THREAD_LIBS_INIT}") + endif() ++if(UNIX AND NOT APPLE) ++ target_link_libraries(urcl PUBLIC "rt") ++endif() + + ## + ## Build testing if enabled by option +diff --git a/include/ur_client_library/comm/bin_parser.h b/include/ur_client_library/comm/bin_parser.h +index e13aba6..83f8e6c 100644 +--- a/include/ur_client_library/comm/bin_parser.h ++++ b/include/ur_client_library/comm/bin_parser.h +@@ -21,7 +21,6 @@ + #pragma once + + #include +-#include + #include + #include + #include +@@ -29,6 +28,7 @@ + #include + #include + #include ++#include "ur_client_library/portable_endian.h" + #include "ur_client_library/log.h" + #include "ur_client_library/types.h" + #include "ur_client_library/exceptions.h" +diff --git a/include/ur_client_library/comm/package_serializer.h b/include/ur_client_library/comm/package_serializer.h +index 7745da9..ded500a 100644 +--- a/include/ur_client_library/comm/package_serializer.h ++++ b/include/ur_client_library/comm/package_serializer.h +@@ -29,8 +29,8 @@ + #ifndef UR_CLIENT_LIBRARY_PACKAGE_SERIALIZER_H_INCLUDED + #define UR_CLIENT_LIBRARY_PACKAGE_SERIALIZER_H_INCLUDED + +-#include + #include ++#include "ur_client_library/portable_endian.h" + + namespace urcl + { +diff --git a/include/ur_client_library/control/reverse_interface.h b/include/ur_client_library/control/reverse_interface.h +index 707c455..ee8c318 100644 +--- a/include/ur_client_library/control/reverse_interface.h ++++ b/include/ur_client_library/control/reverse_interface.h +@@ -35,8 +35,8 @@ + #include "ur_client_library/log.h" + #include "ur_client_library/ur/robot_receive_timeout.h" + #include +-#include + #include ++#include "ur_client_library/portable_endian.h" + + namespace urcl + { +diff --git a/include/ur_client_library/primary/package_header.h b/include/ur_client_library/primary/package_header.h +index cd64bda..440b2e4 100644 +--- a/include/ur_client_library/primary/package_header.h ++++ b/include/ur_client_library/primary/package_header.h +@@ -32,7 +32,7 @@ + + #include + #include +-#include ++#include "ur_client_library/portable_endian.h" + #include "ur_client_library/types.h" + + namespace urcl +diff --git a/include/ur_client_library/rtde/package_header.h b/include/ur_client_library/rtde/package_header.h +index f910a08..eb509ea 100644 +--- a/include/ur_client_library/rtde/package_header.h ++++ b/include/ur_client_library/rtde/package_header.h +@@ -31,7 +31,7 @@ + #define UR_CLIENT_LIBRARY_RTDE__HEADER_H_INCLUDED + + #include +-#include ++#include "ur_client_library/portable_endian.h" + #include "ur_client_library/types.h" + #include "ur_client_library/comm/package_serializer.h" + +diff --git a/src/comm/tcp_socket.cpp b/src/comm/tcp_socket.cpp +index 8803664..1d92880 100644 +--- a/src/comm/tcp_socket.cpp ++++ b/src/comm/tcp_socket.cpp +@@ -21,7 +21,6 @@ + */ + + #include +-#include + #include + #include + #include +@@ -29,6 +28,7 @@ + #include + #include + ++#include "ur_client_library/portable_endian.h" + #include "ur_client_library/log.h" + #include "ur_client_library/comm/tcp_socket.h" + +@@ -48,7 +48,9 @@ void TCPSocket::setupOptions() + { + int flag = 1; + setsockopt(socket_fd_, IPPROTO_TCP, TCP_NODELAY, &flag, sizeof(int)); ++#ifndef __APPLE__ + setsockopt(socket_fd_, IPPROTO_TCP, TCP_QUICKACK, &flag, sizeof(int)); ++#endif + + if (recv_timeout_ != nullptr) + { diff --git a/recipes/ros-jazzy-ur-client-library/recipe.yaml b/recipes/ros-jazzy-ur-client-library/recipe.yaml new file mode 100644 index 00000000..c97d1be3 --- /dev/null +++ b/recipes/ros-jazzy-ur-client-library/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-ur-client-library + version: 1.6.0 +source: + git: https://github.com/ros2-gbp/Universal_Robots_Client_Library-release.git + tag: release/jazzy/ur_client_library/1.6.0-1 + target_directory: ros-jazzy-ur-client-library/src/work + patches: + - patch/ros-jazzy-ur-client-library.osx.patch + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} +tests: + - script: + - cmake-package-check ur_client_library --targets ur_client_library::urcl + requirements: + run: + - cmake-package-check + - ${{ compiler('c') }} + - ${{ compiler('cxx') }} diff --git a/recipes/ros-jazzy-ur-controllers/bld_ament_cmake.bat b/recipes/ros-jazzy-ur-controllers/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ur-controllers/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ur-controllers/build_ament_cmake.sh b/recipes/ros-jazzy-ur-controllers/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ur-controllers/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ur-controllers/recipe.yaml b/recipes/ros-jazzy-ur-controllers/recipe.yaml new file mode 100644 index 00000000..382e3b29 --- /dev/null +++ b/recipes/ros-jazzy-ur-controllers/recipe.yaml @@ -0,0 +1,126 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-ur-controllers + version: 3.0.2 +source: + git: https://github.com/ros2-gbp/Universal_Robots_ROS2_Driver-release.git + tag: release/jazzy/ur_controllers/3.0.2-1 + target_directory: ros-jazzy-ur-controllers/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-angles + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-controller-manager + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-joint-trajectory-controller + - ros-jazzy-lifecycle-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcutils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-trajectory-msgs + - ros-jazzy-ur-dashboard-msgs + - ros-jazzy-ur-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-angles + - ros-jazzy-control-msgs + - ros-jazzy-controller-interface + - ros-jazzy-generate-parameter-library + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-joint-trajectory-controller + - ros-jazzy-lifecycle-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rcutils + - ros-jazzy-realtime-tools + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-trajectory-msgs + - ros-jazzy-ur-dashboard-msgs + - ros-jazzy-ur-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ur-dashboard-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-ur-dashboard-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ur-dashboard-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-ur-dashboard-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-ur-dashboard-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ur-dashboard-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-ur-dashboard-msgs/recipe.yaml b/recipes/ros-jazzy-ur-dashboard-msgs/recipe.yaml new file mode 100644 index 00000000..b8b66e4c --- /dev/null +++ b/recipes/ros-jazzy-ur-dashboard-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-ur-dashboard-msgs + version: 3.0.2 +source: + git: https://github.com/ros2-gbp/Universal_Robots_ROS2_Driver-release.git + tag: release/jazzy/ur_dashboard_msgs/3.0.2-1 + target_directory: ros-jazzy-ur-dashboard-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-action-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ur-description/bld_ament_cmake.bat b/recipes/ros-jazzy-ur-description/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ur-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-ur-description/build_ament_cmake.sh b/recipes/ros-jazzy-ur-description/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ur-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-ur-description/recipe.yaml b/recipes/ros-jazzy-ur-description/recipe.yaml new file mode 100644 index 00000000..e0ed7364 --- /dev/null +++ b/recipes/ros-jazzy-ur-description/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-ur-description + version: 3.0.1 +source: + git: https://github.com/ros2-gbp/ur_description-release.git + tag: release/jazzy/ur_description/3.0.1-1 + target_directory: ros-jazzy-ur-description/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-launch-testing-ament-cmake + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-xacro + - ros2-distro-mutex 0.7.* jazzy_* + - urdfdom + run: + - python + - ros-jazzy-joint-state-publisher-gui + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-robot-state-publisher + - ros-jazzy-ros-workspace + - ros-jazzy-rviz2 + - ros-jazzy-urdf + - ros-jazzy-xacro + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ur-moveit-config/bld_ament_cmake.bat b/recipes/ros-jazzy-ur-moveit-config/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ur-moveit-config/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ur-moveit-config/build_ament_cmake.sh b/recipes/ros-jazzy-ur-moveit-config/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ur-moveit-config/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ur-moveit-config/recipe.yaml b/recipes/ros-jazzy-ur-moveit-config/recipe.yaml new file mode 100644 index 00000000..ebe7c6ab --- /dev/null +++ b/recipes/ros-jazzy-ur-moveit-config/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-ur-moveit-config + version: 3.0.2 +source: + git: https://github.com/ros2-gbp/Universal_Robots_ROS2_Driver-release.git + tag: release/jazzy/ur_moveit_config/3.0.2-1 + target_directory: ros-jazzy-ur-moveit-config/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-moveit-configs-utils + - ros-jazzy-moveit-kinematics + - ros-jazzy-moveit-planners + - ros-jazzy-moveit-planners-chomp + - ros-jazzy-moveit-ros-move-group + - ros-jazzy-moveit-ros-visualization + - ros-jazzy-moveit-servo + - ros-jazzy-moveit-simple-controller-manager + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ur-description + - ros-jazzy-warehouse-ros-sqlite + - ros-jazzy-xacro + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ur-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-ur-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ur-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-ur-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-ur-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ur-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-ur-msgs/recipe.yaml b/recipes/ros-jazzy-ur-msgs/recipe.yaml new file mode 100644 index 00000000..8fb91a0c --- /dev/null +++ b/recipes/ros-jazzy-ur-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-ur-msgs + version: 2.1.0 +source: + git: https://github.com/ros2-gbp/ur_msgs-release.git + tag: release/jazzy/ur_msgs/2.1.0-1 + target_directory: ros-jazzy-ur-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-geometry-msgs + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ur-robot-driver/bld_ament_cmake.bat b/recipes/ros-jazzy-ur-robot-driver/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ur-robot-driver/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ur-robot-driver/build_ament_cmake.sh b/recipes/ros-jazzy-ur-robot-driver/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ur-robot-driver/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ur-robot-driver/recipe.yaml b/recipes/ros-jazzy-ur-robot-driver/recipe.yaml new file mode 100644 index 00000000..ecda9eba --- /dev/null +++ b/recipes/ros-jazzy-ur-robot-driver/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-ur-robot-driver + version: 3.0.2 +source: + git: https://github.com/ros2-gbp/Universal_Robots_ROS2_Driver-release.git + tag: release/jazzy/ur_robot_driver/3.0.2-1 + target_directory: ros-jazzy-ur-robot-driver/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-controller-manager + - ros-jazzy-controller-manager-msgs + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-ur-client-library + - ros-jazzy-ur-controllers + - ros-jazzy-ur-dashboard-msgs + - ros-jazzy-ur-description + - ros-jazzy-ur-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-controller-manager + - ros-jazzy-controller-manager-msgs + - ros-jazzy-force-torque-sensor-broadcaster + - ros-jazzy-geometry-msgs + - ros-jazzy-hardware-interface + - ros-jazzy-joint-state-broadcaster + - ros-jazzy-joint-state-publisher + - ros-jazzy-joint-trajectory-controller + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-pluginlib + - ros-jazzy-pose-broadcaster + - ros-jazzy-position-controllers + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-rclpy + - ros-jazzy-robot-state-publisher + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-controllers-test-nodes + - ros-jazzy-rviz2 + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-ur-client-library + - ros-jazzy-ur-controllers + - ros-jazzy-ur-dashboard-msgs + - ros-jazzy-ur-description + - ros-jazzy-ur-msgs + - ros-jazzy-urdf + - ros-jazzy-velocity-controllers + - ros-jazzy-xacro + - ros2-distro-mutex 0.7.* jazzy_* + - socat + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ur-simulation-gz/bld_ament_cmake.bat b/recipes/ros-jazzy-ur-simulation-gz/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ur-simulation-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-ur-simulation-gz/build_ament_cmake.sh b/recipes/ros-jazzy-ur-simulation-gz/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ur-simulation-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-ur-simulation-gz/recipe.yaml b/recipes/ros-jazzy-ur-simulation-gz/recipe.yaml new file mode 100644 index 00000000..4d814ecb --- /dev/null +++ b/recipes/ros-jazzy-ur-simulation-gz/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-ur-simulation-gz + version: 2.1.0 +source: + git: https://github.com/ros2-gbp/ur_simulation_gz-release.git + tag: release/jazzy/ur_simulation_gz/2.1.0-2 + target_directory: ros-jazzy-ur-simulation-gz/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-launch-testing-ament-cmake + - ros-jazzy-launch-testing-ros + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-xacro + - ros2-distro-mutex 0.7.* jazzy_* + - urdfdom + run: + - python + - ros-jazzy-gz-ros2-control + - ros-jazzy-joint-state-publisher + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-ros-gz-bridge + - ros-jazzy-ros-gz-sim + - ros-jazzy-ros-workspace + - ros-jazzy-rviz2 + - ros-jazzy-ur-controllers + - ros-jazzy-ur-description + - ros-jazzy-ur-moveit-config + - ros-jazzy-urdf + - ros-jazzy-xacro + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-ur/bld_ament_cmake.bat b/recipes/ros-jazzy-ur/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-ur/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-ur/build_ament_cmake.sh b/recipes/ros-jazzy-ur/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-ur/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-ur/recipe.yaml b/recipes/ros-jazzy-ur/recipe.yaml new file mode 100644 index 00000000..85b666b2 --- /dev/null +++ b/recipes/ros-jazzy-ur/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-ur + version: 3.0.2 +source: + git: https://github.com/ros2-gbp/Universal_Robots_ROS2_Driver-release.git + tag: release/jazzy/ur/3.0.2-1 + target_directory: ros-jazzy-ur/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-ur-calibration + - ros-jazzy-ur-controllers + - ros-jazzy-ur-dashboard-msgs + - ros-jazzy-ur-moveit-config + - ros-jazzy-ur-robot-driver + - ros2-distro-mutex 0.7.* 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..f563be53 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-urdfdom-headers + - ros2-distro-mutex 0.7.* 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..35135a3e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-velocity-controllers/bld_ament_cmake.bat b/recipes/ros-jazzy-velocity-controllers/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-velocity-controllers/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-velocity-controllers/build_ament_cmake.sh b/recipes/ros-jazzy-velocity-controllers/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-velocity-controllers/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-velocity-controllers/recipe.yaml b/recipes/ros-jazzy-velocity-controllers/recipe.yaml new file mode 100644 index 00000000..473590ef --- /dev/null +++ b/recipes/ros-jazzy-velocity-controllers/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-velocity-controllers + version: 4.20.0 +source: + git: https://github.com/ros2-gbp/ros2_controllers-release.git + tag: release/jazzy/velocity_controllers/4.20.0-1 + target_directory: ros-jazzy-velocity-controllers/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-backward-ros + - ros-jazzy-controller-manager + - ros-jazzy-forward-command-controller + - ros-jazzy-hardware-interface + - ros-jazzy-hardware-interface-testing + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-ros2-control-test-assets + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-backward-ros + - ros-jazzy-forward-command-controller + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-velodyne-driver/bld_ament_cmake.bat b/recipes/ros-jazzy-velodyne-driver/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-velodyne-driver/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-velodyne-driver/build_ament_cmake.sh b/recipes/ros-jazzy-velodyne-driver/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-velodyne-driver/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-velodyne-driver/recipe.yaml b/recipes/ros-jazzy-velodyne-driver/recipe.yaml new file mode 100644 index 00000000..9293185b --- /dev/null +++ b/recipes/ros-jazzy-velodyne-driver/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-velodyne-driver + version: 2.5.1 +source: + git: https://github.com/ros2-gbp/velodyne-release.git + tag: release/jazzy/velodyne_driver/2.5.1-1 + target_directory: ros-jazzy-velodyne-driver/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - libpcap + - 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-diagnostic-updater + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros-jazzy-velodyne-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - libpcap + - python + - ros-jazzy-diagnostic-updater + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-tf2-ros + - ros-jazzy-velodyne-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-velodyne-laserscan/bld_ament_cmake.bat b/recipes/ros-jazzy-velodyne-laserscan/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-velodyne-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-velodyne-laserscan/build_ament_cmake.sh b/recipes/ros-jazzy-velodyne-laserscan/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-velodyne-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-velodyne-laserscan/recipe.yaml b/recipes/ros-jazzy-velodyne-laserscan/recipe.yaml new file mode 100644 index 00000000..7ddcf38f --- /dev/null +++ b/recipes/ros-jazzy-velodyne-laserscan/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-velodyne-laserscan + version: 2.5.1 +source: + git: https://github.com/ros2-gbp/velodyne-release.git + tag: release/jazzy/velodyne_laserscan/2.5.1-1 + target_directory: ros-jazzy-velodyne-laserscan/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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-sensor-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-velodyne-msgs/bld_ament_cmake.bat b/recipes/ros-jazzy-velodyne-msgs/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-velodyne-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-velodyne-msgs/build_ament_cmake.sh b/recipes/ros-jazzy-velodyne-msgs/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-velodyne-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-velodyne-msgs/recipe.yaml b/recipes/ros-jazzy-velodyne-msgs/recipe.yaml new file mode 100644 index 00000000..39d4b1a6 --- /dev/null +++ b/recipes/ros-jazzy-velodyne-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-velodyne-msgs + version: 2.5.1 +source: + git: https://github.com/ros2-gbp/velodyne-release.git + tag: release/jazzy/velodyne_msgs/2.5.1-1 + target_directory: ros-jazzy-velodyne-msgs/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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 + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-velodyne-pointcloud/bld_ament_cmake.bat b/recipes/ros-jazzy-velodyne-pointcloud/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-velodyne-pointcloud/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-velodyne-pointcloud/build_ament_cmake.sh b/recipes/ros-jazzy-velodyne-pointcloud/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-velodyne-pointcloud/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-velodyne-pointcloud/recipe.yaml b/recipes/ros-jazzy-velodyne-pointcloud/recipe.yaml new file mode 100644 index 00000000..a355f215 --- /dev/null +++ b/recipes/ros-jazzy-velodyne-pointcloud/recipe.yaml @@ -0,0 +1,130 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-velodyne-pointcloud + version: 2.5.1 +source: + git: https://github.com/ros2-gbp/velodyne-release.git + tag: release/jazzy/velodyne_pointcloud/2.5.1-1 + target_directory: ros-jazzy-velodyne-pointcloud/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - libboost-devel + - numpy + - pcl + - 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-angles + - ros-jazzy-diagnostic-updater + - ros-jazzy-geometry-msgs + - ros-jazzy-message-filters + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros-jazzy-velodyne-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - vtk-base + - yaml-cpp + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - eigen + - libboost-devel + - pcl + - python + - ros-jazzy-angles + - ros-jazzy-diagnostic-updater + - ros-jazzy-geometry-msgs + - ros-jazzy-message-filters + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-ros + - ros-jazzy-velodyne-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - vtk-base + - yaml-cpp + - 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-velodyne/bld_ament_cmake.bat b/recipes/ros-jazzy-velodyne/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-velodyne/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-velodyne/build_ament_cmake.sh b/recipes/ros-jazzy-velodyne/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-velodyne/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-velodyne/recipe.yaml b/recipes/ros-jazzy-velodyne/recipe.yaml new file mode 100644 index 00000000..3333960e --- /dev/null +++ b/recipes/ros-jazzy-velodyne/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-velodyne + version: 2.5.1 +source: + git: https://github.com/ros2-gbp/velodyne-release.git + tag: release/jazzy/velodyne/2.5.1-1 + target_directory: ros-jazzy-velodyne/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros-jazzy-velodyne-driver + - ros-jazzy-velodyne-laserscan + - ros-jazzy-velodyne-msgs + - ros-jazzy-velodyne-pointcloud + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} 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..c63f256e --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros-jazzy-std-msgs + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-vision-opencv/bld_ament_cmake.bat b/recipes/ros-jazzy-vision-opencv/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-vision-opencv/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the 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-opencv/build_ament_cmake.sh b/recipes/ros-jazzy-vision-opencv/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-vision-opencv/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_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-opencv/recipe.yaml b/recipes/ros-jazzy-vision-opencv/recipe.yaml new file mode 100644 index 00000000..d1a7bd38 --- /dev/null +++ b/recipes/ros-jazzy-vision-opencv/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-vision-opencv + version: 4.1.0 +source: + git: https://github.com/ros2-gbp/vision_opencv-release.git + tag: release/jazzy/vision_opencv/4.1.0-1 + target_directory: ros-jazzy-vision-opencv/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - ros-jazzy-cv-bridge + - ros-jazzy-image-geometry + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..31b6a8f8 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* 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.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-warehouse-ros-sqlite/bld_ament_cmake.bat b/recipes/ros-jazzy-warehouse-ros-sqlite/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-warehouse-ros-sqlite/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-warehouse-ros-sqlite/build_ament_cmake.sh b/recipes/ros-jazzy-warehouse-ros-sqlite/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-warehouse-ros-sqlite/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-warehouse-ros-sqlite/recipe.yaml b/recipes/ros-jazzy-warehouse-ros-sqlite/recipe.yaml new file mode 100644 index 00000000..4b20e7b5 --- /dev/null +++ b/recipes/ros-jazzy-warehouse-ros-sqlite/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-warehouse-ros-sqlite + version: 1.0.5 +source: + git: https://github.com/ros2-gbp/warehouse_ros_sqlite-release.git + tag: release/jazzy/warehouse_ros_sqlite/1.0.5-1 + target_directory: ros-jazzy-warehouse-ros-sqlite/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-class-loader + - ros-jazzy-geometry-msgs + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-sqlite3-vendor + - ros-jazzy-warehouse-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - python + - ros-jazzy-class-loader + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-sqlite3-vendor + - ros-jazzy-warehouse-ros + - ros2-distro-mutex 0.7.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-warehouse-ros/bld_ament_cmake.bat b/recipes/ros-jazzy-warehouse-ros/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-warehouse-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-warehouse-ros/build_ament_cmake.sh b/recipes/ros-jazzy-warehouse-ros/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-warehouse-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-warehouse-ros/recipe.yaml b/recipes/ros-jazzy-warehouse-ros/recipe.yaml new file mode 100644 index 00000000..376f2f7c --- /dev/null +++ b/recipes/ros-jazzy-warehouse-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-warehouse-ros + version: 2.0.5 +source: + git: https://github.com/ros2-gbp/warehouse_ros-release.git + tag: release/jazzy/warehouse_ros/2.0.5-1 + target_directory: ros-jazzy-warehouse-ros/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-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 + - numpy + - openssl + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-lint-auto + - ros-jazzy-geometry-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* jazzy_* + run: + - libboost-devel + - libboost-python-devel + - openssl + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.7.* 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..6ee3eaca --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + run: + - python + - pyyaml + - ros-jazzy-ament-index-python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..bda55c27 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - yaml-cpp + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - yaml-cpp + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-zenoh-cpp-vendor/bld_ament_cmake.bat b/recipes/ros-jazzy-zenoh-cpp-vendor/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-zenoh-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-zenoh-cpp-vendor/build_ament_cmake.sh b/recipes/ros-jazzy-zenoh-cpp-vendor/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-zenoh-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-zenoh-cpp-vendor/patch/ros-jazzy-zenoh-cpp-vendor.patch b/recipes/ros-jazzy-zenoh-cpp-vendor/patch/ros-jazzy-zenoh-cpp-vendor.patch new file mode 100644 index 00000000..85d229c0 --- /dev/null +++ b/recipes/ros-jazzy-zenoh-cpp-vendor/patch/ros-jazzy-zenoh-cpp-vendor.patch @@ -0,0 +1,42 @@ +diff --git a/zenoh_cpp_vendor/CMakeLists.txt b/zenoh_cpp_vendor/CMakeLists.txt +index 2d3ae046..de971841 100644 +--- a/zenoh_cpp_vendor/CMakeLists.txt ++++ b/zenoh_cpp_vendor/CMakeLists.txt +@@ -10,35 +10,10 @@ endif() + find_package(ament_cmake REQUIRED) + find_package(ament_cmake_vendor_package REQUIRED) + +-# Disable default features and enable only the most useful ones. This reduces build time and footprint. +-# For a complete list of features see: https://github.com/eclipse-zenoh/zenoh/blob/main/zenoh/Cargo.toml +-# Note: We separate the two args needed for cargo with "$" and not ";" as the +-# latter is a list separater in cmake and hence the string will be split into two +-# when expanded. +-set(ZENOHC_CARGO_FLAGS "--no-default-features$--features=shared-memory zenoh/transport_compression zenoh/transport_tcp zenoh/transport_tls") +- +-ament_vendor(zenoh_c_vendor +- VCS_URL https://github.com/eclipse-zenoh/zenoh-c.git +- VCS_VERSION 57d5e4d31d9b38fef34d7bcad3d3e54869c4ce73 +- CMAKE_ARGS +- "-DZENOHC_CARGO_FLAGS=${ZENOHC_CARGO_FLAGS}" +- "-DZENOHC_BUILD_WITH_UNSTABLE_API=TRUE" +- "-DZENOHC_CUSTOM_TARGET=${ZENOHC_CUSTOM_TARGET}" +-) +- ++find_package(zenohc REQUIRED) + ament_export_dependencies(zenohc) + +-# Set VCS_VERSION to include latest changes from zenoh-c to benefit from : +-# - https://github.com/eclipse-zenoh/zenoh-cpp/pull/342 (Fix include what you use) +-ament_vendor(zenoh_cpp_vendor +- VCS_URL https://github.com/eclipse-zenoh/zenoh-cpp +- VCS_VERSION 964b64dc8b935a43147287199e7bb12da7b141e6 +- CMAKE_ARGS +- -DZENOHCXX_ZENOHC=OFF +-) +- +-externalproject_add_stepdependencies(zenoh_cpp_vendor configure zenoh_c_vendor) +- ++find_package(zenohcxx REQUIRED) + ament_export_dependencies(zenohcxx) + + ament_package() diff --git a/recipes/ros-jazzy-zenoh-cpp-vendor/recipe.yaml b/recipes/ros-jazzy-zenoh-cpp-vendor/recipe.yaml new file mode 100644 index 00000000..e877db57 --- /dev/null +++ b/recipes/ros-jazzy-zenoh-cpp-vendor/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-zenoh-cpp-vendor + version: 0.2.0 +source: + git: https://github.com/ros2-gbp/rmw_zenoh-release.git + tag: release/jazzy/zenoh_cpp_vendor/0.2.0-1 + target_directory: ros-jazzy-zenoh-cpp-vendor/src/work + patches: + - patch/ros-jazzy-zenoh-cpp-vendor.patch + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + 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: + - git + host: + - if: build_platform == target_platform + then: + - pkg-config + - libzenohc + - libzenohcxx + - 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.7.* jazzy_* + - rust + - if: build_platform == target_platform + then: + - git + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* jazzy_* + - 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..7b746fa1 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - 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.7.* jazzy_* + - zlib + run: + - python + - ros-jazzy-image-transport + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..af45b780 --- /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: 4 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - 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.7.* jazzy_* + - zstd + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.7.* 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..c3dcef77 --- /dev/null +++ b/recipes/ros2-distro-mutex/recipe.yaml @@ -0,0 +1,52 @@ +package: + name: ros2-distro-mutex + version: 0.7.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.3.* + + 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..471e0e0c --- /dev/null +++ b/vinca.yaml @@ -0,0 +1,100 @@ +ros_distro: jazzy + +# mapping for package keys +conda_index: + - robostack.yaml + - packages-ignore.yaml + +# Reminder for next full rebuild, the next build number should be 4 +build_number: 4 + +mutex_package: ros2-distro-mutex 0.7.* 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 + - pendulum_control + - rttest + - tlsf + - tlsf_cpp + +packages_remove_from_deps: + - cartographer + - pendulum_control + - rttest + - tlsf + - tlsf_cpp + +skip_existing: + # - output + - https://conda.anaconda.org/robostack-jazzy/ + +packages_select_by_deps: + - ament_cmake_core + - ament_cmake_catch2 + + - desktop + - ros_base + - ros_environment + - ros_workspace + - dev_tools + - diagnostics + - teleop + - robot + - perception + - navigation2 + - simulation + - desktop_full + + - moveit + - moveit-planners-chomp + - moveit-servo + - moveit-visual-tools + + - ros2_control + - ros2_controllers + - gz_ros2_control + - gz_ros2_control_demos + + - rviz_visual_tools + + - ur + - ur_simulation_gz + + - ros_gz + - slam_toolbox + - turtlebot3 + + - plotjuggler-ros + + - apriltag_ros + + - ackermann-msgs + - velodyne + - sbg_driver + - gtsam + + # requested in https://github.com/RoboStack/ros-humble/issues/249 + - twist_mux + + # requested in https://github.com/RoboStack/ros-humble/issues/252 + - rmw_zenoh_cpp + + - flex_sync + - gripper_controllers + + - ament_cmake_mypy + - rosbridge_suite + + + +patch_dir: patch +rosdistro_snapshot: rosdistro_snapshot.yaml diff --git a/vinca_ec4ef9dfb4.json b/vinca_ec4ef9dfb4.json new file mode 100644 index 00000000..b7121110 --- /dev/null +++ b/vinca_ec4ef9dfb4.json @@ -0,0 +1 @@ +{"packages":{},"packages.conda":{"ros-humble-octomap-1.9.8-h0dc7051_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"h0dc7051_2","build_number":2,"depends":["octomap 1.9.*"],"license":"BSD-3-Clause","platform":"osx","timestamp":1719166513413,"md5":"7d4875506c0b4178659f53aa3f065ad3","name":"ros-humble-octomap","requires":[],"size":1664,"version":"1.9.8","binstar":{"package_id":"6674a0848c7b2f8b2ca7ce6a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"424b597839c72cdeffcb1031d53003cb11b0df19af642a09de04b5eeb0ab4518"},"ros-humble-urdfdom-py-1.2.0-h0dc7051_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"h0dc7051_2","build_number":2,"depends":["urdfdom-py ==1.2.0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1719166513614,"md5":"1ac333a8f42e7c4720cff199a286aa44","name":"ros-humble-urdfdom-py","requires":[],"size":1659,"version":"1.2.0","binstar":{"package_id":"6674a08584d8e3c9b344de6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"78dec0c16443df771e417524595d9547bb7d4ce4f72ac9bb380986586920a297"},"ros-jazzy-ament-package-0.16.3-np126py312hb082980_0.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py312hb082980_0","build_number":0,"depends":["importlib-metadata","importlib_resources","python 3.12.* *_cpython","ros2-distro-mutex ==0.5 jazzy","setuptools","__osx >=10.14","libcxx >=17","python_abi 3.12.* *_cp312","ros2-distro-mutex >=0.5.0,<0.6.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1719140494613,"md5":"8d0335acc147b73c79a6c37f6d732630","name":"ros-jazzy-ament-package","requires":[],"size":41334,"version":"0.16.3","binstar":{"package_id":"6674a0880ec0a9de7a21416c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6c2e2b0450f05fa6c45c81a08a647d7e42fed792cd592e887b703b35ad571f3f"},"ros-jazzy-ament-package-0.16.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["importlib-metadata","importlib_resources","python","ros2-distro-mutex 0.6.* jazzy_*","setuptools","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735901806758,"md5":"6c44ba9b7ee7ed4310822474474cca77","name":"ros-jazzy-ament-package","requires":[],"size":43024,"version":"0.16.3","binstar":{"package_id":"6674a0880ec0a9de7a21416c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8773cf34d5266300f32cf3f2d37bdd5c804451cce19b2a11faaab37ddfc039c5"},"ros-jazzy-ament-package-0.16.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["importlib-metadata","importlib_resources","python","ros2-distro-mutex 0.6.* jazzy_*","setuptools","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736071761257,"md5":"ae59d39318c075054fe747ce7d436b5d","name":"ros-jazzy-ament-package","requires":[],"size":42994,"version":"0.16.3","binstar":{"package_id":"6674a0880ec0a9de7a21416c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c3cbb1d0dfd4738d64d04da3fba2a76a26bd81236756a8a0a4fb2cfecece6f41"},"ros2-distro-mutex-0.5.0-jazzy.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"jazzy","build_number":0,"constrains":["libboost 1.84.*","libboost-devel 1.84.*","pcl 1.14.1.*","gazebo 11.*","libpqxx 7.*"],"license":"BSD-3-Clause","platform":"osx","timestamp":1719166513147,"md5":"ffc5e0ebae3b5458d88a79e036d9e7e6","name":"ros2-distro-mutex","requires":[],"depends":[],"size":2163,"version":"0.5.0","binstar":{"package_id":"6674a08a15fc1c937921416b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2c6d5f8eaa9735a86b8d8f0377b6a39027818668ea2c4cb352d1d595feefae4a"},"ros2-distro-mutex-0.6.0-jazzy_0.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"jazzy_0","build_number":0,"constrains":["libboost 1.86.*","libboost-devel 1.86.*","pcl 1.14.1.*","gazebo 11.*","libprotobuf 5.28.2.*"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735932355851,"md5":"25d4d2a8548c777aae6ff988d9fe0289","name":"ros2-distro-mutex","requires":[],"depends":[],"size":2401,"version":"0.6.0","binstar":{"package_id":"6674a08a15fc1c937921416b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bdbd0dd830a82b57170040abb9882f43f11337ba7100ede7e9d027bed91b1c25"},"ros-jazzy-ament-cmake-core-2.5.0-np126py312hb082980_0.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py312hb082980_0","build_number":0,"depends":["catkin_pkg","cmake","python 3.12.* *_cpython","ros-jazzy-ament-package","ros2-distro-mutex ==0.5 jazzy","__osx >=10.14","libcxx >=17","__osx >=10.14","python_abi 3.12.* *_cp312","ros2-distro-mutex >=0.5.0,<0.6.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1719140571742,"md5":"da8b777e2718a2a60cba39d896275057","name":"ros-jazzy-ament-cmake-core","requires":[],"size":42097,"version":"2.5.0","binstar":{"package_id":"6674a0d7b557d1c73d6af053","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ddc54619a255a6cd642628f5131037cd798b3f8468bb2c84af441d0e81383520"},"ros-jazzy-ament-cmake-core-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["catkin_pkg","cmake","python","ros-jazzy-ament-package","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735901853148,"md5":"a483e81eac497e7318a226e4ec783040","name":"ros-jazzy-ament-cmake-core","requires":[],"size":43799,"version":"2.5.3","binstar":{"package_id":"6674a0d7b557d1c73d6af053","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7ee167f814618213f456b0cec19e089063eae44b8d9e38b112944bc9ec8cf262"},"ros-jazzy-ament-cmake-core-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["catkin_pkg","cmake","python","ros-jazzy-ament-package","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736071786163,"md5":"7e6d0b9ad8c912ff3919454de130ef91","name":"ros-jazzy-ament-cmake-core","requires":[],"size":43816,"version":"2.5.3","binstar":{"package_id":"6674a0d7b557d1c73d6af053","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"857d262b24ea287d26edcdeab16c5f1aed2ab7a6d624f57c542b598b064cc0c6"},"ros-jazzy-ros-environment-4.2.1-np126py312hb082980_0.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py312hb082980_0","build_number":0,"depends":["python 3.12.* *_cpython","ros2-distro-mutex ==0.5 jazzy","__osx >=10.14","libcxx >=17","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.12.* *_cp312","ros2-distro-mutex >=0.5.0,<0.6.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1719140642009,"md5":"4b65331e682fc07d8a8c11ceb50f6133","name":"ros-jazzy-ros-environment","requires":[],"size":18607,"version":"4.2.1","binstar":{"package_id":"6674a0d952b92cb4069dbd24","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"99969c6ded2b8f4600b72b577a4684fbce6623a551488dd1cf5226a169a7dba6"},"ros-jazzy-ros-environment-4.2.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735901909049,"md5":"d8f17bfb07c68032c0c657b88633ac0a","name":"ros-jazzy-ros-environment","requires":[],"size":19837,"version":"4.2.1","binstar":{"package_id":"6674a0d952b92cb4069dbd24","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b6303e3c748ee5e51035cb7bfce4a78cdda8a526b35242d5e940ae1e7f9344c8"},"ros-jazzy-ros-environment-4.2.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736071812786,"md5":"bee8b4dc2e8796818a05023577611201","name":"ros-jazzy-ros-environment","requires":[],"size":19821,"version":"4.2.1","binstar":{"package_id":"6674a0d952b92cb4069dbd24","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4c2305e4bc9f0a306e3ab470cbc680329b42357ad578f9b0a33d2d9be35f1dc1"},"ros-jazzy-ros-workspace-1.0.3-np126py312hb082980_0.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py312hb082980_0","build_number":0,"depends":["python 3.12.* *_cpython","ros2-distro-mutex ==0.5 jazzy","__osx >=10.14","libcxx >=17","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.12.* *_cp312","ros2-distro-mutex >=0.5.0,<0.6.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1719140610312,"md5":"68b2431ea483d12e75c6bc246390b197","name":"ros-jazzy-ros-workspace","requires":[],"size":32877,"version":"1.0.3","binstar":{"package_id":"6674a0dbdd9abcfdfb9dbd24","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ec0fd5379c0638572a817d9d3e1f6d7abe4f46e264806075e4fff62e8b531a0e"},"ros-jazzy-ros-workspace-1.0.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735901881854,"md5":"8137931c9b3d1fc7889e1fc7371f72d8","name":"ros-jazzy-ros-workspace","requires":[],"size":34521,"version":"1.0.3","binstar":{"package_id":"6674a0dbdd9abcfdfb9dbd24","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2e6b3366a82ee426bd97981892a72bcff595f8260b89afbe5a7ffbaa3c1b661f"},"ros-jazzy-ros-workspace-1.0.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736071798976,"md5":"65defe337f0a254fdc9bc2b3e17306a5","name":"ros-jazzy-ros-workspace","requires":[],"size":34520,"version":"1.0.3","binstar":{"package_id":"6674a0dbdd9abcfdfb9dbd24","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"df4a4e2d535cc5c0d2c8d1cf8df38e6386fcd378264b47cde592a9627a673ca6"},"ros-jazzy-ros-workspace-1.0.3-np126py311hd69bdec_3.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_3","build_number":3,"depends":["python","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1737495906354,"md5":"7a6fe88df939d3278073d593dfb1d4b2","name":"ros-jazzy-ros-workspace","requires":[],"size":35326,"version":"1.0.3","binstar":{"package_id":"6674a0dbdd9abcfdfb9dbd24","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b862ec62872b20735db48f4c753110f70b25a12f1479825ef02eb3fe9a7d7bce"},"ros-jazzy-iceoryx-hoofs-2.0.6-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902666169,"md5":"44b1c45050e08a479fb6e3723d4d02a4","name":"ros-jazzy-iceoryx-hoofs","requires":[],"size":261996,"version":"2.0.6","binstar":{"package_id":"6674a1224ef4ab0e17883dd8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f51215146c67caddd8cf57a939152649bd84292f3531b197f182434a61c516a3"},"ros-jazzy-iceoryx-hoofs-2.0.6-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736071852823,"md5":"9671d9b2573611b9420b8e10cda2d195","name":"ros-jazzy-iceoryx-hoofs","requires":[],"size":262013,"version":"2.0.6","binstar":{"package_id":"6674a1224ef4ab0e17883dd8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"65efba9e3cdf2eb4748330598bcfa78de6ddf021c9b98571c89bbb5dbd2e470f"},"ros-jazzy-urdfdom-headers-1.1.2-h0dc7051_0.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"h0dc7051_0","build_number":0,"depends":["urdfdom_headers ==1.1.2","python 3.11.* *_cpython"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735932356535,"md5":"f98d3e30b5bb77f47bb4fe12aa571355","name":"ros-jazzy-urdfdom-headers","requires":[],"size":1859,"version":"1.1.2","binstar":{"package_id":"6674a123ff4752325d57944d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5761304ec7d946e3b258eef668a8b1e32341bf2ee7d87a1529d5789a51ff5a20"},"ros-jazzy-ament-cmake-include-directories-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902528231,"md5":"feb61cbe2a658fd005eca1a7ecf9a10b","name":"ros-jazzy-ament-cmake-include-directories","requires":[],"size":20372,"version":"2.5.3","binstar":{"package_id":"6674a1307aab843f03579449","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3ab027a54f17a8e699b33dca66854e35841427b744432d1fd83951c9730147d4"},"ros-jazzy-ament-cmake-include-directories-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072430255,"md5":"b0964c4f9f96ded3efd30bc3cb3988be","name":"ros-jazzy-ament-cmake-include-directories","requires":[],"size":20390,"version":"2.5.3","binstar":{"package_id":"6674a1307aab843f03579449","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a839b1453309fcd5f8f82967cd7d752d013970bcb6856df1bf8fd21435c27c46"},"ros-jazzy-ament-cmake-export-definitions-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903041124,"md5":"67bbb63dad2c410cc2dfd062d294a09b","name":"ros-jazzy-ament-cmake-export-definitions","requires":[],"size":20510,"version":"2.5.3","binstar":{"package_id":"6674a13266b718689c44de6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4a86f0135388a335404033aee6c37e9f1e881b153dace95508140548403fb851"},"ros-jazzy-ament-cmake-export-definitions-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072417424,"md5":"9b03f85c0b5e979426330b0449945674","name":"ros-jazzy-ament-cmake-export-definitions","requires":[],"size":20503,"version":"2.5.3","binstar":{"package_id":"6674a13266b718689c44de6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3a0aa3707050197a07c1f5dd9f4a8613b7d6663a8dabb4082a41a3fe7e366d5e"},"ros-jazzy-ament-cmake-libraries-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902516765,"md5":"3dec875c965f02df3ec48d48abff1163","name":"ros-jazzy-ament-cmake-libraries","requires":[],"size":20059,"version":"2.5.3","binstar":{"package_id":"6674a133bf586e21d26af053","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"11857b4b2abe0ea82300d6dc8fa170909e5e9d817442df856147fb9f519956bd"},"ros-jazzy-ament-cmake-libraries-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072419799,"md5":"f869415c6e1d9956b924ffe12752fb6a","name":"ros-jazzy-ament-cmake-libraries","requires":[],"size":20089,"version":"2.5.3","binstar":{"package_id":"6674a133bf586e21d26af053","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f9297390e6e2a01058a91a6e12e37816fb3f170dae7ba446f49a84db0c6e77ca"},"ros-jazzy-ament-cmake-export-include-directories-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903021397,"md5":"28b3c9a8a81fd3bdd85ed40a7faadd2c","name":"ros-jazzy-ament-cmake-export-include-directories","requires":[],"size":20920,"version":"2.5.3","binstar":{"package_id":"6674a1348eba59d71d44de6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"46e8972e890d69b0da64b31d4217eb38f4150591c118543ac7d1145e109cd390"},"ros-jazzy-ament-cmake-export-include-directories-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072407330,"md5":"949025d3c05400e375f4322eaab66189","name":"ros-jazzy-ament-cmake-export-include-directories","requires":[],"size":20906,"version":"2.5.3","binstar":{"package_id":"6674a1348eba59d71d44de6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c1d587c67c3f872ff981acfd9800b0149d35f916b4a55d42fdbacddcff34b072"},"ros-jazzy-ament-cmake-python-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902482637,"md5":"28241f38a63d0fd69b722cb75d0571ae","name":"ros-jazzy-ament-cmake-python","requires":[],"size":22643,"version":"2.5.3","binstar":{"package_id":"6674a134fda12eef0045c4f3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0f6e85bc27a48921e493ff3ea568727fc701abdea9272c9e54978ac71904e69c"},"ros-jazzy-ament-cmake-python-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072394847,"md5":"40bd2a20948321fed7146ba39c2fa031","name":"ros-jazzy-ament-cmake-python","requires":[],"size":22647,"version":"2.5.3","binstar":{"package_id":"6674a134fda12eef0045c4f3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bf12f87a070e737fd380b53c6fafef30a40c3d54ade3abd1e605e7a08174ea3d"},"ros-jazzy-ament-cmake-export-libraries-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902940799,"md5":"e3cbf62fa17af1ff98dd2a6045ce1ac5","name":"ros-jazzy-ament-cmake-export-libraries","requires":[],"size":22456,"version":"2.5.3","binstar":{"package_id":"6674a135751ba5b24b21416e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"eff505c9bbf987d74dc677d7f38d48d110e42e74277075910f97f1f71a42eb8c"},"ros-jazzy-ament-cmake-export-libraries-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072361545,"md5":"0faf140b7b9075f4fa4374412b86265e","name":"ros-jazzy-ament-cmake-export-libraries","requires":[],"size":22466,"version":"2.5.3","binstar":{"package_id":"6674a135751ba5b24b21416e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"890e56cb604131a8249cdcdbfe4fb513dc0ef5d563aa7851454ca71f8ae58da3"},"ros-jazzy-ament-lint-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902435772,"md5":"8dccf86a468c47b720a02a0df11cef39","name":"ros-jazzy-ament-lint","requires":[],"size":16848,"version":"0.17.1","binstar":{"package_id":"6674a1357f5cc3d27f45c4f6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a9743b9c554c28656a788c1ebf13d69244ab7f79ef5b56ffaab60c1c23f3872d"},"ros-jazzy-ament-lint-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072362001,"md5":"99186173be486ed36d76f799af1609af","name":"ros-jazzy-ament-lint","requires":[],"size":16854,"version":"0.17.1","binstar":{"package_id":"6674a1357f5cc3d27f45c4f6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"88322314b7df4ffd691daf21759d81665165dbd6687df84d56ffb646ccb9624e"},"ros-jazzy-gtest-vendor-1.14.9000-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902502815,"md5":"49f2a544dc925871c73e59c2f8156f94","name":"ros-jazzy-gtest-vendor","requires":[],"size":207986,"version":"1.14.9000","binstar":{"package_id":"6674a136b5589307ae1922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"671628ba00422d673cc2d39bca8b9b23f0b833a81e0e244f5d7c0d07d0e2b473"},"ros-jazzy-gtest-vendor-1.14.9000-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072409488,"md5":"0cc776c31c99d00300c2bec0ffe3866c","name":"ros-jazzy-gtest-vendor","requires":[],"size":207984,"version":"1.14.9000","binstar":{"package_id":"6674a136b5589307ae1922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e8203be50dac6e6dceb4cff828c7645f5eca764ebaecaaad5188f43f7d4099e4"},"ros-jazzy-ament-cmake-export-link-flags-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903002364,"md5":"d73fbfe9e4418768c0dade332b288ab4","name":"ros-jazzy-ament-cmake-export-link-flags","requires":[],"size":20452,"version":"2.5.3","binstar":{"package_id":"6674a137a34cc3f166a7ce6b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8d2add4441cf677a777549e4010c7db2251f95b741b74d9f6d73120e371b1ad5"},"ros-jazzy-ament-cmake-export-link-flags-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072397138,"md5":"95b7ac3dcf822a878e3d8afc594fab84","name":"ros-jazzy-ament-cmake-export-link-flags","requires":[],"size":20478,"version":"2.5.3","binstar":{"package_id":"6674a137a34cc3f166a7ce6b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"59e4ba9a896cae6f881e53b21069cd0071b242fae06a0f840f792e36d2214ead"},"ros-jazzy-ament-cmake-version-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902983053,"md5":"b6c459d243c8c3cea2f0cd60bc37fd41","name":"ros-jazzy-ament-cmake-version","requires":[],"size":20247,"version":"2.5.3","binstar":{"package_id":"6674a13adbc9a5ddb5579449","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"971106bd30500fc24f54799348e7f56e6568eae7d6adf824ee6f87ff143dfaf9"},"ros-jazzy-ament-cmake-version-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072387182,"md5":"ec78dbf3c88e4f588b66ff9f9bd6ca57","name":"ros-jazzy-ament-cmake-version","requires":[],"size":20233,"version":"2.5.3","binstar":{"package_id":"6674a13adbc9a5ddb5579449","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3a5828fa68d4138e725c1416fef49d5809c1ac693c84fc92708d0028c9497f35"},"ros-jazzy-ament-pycodestyle-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["pycodestyle","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902278860,"md5":"72fb1a4c88e06b551aaf15c232c29457","name":"ros-jazzy-ament-pycodestyle","requires":[],"size":22237,"version":"0.17.1","binstar":{"package_id":"6674a143f1e91f8ddc6af055","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cf5d2dabeefed060ec2d62f66f613a1b8e1bb6478e33ed1196829d82d10bdb76"},"ros-jazzy-ament-pycodestyle-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["pycodestyle","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072207257,"md5":"31c9283e4464ce5b99dbb4e0299d86bb","name":"ros-jazzy-ament-pycodestyle","requires":[],"size":22258,"version":"0.17.1","binstar":{"package_id":"6674a143f1e91f8ddc6af055","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"27f64a08189f15a7fa33a71420310d67494654b25927819c711fc0d38a12a10d"},"ros-jazzy-google-benchmark-vendor-0.5.0-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["benchmark","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902323382,"md5":"b5dd3658c5781f39fcb34c52dfd098a6","name":"ros-jazzy-google-benchmark-vendor","requires":[],"size":15359,"version":"0.5.0","binstar":{"package_id":"6674a145d25c322a2e1922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5af1d1224afc8ef10f614417474c0691a59b724532b9c4e0556b47f2b0f4db56"},"ros-jazzy-google-benchmark-vendor-0.5.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["benchmark","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072261003,"md5":"15e3feafab38c36c84c6d2dbedba5e0a","name":"ros-jazzy-google-benchmark-vendor","requires":[],"size":15377,"version":"0.5.0","binstar":{"package_id":"6674a145d25c322a2e1922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"add994dfc8fa185768d27d273efff88cb76bb73fefb044de4c27119d7b30b6ac"},"ros-jazzy-osrf-pycommon-2.1.5-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["importlib-metadata","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902310489,"md5":"3673f1c952c65a9c5336f0073f278c00","name":"ros-jazzy-osrf-pycommon","requires":[],"size":65166,"version":"2.1.5","binstar":{"package_id":"6674a14ad8010e9cee1922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2209af33240e4232880b08b1f2fb569eaceea6f811bcf07abd2d71e7d41db08e"},"ros-jazzy-osrf-pycommon-2.1.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["importlib-metadata","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072245676,"md5":"202d7940773391992fc5152deaa44e06","name":"ros-jazzy-osrf-pycommon","requires":[],"size":65214,"version":"2.1.5","binstar":{"package_id":"6674a14ad8010e9cee1922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1fbed8419d4e79c3ae59bd2178ad11bbf0bed8f8f03ea05c6b4e44bf4f9a0b5d"},"ros-jazzy-osrf-testing-tools-cpp-2.0.0-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902337927,"md5":"b37d1e782bd21c982b6e326c8e7e0a36","name":"ros-jazzy-osrf-testing-tools-cpp","requires":[],"size":5122998,"version":"2.0.0","binstar":{"package_id":"6674a14c1aea3d65a045c4f5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3d7b48e77b205296b80fb205c24bc756697b02838e4b17b2d3e2af44b9362f36"},"ros-jazzy-osrf-testing-tools-cpp-2.0.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072275472,"md5":"88a00ea52e2fc779bb2a6bba9934c883","name":"ros-jazzy-osrf-testing-tools-cpp","requires":[],"size":5123013,"version":"2.0.0","binstar":{"package_id":"6674a14c1aea3d65a045c4f5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9eddaa7edbc1fc08214de2ee7f816f1992268658333444eefbaa71b45f00282a"},"ros-jazzy-test-interface-files-0.11.0-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902377034,"md5":"ae163fc8acc2ff704f801bb436738454","name":"ros-jazzy-test-interface-files","requires":[],"size":22337,"version":"0.11.0","binstar":{"package_id":"6674a14e3ca8a6ae9e883dd8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9aa8592dd47ccda698a4b70b9a20d529d6db5a806d125fc87276f56ac5d6f569"},"ros-jazzy-test-interface-files-0.11.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072315294,"md5":"fc91b95a6ae35e88ee4db0d38dd63cab","name":"ros-jazzy-test-interface-files","requires":[],"size":22362,"version":"0.11.0","binstar":{"package_id":"6674a14e3ca8a6ae9e883dd8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e7244981401597d96ab17525f6e17cf715b65a1d699a4051a8ce4dcee54973b5"},"ros-jazzy-ament-cmake-export-dependencies-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-libraries","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903548269,"md5":"089f524ee007a7cd5c07f0986a102800","name":"ros-jazzy-ament-cmake-export-dependencies","requires":[],"size":21434,"version":"2.5.3","binstar":{"package_id":"6674a1a7d6a022a9b921416b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d8218084c5d03318cb8acae395e46bec01c5e11757d22ad38b9505306cf8d5ab"},"ros-jazzy-ament-cmake-export-dependencies-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-libraries","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072522689,"md5":"eec397e40392148218edf29bde6f3547","name":"ros-jazzy-ament-cmake-export-dependencies","requires":[],"size":21428,"version":"2.5.3","binstar":{"package_id":"6674a1a7d6a022a9b921416b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"19667b24e4d6836a775625844676785b11558ce107d2f99d6a2423e5ecc7fe80"},"ros-jazzy-ament-cmake-export-targets-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-export-libraries","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903575767,"md5":"39a9ce509d1e32888f274dbe308f0d37","name":"ros-jazzy-ament-cmake-export-targets","requires":[],"size":21268,"version":"2.5.3","binstar":{"package_id":"6674a1a8c42c2ed11157944c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"dc58a3092faed3dd46f41438b97c5950c7a2e52e4535da3911c799049cbc9ed9"},"ros-jazzy-ament-cmake-export-targets-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-export-libraries","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072558307,"md5":"55e631d92fd56553949954c296e39b7a","name":"ros-jazzy-ament-cmake-export-targets","requires":[],"size":21270,"version":"2.5.3","binstar":{"package_id":"6674a1a8c42c2ed11157944c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"420eff5231769034fb2add85f570fd57813be02612e49087a8b78f906dc64c55"},"ros-jazzy-ament-cmake-target-dependencies-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903561380,"md5":"05342bd1f27a4c3a5a279cd427ea6888","name":"ros-jazzy-ament-cmake-target-dependencies","requires":[],"size":22084,"version":"2.5.3","binstar":{"package_id":"6674a1a9b557d1c73d6af055","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"29938bc343ae249243c7616ffaa21f692d58501d89fac3b54eb9b18b6784f44f"},"ros-jazzy-ament-cmake-target-dependencies-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072540407,"md5":"76bed72caad266a0e9a2ff552dc95943","name":"ros-jazzy-ament-cmake-target-dependencies","requires":[],"size":22055,"version":"2.5.3","binstar":{"package_id":"6674a1a9b557d1c73d6af055","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6a33db28ca401ff3596a09333946a2b93c8dd1f40356b23ede7a7a9eb88859dd"},"ros-jazzy-ament-cmake-test-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903530347,"md5":"b3774e68d6ab43b1556da7022023fc49","name":"ros-jazzy-ament-cmake-test","requires":[],"size":35292,"version":"2.5.3","binstar":{"package_id":"6674a1aa83e518de36a7ce6c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"374c7e088f76ac820c620822d91212362ab7e78b379d455414c00421c78c4368"},"ros-jazzy-ament-cmake-test-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072503378,"md5":"46c1b9809d9c7d52f10286fbb2a7e8d5","name":"ros-jazzy-ament-cmake-test","requires":[],"size":35308,"version":"2.5.3","binstar":{"package_id":"6674a1aa83e518de36a7ce6c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e65aeba2c67fc8e6bc932e959c7db60a2bdf021a7c8dada868f1763aad919e1e"},"ros-jazzy-ament-flake8-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903496240,"md5":"b0184b485570e5af9a916f485031eda0","name":"ros-jazzy-ament-flake8","requires":[],"size":28320,"version":"0.17.1","binstar":{"package_id":"6674a1ac189b62b6cff4ab97","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"272de76b07313d9f4d9b90eb7fc1c97133e3ac044e5ad37cea32edb3c2968a6c"},"ros-jazzy-ament-flake8-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072467218,"md5":"4d0cb4a71ea6863d23c4ec32992080d3","name":"ros-jazzy-ament-flake8","requires":[],"size":28310,"version":"0.17.1","binstar":{"package_id":"6674a1ac189b62b6cff4ab97","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"931d4c6923348b1e676ca35e97f949fd6f959537dfcf00f3c83cfcab4f5dfc40"},"ros-jazzy-ament-cmake-export-interfaces-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-export-libraries","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903174219,"md5":"b1fa1b2cdff031d20261c4739db7285e","name":"ros-jazzy-ament-cmake-export-interfaces","requires":[],"size":21127,"version":"2.5.3","binstar":{"package_id":"6674a1c372cb57ea62f4ab97","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1dca14364e06a56059226a1ffd108920c4c468fede6fa826a32c823c018c51cb"},"ros-jazzy-ament-cmake-export-interfaces-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-export-libraries","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072466046,"md5":"add2b44d6ec8cf4b7957bfc45975a57f","name":"ros-jazzy-ament-cmake-export-interfaces","requires":[],"size":21119,"version":"2.5.3","binstar":{"package_id":"6674a1c372cb57ea62f4ab97","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"321d2bc7ea220825c2bc2c9e0baf873d318e27f5129afc5ed50cc5ba47426210"},"ros-jazzy-gmock-vendor-1.14.9000-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-gtest-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903221160,"md5":"f9e4daeed29b88df477fe88c83b98029","name":"ros-jazzy-gmock-vendor","requires":[],"size":121641,"version":"1.14.9000","binstar":{"package_id":"6674a1c589a9c37693883dd8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b71346efd25af72737ac471d08a073e2bf26025dffdf64dec92fe81c33aa1523"},"ros-jazzy-gmock-vendor-1.14.9000-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-gtest-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072498135,"md5":"3e0e55d5fda358453b315f48cf49509a","name":"ros-jazzy-gmock-vendor","requires":[],"size":121697,"version":"1.14.9000","binstar":{"package_id":"6674a1c589a9c37693883dd8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0971cd840563e7ad6374be6fc11175f56c4278a19c44d564427870191210efa2"},"ros-jazzy-iceoryx-posh-2.0.6-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-iceoryx-hoofs","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903236777,"md5":"6dc583649affb9dc8bf0bba2ca2cca37","name":"ros-jazzy-iceoryx-posh","requires":[],"size":455218,"version":"2.0.6","binstar":{"package_id":"6674a1c772ad0f0ae5a7ce6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c61dad61fad34fdebce8ce88f5cee61e55e9f15c69dca5b75ce7466bfde0f0c3"},"ros-jazzy-iceoryx-posh-2.0.6-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-iceoryx-hoofs","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072510410,"md5":"c2a0a4b6942dee016ecab9a617edd5dd","name":"ros-jazzy-iceoryx-posh","requires":[],"size":455243,"version":"2.0.6","binstar":{"package_id":"6674a1c772ad0f0ae5a7ce6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8fe61a2bdbd6c356f03095f2b5d1f66ccdc2aaf5c4e1b75d5bc441840cbb0770"},"ros-jazzy-ament-cmake-google-benchmark-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-google-benchmark-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904016736,"md5":"a45267f8d1bfe52e265fa6853fc3bb79","name":"ros-jazzy-ament-cmake-google-benchmark","requires":[],"size":30309,"version":"2.5.3","binstar":{"package_id":"6674a213aba19321c6f4ab96","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b9f5a66b7f30b8f787cdba6d12ff6788a1d296576350804234988c4ffa93c9d2"},"ros-jazzy-ament-cmake-google-benchmark-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-google-benchmark-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072699429,"md5":"3b88d6af4dcbe7ba76c1cfa6d3213f27","name":"ros-jazzy-ament-cmake-google-benchmark","requires":[],"size":30316,"version":"2.5.3","binstar":{"package_id":"6674a213aba19321c6f4ab96","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fe96b63a2008e80532eec56a363c22ea4dd45ac4da7b185615d7e7af399593b1"},"ros-jazzy-ament-cmake-pytest-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["pytest","python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-test","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903983023,"md5":"b86395878f6577f8f69539639b22b2e2","name":"ros-jazzy-ament-cmake-pytest","requires":[],"size":23123,"version":"2.5.3","binstar":{"package_id":"6674a21417bbcfe6d5579449","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9678f58d9cc9d1a062d35a43048c02359b5c763cf7abe972ab1c2a6ae8739155"},"ros-jazzy-ament-cmake-pytest-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["pytest","python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-test","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072670624,"md5":"ff1362422f0223ea236323e8db7e75fe","name":"ros-jazzy-ament-cmake-pytest","requires":[],"size":23142,"version":"2.5.3","binstar":{"package_id":"6674a21417bbcfe6d5579449","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f294bbb2c392fa71477debd51244d46cbaba3926c0e33e5490382703a4f57ad5"},"ros-jazzy-iceoryx-binding-c-2.0.6-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904029141,"md5":"1fab43dec94e4d8dae9701f5bb295b8c","name":"ros-jazzy-iceoryx-binding-c","requires":[],"size":80674,"version":"2.0.6","binstar":{"package_id":"6674a21572cb57ea62f4ab99","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"76e7129b023f2f4f4ccb9685848df4d2a322498bf4b42238ccce9a87c4cf3cca"},"ros-jazzy-iceoryx-binding-c-2.0.6-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072711763,"md5":"017336dbe21cf807dcd78939960ea573","name":"ros-jazzy-iceoryx-binding-c","requires":[],"size":80692,"version":"2.0.6","binstar":{"package_id":"6674a21572cb57ea62f4ab99","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0d367357f4881dbad3a74447201e79e25df2dfc998bcdeaf7ecee026a7214362"},"ros-jazzy-ament-cmake-gtest-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["gtest","python","ros-jazzy-ament-cmake-test","ros-jazzy-gtest-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","gtest >=1.15.2,<1.15.3.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903968063,"md5":"d8a7fb57764be89d03ded4c3f1baf737","name":"ros-jazzy-ament-cmake-gtest","requires":[],"size":23103,"version":"2.5.3","binstar":{"package_id":"6674a21d86c5f0ddff44de71","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2f5b5608d345f63243271c79ca2541caf3562c38c71177462c29a1d834ef5b13"},"ros-jazzy-ament-cmake-gtest-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["gtest","python","ros-jazzy-ament-cmake-test","ros-jazzy-gtest-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","gtest >=1.15.2,<1.15.3.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072701299,"md5":"b08670f8e7275abb2c920cc9ccfb53f5","name":"ros-jazzy-ament-cmake-gtest","requires":[],"size":23124,"version":"2.5.3","binstar":{"package_id":"6674a21d86c5f0ddff44de71","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2731d19a55035054f8bae51f9eef7a87bce9d46d232c89f45e83743d172643a4"},"ros-jazzy-ament-cmake-vendor-package-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["git","python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-export-dependencies","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vcstool","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903985995,"md5":"6f5c242baaa5e71ec61d636cb2991c52","name":"ros-jazzy-ament-cmake-vendor-package","requires":[],"size":26418,"version":"2.5.3","binstar":{"package_id":"6674a21ede26c9d519883dd8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fba9249b5fbd4259691c318a6c92efff6075ed1e00f6543000de2a226775aad9"},"ros-jazzy-ament-cmake-vendor-package-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["git","python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-export-dependencies","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vcstool","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072717221,"md5":"2aa43c03665ede6eedb33a94f1500dd1","name":"ros-jazzy-ament-cmake-vendor-package","requires":[],"size":26436,"version":"2.5.3","binstar":{"package_id":"6674a21ede26c9d519883dd8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7bf34d15799e35aa363d103e7ad723e338b3d0663e4aecc35e38532c5b1ecba1"},"ros-jazzy-ament-lint-auto-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-test","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904017253,"md5":"33001569be29f95c1bbd838203756cdd","name":"ros-jazzy-ament-lint-auto","requires":[],"size":20465,"version":"0.17.1","binstar":{"package_id":"6674a21f52b92cb4069dbd2a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7494f90c78062000a0649710cf8502cadcd8b6794defe3d10328af48b663a5da"},"ros-jazzy-ament-lint-auto-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-test","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072741296,"md5":"6771d30812159d5c7ce90f670493ee3d","name":"ros-jazzy-ament-lint-auto","requires":[],"size":20480,"version":"0.17.1","binstar":{"package_id":"6674a21f52b92cb4069dbd2a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1020304160f6ab299eb540af6a77d45319769aa8bbf8162ae8de3bb64b1fa6b2"},"ros-jazzy-ament-mypy-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["mypy","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904002949,"md5":"a4cc2fb04f4cab659d77f6cd45a06684","name":"ros-jazzy-ament-mypy","requires":[],"size":26592,"version":"0.17.1","binstar":{"package_id":"6674a2204161a5e24dc62372","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"24f146a8f61893bdc93a1db500b02ecace34802ce647062942bdfcf6bc15f840"},"ros-jazzy-ament-mypy-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["mypy","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072729041,"md5":"f633443ce205fb8fffaa8736955d4ce6","name":"ros-jazzy-ament-mypy","requires":[],"size":26576,"version":"0.17.1","binstar":{"package_id":"6674a2204161a5e24dc62372","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8d2257e8d3c99f274c3ceb792a71861505ad736b44c6dcc4c8c2bdff231fe563"},"ros-jazzy-ament-pep257-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["pydocstyle","python","ros-jazzy-ament-lint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735903932101,"md5":"1fe7237a586c898c7a8612416bd52826","name":"ros-jazzy-ament-pep257","requires":[],"size":26593,"version":"0.17.1","binstar":{"package_id":"6674a221de26c9d519883dda","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"31b421819703869c3ed2a3d2720a9928fe351d0c8e302ffbd2d67d2120479b80"},"ros-jazzy-ament-pep257-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["pydocstyle","python","ros-jazzy-ament-lint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072670017,"md5":"84e644b8f59dee45ce36dc117c1e0206","name":"ros-jazzy-ament-pep257","requires":[],"size":26592,"version":"0.17.1","binstar":{"package_id":"6674a221de26c9d519883dda","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5c7969429725dc39612b734007afb5304f5900947a837d9c0cb68c8fe44128e7"},"ros-jazzy-ament-cmake-gen-version-h-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904256602,"md5":"1ea6647951edf90db04d06328f06b074","name":"ros-jazzy-ament-cmake-gen-version-h","requires":[],"size":23234,"version":"2.5.3","binstar":{"package_id":"6674a28d7eb3630506c62372","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"47670af27cfeb804e6acedb453f8a9d67c62af1ea38ccbf716f04f5c6302f3b3"},"ros-jazzy-ament-cmake-gen-version-h-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072813506,"md5":"fdf80a6375de3e3446a26f2f43225104","name":"ros-jazzy-ament-cmake-gen-version-h","requires":[],"size":23246,"version":"2.5.3","binstar":{"package_id":"6674a28d7eb3630506c62372","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"48046416a8529d1e8087b8c6ab0dceb30317c68f2c4296411cd9468e79b8c45b"},"ros-jazzy-ament-cmake-gmock-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904279616,"md5":"1884add5942494d20b17c1fa88b396b7","name":"ros-jazzy-ament-cmake-gmock","requires":[],"size":23374,"version":"2.5.3","binstar":{"package_id":"6674a290c650598af657944a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"29620c84fa56ac741d6b631e6ad4a7d6c53d1be3eff91bbf8b0415c3a76634b1"},"ros-jazzy-ament-cmake-gmock-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072833109,"md5":"774c40db084128a7e695ff73970274d2","name":"ros-jazzy-ament-cmake-gmock","requires":[],"size":23372,"version":"2.5.3","binstar":{"package_id":"6674a290c650598af657944a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"201dd1c97435e69b3acd52afe0270bd8ccb47c376317c8c1894fbc54fb588ee8"},"ros-jazzy-ament-copyright-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["importlib-metadata","python","ros-jazzy-ament-lint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904213905,"md5":"b91e214f41e393566f7436da00feab9a","name":"ros-jazzy-ament-copyright","requires":[],"size":67249,"version":"0.17.1","binstar":{"package_id":"6674a291a2d10e383ff4ab9d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"75cebb4af385a9e1a3b458e928b5bd30a4df47c23016b173b79ea756a22e4624"},"ros-jazzy-ament-copyright-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["importlib-metadata","python","ros-jazzy-ament-lint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072780839,"md5":"c25083a9a3faf279f95a61478c52b04d","name":"ros-jazzy-ament-copyright","requires":[],"size":67292,"version":"0.17.1","binstar":{"package_id":"6674a291a2d10e383ff4ab9d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3362d4f609b01a63345d4505440379339e8e9613f3f86132f86a55fa163909d3"},"ros-jazzy-cyclonedds-0.10.5-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","openssl >=3.4.0,<4.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904294151,"md5":"c9f8885524c9da62e6cddf1301b26793","name":"ros-jazzy-cyclonedds","requires":[],"size":1129025,"version":"0.10.5","binstar":{"package_id":"6674a293cc5a7c2475f4ab97","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a3f0825b04feac6aa593df15d20ae74b1ef22693d601da1dcf43c0fdfd4cac72"},"ros-jazzy-cyclonedds-0.10.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","openssl >=3.4.0,<4.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072844865,"md5":"ea626b0618ae12babdbe889d31c3d696","name":"ros-jazzy-cyclonedds","requires":[],"size":1128980,"version":"0.10.5","binstar":{"package_id":"6674a293cc5a7c2475f4ab97","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"01b618a7183760aa209540d54c57070c9242afed3066a3336843387ab18e9831"},"ros-jazzy-ament-clang-format-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["clang-format","python","pyyaml","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904427479,"md5":"1146600cf44392416b3d53c7105742a2","name":"ros-jazzy-ament-clang-format","requires":[],"size":30260,"version":"0.17.1","binstar":{"package_id":"6674a2dcee500a2b2d1922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c6f1c03a506ca2726f9c8619f24dc74a416496c768023938e5155feacee3511a"},"ros-jazzy-ament-clang-format-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["clang-format","python","pyyaml","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072975939,"md5":"44b2bd686270bd294277ad23e7336bef","name":"ros-jazzy-ament-clang-format","requires":[],"size":30298,"version":"0.17.1","binstar":{"package_id":"6674a2dcee500a2b2d1922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3765b9150902f1bfe29d9ce5379576ab658cdc10b31897ce8ab8a16476bd18c7"},"ros-jazzy-ament-index-python-1.8.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904384952,"md5":"33aed84763a82641638afa946c38729e","name":"ros-jazzy-ament-index-python","requires":[],"size":29351,"version":"1.8.1","binstar":{"package_id":"6674a2de3ebd9bb417c12e4b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"31755c21ffff88a1c614c2ec0e9563e320717e59d7c016cf7d8de1ce7b2c72dc"},"ros-jazzy-ament-index-python-1.8.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072931575,"md5":"981a1f4a75fd87a473e0b6dea074d069","name":"ros-jazzy-ament-index-python","requires":[],"size":29324,"version":"1.8.1","binstar":{"package_id":"6674a2de3ebd9bb417c12e4b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c1ee5ddeadd7c216c5758948668f40ba1598fd4a39bf31ac1a42545eab2942e8"},"ros-jazzy-domain-coordinator-0.12.0-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904414625,"md5":"45824f8de62ac1ebf1727c91961ce93d","name":"ros-jazzy-domain-coordinator","requires":[],"size":20360,"version":"0.12.0","binstar":{"package_id":"6674a2df1940d61b8344de70","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d0152300d0547649817184e71cde52ea5a7822aee4c5d6cd79744819aa6751a0"},"ros-jazzy-domain-coordinator-0.12.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072962849,"md5":"859b33ccedb85436bdfaa54db772b736","name":"ros-jazzy-domain-coordinator","requires":[],"size":20371,"version":"0.12.0","binstar":{"package_id":"6674a2df1940d61b8344de70","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1c2bb5355b4e5e71cd7661618ae2e263758ec2d08770add248e657a97f7d5861"},"ros-jazzy-ament-cmake-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904413545,"md5":"f3967bb66d23d72bda63df3b39a7e9b2","name":"ros-jazzy-ament-cmake","requires":[],"size":21647,"version":"2.5.3","binstar":{"package_id":"6674a2eda2d10e383ff4ab9f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"879800be58bd6b9d1fe9e84eb67b3bb0ff80e5d0f66097c61c3ad719c079b9b1"},"ros-jazzy-ament-cmake-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072966008,"md5":"0d0f6b98ba8f93a416709d74de3b0a1f","name":"ros-jazzy-ament-cmake","requires":[],"size":21658,"version":"2.5.3","binstar":{"package_id":"6674a2eda2d10e383ff4ab9f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7bf61712c222163df837eab24d4364d10f11e70739b48fe5f98fc9839bcdfe19"},"ros-jazzy-ament-cppcheck-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["cppcheck","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904453956,"md5":"ccd02f76b244f3ebb219025aa80aa8fd","name":"ros-jazzy-ament-cppcheck","requires":[],"size":29603,"version":"0.17.1","binstar":{"package_id":"6674a2ee7aab843f03579451","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"872c74495b2f64463e4048cf5e4acaebcdfec5fbbbda6d26c4ae15d9a4cc6f45"},"ros-jazzy-ament-cppcheck-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["cppcheck","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073006700,"md5":"5dad6b38f95d4aa11d0a16947b3f5a00","name":"ros-jazzy-ament-cppcheck","requires":[],"size":29665,"version":"0.17.1","binstar":{"package_id":"6674a2ee7aab843f03579451","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cb006b33d12a45723dfc95bc6bafdea3973c1288d5b1611cbe469316174c8249"},"ros-jazzy-ament-cpplint-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904441623,"md5":"e4f052a60ee8e49e969ef003e313e7b5","name":"ros-jazzy-ament-cpplint","requires":[],"size":175937,"version":"0.17.1","binstar":{"package_id":"6674a2eff3b3829c06f4ab96","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bef8aea6db7343b4f095ac9bc155654f03ea14112327dd9a0dc568dee7447dc6"},"ros-jazzy-ament-cpplint-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072994092,"md5":"89f8148f9f8b32ce8bad9bedaeba3cfc","name":"ros-jazzy-ament-cpplint","requires":[],"size":175974,"version":"0.17.1","binstar":{"package_id":"6674a2eff3b3829c06f4ab96","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"56055a93db1680b33d6c40103acb8108e671256ab54f342b8c654aff11b1c948"},"ros-jazzy-ament-lint-cmake-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904382887,"md5":"8c88265f085a3c6dee467e8ed355cc7f","name":"ros-jazzy-ament-lint-cmake","requires":[],"size":39911,"version":"0.17.1","binstar":{"package_id":"6674a2f1e9156fea239d9855","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7d155b412e7baf6f47858d37cee1f2a82a86d757f60a5e0e53bf2b72e3b12bcc"},"ros-jazzy-ament-lint-cmake-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072930997,"md5":"5d317f4889594ec56ef070ad179c0041","name":"ros-jazzy-ament-lint-cmake","requires":[],"size":39938,"version":"0.17.1","binstar":{"package_id":"6674a2f1e9156fea239d9855","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0600f75cbd1eba1e5cdeef622c1d0dc471af39a80f84c0481cc6a402ccd06742"},"ros-jazzy-ament-xmllint-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["libxml2","python","ros-jazzy-ament-lint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904429253,"md5":"821afb338b19207849c04a31ea79ae43","name":"ros-jazzy-ament-xmllint","requires":[],"size":27739,"version":"0.17.1","binstar":{"package_id":"6674a2f2c88619e4bd9d9855","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e3f05c279291605cfebdd9fcf4f2bba63f931df30df6084cf2475df5d5deb6f2"},"ros-jazzy-ament-xmllint-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["libxml2","python","ros-jazzy-ament-lint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736072981172,"md5":"979c6b542ac157d854aa427f2a990517","name":"ros-jazzy-ament-xmllint","requires":[],"size":27736,"version":"0.17.1","binstar":{"package_id":"6674a2f2c88619e4bd9d9855","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"510cbabac666aa36ebb2a47c9a2f2c61f58f446eb8fa1641a6e969f0a4fe5eba"},"ros-jazzy-pybind11-vendor-3.1.2-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["pybind11","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904636647,"md5":"22f5d57c24e2c44ed7433aeb9ad1a00a","name":"ros-jazzy-pybind11-vendor","requires":[],"size":21544,"version":"3.1.2","binstar":{"package_id":"6674a343ea2199b4dff4ab97","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c39479bc207e13376b9a89f5bb5e179b43aaa21e42c49bf17d5367ee9b07532f"},"ros-jazzy-pybind11-vendor-3.1.2-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["pybind11","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073436535,"md5":"1f53307fe773e503f8452a9f738e18f9","name":"ros-jazzy-pybind11-vendor","requires":[],"size":21540,"version":"3.1.2","binstar":{"package_id":"6674a343ea2199b4dff4ab97","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c41bb6d3fdd73199bfd2506441aa40a03d6ab78c3e4007753f61c608ffcce331"},"ros-jazzy-rpyutils-0.4.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904605599,"md5":"1edea5cb5f6b19731b306664581b5de5","name":"ros-jazzy-rpyutils","requires":[],"size":25405,"version":"0.4.1","binstar":{"package_id":"6674a3449d4c1e9d4f44de6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"73f43e92b4faa2d4a47c9a0de4d0cceb1a5811f21ec3ec36c5d91b5d0b994b9f"},"ros-jazzy-rpyutils-0.4.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073402340,"md5":"fa971a877fb76758b2644cc1c367ecb5","name":"ros-jazzy-rpyutils","requires":[],"size":25417,"version":"0.4.1","binstar":{"package_id":"6674a3449d4c1e9d4f44de6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"941adf573880ec80ccd18f396fe4eef258b9ae4b83edfc641ee0ac8d76a6a7b6"},"ros-jazzy-tinyxml2-vendor-0.9.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","tinyxml2","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","tinyxml2 >=10.0.0,<11.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904654370,"md5":"c2c141c7211bf9210e494d4b52519ac2","name":"ros-jazzy-tinyxml2-vendor","requires":[],"size":22362,"version":"0.9.1","binstar":{"package_id":"6674a349598bb36cab57944c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a083cf589fcd08ef9c1186441ae9b9c43e9467cb0fa41a81d37a94740ca73cf2"},"ros-jazzy-tinyxml2-vendor-0.9.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","tinyxml2","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","tinyxml2 >=10.0.0,<11.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073453237,"md5":"0c842d33a789d2bbf3cce85181845477","name":"ros-jazzy-tinyxml2-vendor","requires":[],"size":22355,"version":"0.9.1","binstar":{"package_id":"6674a349598bb36cab57944c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d9fce528191094844b2e4bd3b37f409292a1b3b3bf22b4532efc1606251b8883"},"ros-jazzy-tinyxml2-vendor-0.9.1-np126py311hd69bdec_3.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_3","build_number":3,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","tinyxml2","__osx >=10.14","libcxx >=18","__osx >=10.13","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","tinyxml2 >=10.0.0,<11.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442208616,"md5":"f044a36dcb6be4e759c41ef027890945","name":"ros-jazzy-tinyxml2-vendor","requires":[],"size":23040,"version":"0.9.1","binstar":{"package_id":"6674a349598bb36cab57944c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e645264cc7a2bea863afc2a4d6110b987331e4cdd58c037aeb2a391c01cee021"},"ros-jazzy-ament-cmake-auto-2.5.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735905057732,"md5":"1019bfcd18921242bdb0992b690879ba","name":"ros-jazzy-ament-cmake-auto","requires":[],"size":25496,"version":"2.5.3","binstar":{"package_id":"6674a34992c307f5a7a7ce6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7b5533a18d82ef4f8be2aed5e065ba3bdd3ef43ae5ab9ffdfca322f87dd83c1a"},"ros-jazzy-ament-cmake-auto-2.5.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073053809,"md5":"7f55edf8875a20d973dd654dd993ee45","name":"ros-jazzy-ament-cmake-auto","requires":[],"size":25522,"version":"2.5.3","binstar":{"package_id":"6674a34992c307f5a7a7ce6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"296e8b3acaefedd228e65b1bfcecda7653816ea3648f18a8cf9b1b2dcdeab5a3"},"ros-jazzy-yaml-cpp-vendor-9.0.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","yaml-cpp","__osx >=10.14","libcxx >=19","yaml-cpp >=0.8.0,<0.9.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904669561,"md5":"86e1de61f86aeb574ab2476925ecbb53","name":"ros-jazzy-yaml-cpp-vendor","requires":[],"size":21440,"version":"9.0.1","binstar":{"package_id":"6674a34abfe0729017c62374","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9fdeb39caa1e53399eb77fe1dced14dc1a7df46c8c57f4d5fbca6600aabc0659"},"ros-jazzy-yaml-cpp-vendor-9.0.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","yaml-cpp","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","yaml-cpp >=0.8.0,<0.9.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073466723,"md5":"1e0e7d210227f96e1380353da2a2aaf2","name":"ros-jazzy-yaml-cpp-vendor","requires":[],"size":21432,"version":"9.0.1","binstar":{"package_id":"6674a34abfe0729017c62374","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b8580272b44a4752fc685b7b7756299446e5edcabbf9e820f6a83588735fb3c5"},"ros-jazzy-liblz4-vendor-0.26.6-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["lz4","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904774628,"md5":"ae7936ef64022f0373561fc7b8a6605a","name":"ros-jazzy-liblz4-vendor","requires":[],"size":22412,"version":"0.26.6","binstar":{"package_id":"6674a34bb60870276744de75","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b3e44d3bddbbe33816e0ea251bb179b10131b6048352d702f5759893a07c5ce1"},"ros-jazzy-liblz4-vendor-0.26.6-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["lz4","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073048844,"md5":"6f1bcb59aadca18df8158ab10a920b81","name":"ros-jazzy-liblz4-vendor","requires":[],"size":22410,"version":"0.26.6","binstar":{"package_id":"6674a34bb60870276744de75","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7f028cdaeeadb4a7eb4d11995517dd0543d2c19e1749cc16cd7124419241fa18"},"ros-jazzy-zstd-vendor-0.26.6-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","zstd","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","zstd >=1.5.6,<1.6.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904684917,"md5":"47ef702a02907b0a45bfc4123b4b2851","name":"ros-jazzy-zstd-vendor","requires":[],"size":22297,"version":"0.26.6","binstar":{"package_id":"6674a34dc42c2ed11157944f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e4b4435bea9d13cc28bc5c7e8a68b1cb3085d9509f76b97407293eb1dac421e2"},"ros-jazzy-zstd-vendor-0.26.6-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","zstd","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","zstd >=1.5.6,<1.6.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073480096,"md5":"9fb4191ad18f597717541464a89c867d","name":"ros-jazzy-zstd-vendor","requires":[],"size":22323,"version":"0.26.6","binstar":{"package_id":"6674a34dc42c2ed11157944f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"20e2eaff8d4b48503460a5bf56055430d755fdfda0d8b4205d65403e45ab8d34"},"ros-jazzy-sqlite3-vendor-0.26.6-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","sqlite","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","libsqlite >=3.47.2,<4.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904824578,"md5":"dd4ddc6de48d1e0b84b16e2d66c44c80","name":"ros-jazzy-sqlite3-vendor","requires":[],"size":22845,"version":"0.26.6","binstar":{"package_id":"6674a34ffce8b5e8a96af057","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8909eb891aa3c0d8e13b358c7f638dda610053f6c9f7c5260565b9220e3df36b"},"ros-jazzy-sqlite3-vendor-0.26.6-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","sqlite","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","libsqlite >=3.47.2,<4.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073090515,"md5":"2cb9ebe27db7e60233406f4ac0da1cb8","name":"ros-jazzy-sqlite3-vendor","requires":[],"size":22859,"version":"0.26.6","binstar":{"package_id":"6674a34ffce8b5e8a96af057","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e6f5190636720d02e45047596b47f191e383ffa36c3f7e9d1c2476e7ae1d73c6"},"ros-jazzy-ament-cmake-lint-cmake-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-lint-cmake","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904494669,"md5":"d6fbe098ed73a7087b196d88a5add0f0","name":"ros-jazzy-ament-cmake-lint-cmake","requires":[],"size":20825,"version":"0.17.1","binstar":{"package_id":"6674a379b5589307ae1922c7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d5b44820b31c85d649313b12b2f115d9e21e81539f25bf61dd9e4615cc35ac20"},"ros-jazzy-ament-cmake-lint-cmake-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-lint-cmake","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073188433,"md5":"42e9d63497d9764dc8a17c7d83b62e61","name":"ros-jazzy-ament-cmake-lint-cmake","requires":[],"size":20818,"version":"0.17.1","binstar":{"package_id":"6674a379b5589307ae1922c7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2ecd284450cf6e199a424a0509f9db94a6b448057c1775aaf079899ff702124c"},"ros-jazzy-fastcdr-2.2.5-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904710062,"md5":"9003935ecbd0d45236acb9176012ff86","name":"ros-jazzy-fastcdr","requires":[],"size":80140,"version":"2.2.5","binstar":{"package_id":"6674a37cbedcf6d9e79d9859","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"49da0af889c918ac4e944cf8c83837ddc6e11a9b3ca49bf65b1420000ae224ab"},"ros-jazzy-fastcdr-2.2.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073352934,"md5":"faeed7b56f11db5876d0a525bdda0f2e","name":"ros-jazzy-fastcdr","requires":[],"size":80189,"version":"2.2.5","binstar":{"package_id":"6674a37cbedcf6d9e79d9859","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a1fbe74284b1a2991c16ff49bf3cd62e4cc887da07591d664d91e969e32c9fbf"},"ros-jazzy-launch-3.4.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904669458,"md5":"d667eb750ab96fedbe552c46608e2250","name":"ros-jazzy-launch","requires":[],"size":238734,"version":"3.4.3","binstar":{"package_id":"6674a37ff1e91f8ddc6af059","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c0e77af996ce8490c086c0eb110945454e5498a1a1d46d86a2e9819c7e5ba59a"},"ros-jazzy-launch-3.4.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073318471,"md5":"94e530060285794ea293291df4bbb0ae","name":"ros-jazzy-launch","requires":[],"size":238758,"version":"3.4.3","binstar":{"package_id":"6674a37ff1e91f8ddc6af059","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6b9be81f4b2ccd4e0e09b79e50761b4fce696eaaa777418ee1f2e05af745f149"},"ros-jazzy-rosidl-cli-4.6.5-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["argcomplete","importlib-metadata","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904693018,"md5":"b2964ae1b4f5f72c654a3348bc24c59c","name":"ros-jazzy-rosidl-cli","requires":[],"size":38665,"version":"4.6.5","binstar":{"package_id":"6674a38184d8e3c9b344de79","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8a6dfcba38931bb37c93c6f6fdb1a5f0bc0dbada74205aaff623f76b1749fbfc"},"ros-jazzy-rosidl-cli-4.6.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["argcomplete","importlib-metadata","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073336166,"md5":"a840c4cf417dbd478295ded74b73ea22","name":"ros-jazzy-rosidl-cli","requires":[],"size":38700,"version":"4.6.5","binstar":{"package_id":"6674a38184d8e3c9b344de79","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"efc5cfba61517bfe7f35a6783d975d3c77062a0d0d2287ad24a397e1ade373e0"},"ros-jazzy-uncrustify-vendor-3.0.0-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","uncrustify","__osx >=10.14","libcxx >=19","uncrustify >=0.74.0,<0.75.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904539712,"md5":"bd1a47c606607c6623c8d608fb559c5a","name":"ros-jazzy-uncrustify-vendor","requires":[],"size":566616,"version":"3.0.0","binstar":{"package_id":"6674a38358ad9e4bfa9d9857","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"57135663cf7e9481382f51c1bec999877543c0728483e5ce131326dc1f03f095"},"ros-jazzy-uncrustify-vendor-3.0.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","uncrustify","__osx >=10.14","libcxx >=19","__osx >=10.14","uncrustify >=0.74.0,<0.75.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073223202,"md5":"182cef4043e027f54ddc9b842adb7b92","name":"ros-jazzy-uncrustify-vendor","requires":[],"size":566623,"version":"3.0.0","binstar":{"package_id":"6674a38358ad9e4bfa9d9857","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ab9040682c9625e1497410c9b08f505872c93ea5b0ee2c57f8cc6cce5acf63f2"},"ros-jazzy-ament-cmake-copyright-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-copyright","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735907636376,"md5":"95fb674ea69ba5c218659f7c48c7f71d","name":"ros-jazzy-ament-cmake-copyright","requires":[],"size":21130,"version":"0.17.1","binstar":{"package_id":"6674a3f11940d61b8344de72","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"24737e685aa56107177ee3c096664816f5e595a80aca02fff615c22ea5730bdd"},"ros-jazzy-ament-cmake-copyright-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-copyright","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073525870,"md5":"11d38a08533f7774c3d046fea6ed8a30","name":"ros-jazzy-ament-cmake-copyright","requires":[],"size":21142,"version":"0.17.1","binstar":{"package_id":"6674a3f11940d61b8344de72","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b2b8a389e20292c1d3a11210cd71474c1ad6ed8706f5dc097e86b5571f6f0d38"},"ros-jazzy-ament-uncrustify-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-uncrustify-vendor","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735907691992,"md5":"9f98f87a471fe9a481bfe42f665bbb0f","name":"ros-jazzy-ament-uncrustify","requires":[],"size":68466,"version":"0.17.1","binstar":{"package_id":"6674a3f2b5589307ae1922c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"dc69a3a67e7bac767959918408305aab992259d8230a658f7b5885cdc1fd7fba"},"ros-jazzy-ament-uncrustify-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-uncrustify-vendor","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073554452,"md5":"673f6bf572245b4b395335f8f2213d98","name":"ros-jazzy-ament-uncrustify","requires":[],"size":68492,"version":"0.17.1","binstar":{"package_id":"6674a3f2b5589307ae1922c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b189da5002ef71e00675cbc19069e1b9fcdbf9523bc19b984028dcd7cdb5bdd5"},"ros-jazzy-launch-xml-3.4.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-launch","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735907730879,"md5":"8fda292664fdf4dc94f3bdcb8c153e1e","name":"ros-jazzy-launch-xml","requires":[],"size":25554,"version":"3.4.3","binstar":{"package_id":"6674a3f4bcb5ffd4511922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a5b11f527df1f1da833fdee04ba8ad49abf99c5ba3ca9531001de1d7ed9a17a0"},"ros-jazzy-launch-xml-3.4.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-launch","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073579134,"md5":"903d7ba3467476665b3b6af901adfce0","name":"ros-jazzy-launch-xml","requires":[],"size":25570,"version":"3.4.3","binstar":{"package_id":"6674a3f4bcb5ffd4511922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d9ab77c9dac927ca324c45137b5f7a97e51f1f7785dba59e0b34da3985784b79"},"ros-jazzy-launch-yaml-3.4.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-launch","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735907711449,"md5":"9822dd95fa80a5dd0bff7be069e5a0ec","name":"ros-jazzy-launch-yaml","requires":[],"size":26173,"version":"3.4.3","binstar":{"package_id":"6674a3f58eba59d71d44de71","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"aa84ce5a1eccb85e735061cb0e2dc0bb234b064c37143584165fc42853b989bf"},"ros-jazzy-launch-yaml-3.4.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-launch","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073565888,"md5":"7ddb24ea39f7dd6d1749a9b478491f11","name":"ros-jazzy-launch-yaml","requires":[],"size":26212,"version":"3.4.3","binstar":{"package_id":"6674a3f58eba59d71d44de71","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"053ea3827419fa9f7e3bfebbe4991325003e61150b8eadd6a8959bd1539aaf6e"},"ros-jazzy-mcap-vendor-0.26.6-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-liblz4-vendor","ros-jazzy-ros-workspace","ros-jazzy-zstd-vendor","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735907750349,"md5":"81d6fa81b9ec1fdb6de2484665074489","name":"ros-jazzy-mcap-vendor","requires":[],"size":171703,"version":"0.26.6","binstar":{"package_id":"6674a3f7b4d9bfd6ec579457","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"edff7a4d571a38a03f68aae6c56834878a7e3a0f3e9c9eb76b1f4eb06f8f6d23"},"ros-jazzy-mcap-vendor-0.26.6-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-liblz4-vendor","ros-jazzy-ros-workspace","ros-jazzy-zstd-vendor","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073589814,"md5":"8a4008f2d9c35ead19b2d1d1259709f8","name":"ros-jazzy-mcap-vendor","requires":[],"size":171703,"version":"0.26.6","binstar":{"package_id":"6674a3f7b4d9bfd6ec579457","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0c25ed0934555678ba4764be838e7b9e91c9dcfe652f5a641b90e81456b9b1f9"},"ros-jazzy-ament-cmake-clang-format-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-clang-format","ros-jazzy-ament-cmake-test","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735908110984,"md5":"a791c7317885866ea606c10c12172242","name":"ros-jazzy-ament-cmake-clang-format","requires":[],"size":21821,"version":"0.17.1","binstar":{"package_id":"6674a446c88619e4bd9d985a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"dc25dd72e162974f1facf3d53713f7df8a07bf18433d523d45332651b1223b3f"},"ros-jazzy-ament-cmake-clang-format-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-clang-format","ros-jazzy-ament-cmake-test","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736075484949,"md5":"5dba516e270ffb9396bf56f850517415","name":"ros-jazzy-ament-cmake-clang-format","requires":[],"size":21852,"version":"0.17.1","binstar":{"package_id":"6674a446c88619e4bd9d985a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8395283a65d08c39c7790b06cc14d7c84c50dcc6730e68abaf84bab32d47496e"},"ros-jazzy-ament-cmake-cppcheck-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735908040768,"md5":"f51f5d0ba4e1496e93bdaed21c82ea37","name":"ros-jazzy-ament-cmake-cppcheck","requires":[],"size":22746,"version":"0.17.1","binstar":{"package_id":"6674a447c168245e946af059","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c3aa2349bfdece6ae9a3db9f184af18ceb3669e12a6ced7f5fda39a336240e66"},"ros-jazzy-ament-cmake-cppcheck-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736075413920,"md5":"ca8d872398fb2b67cb4178a943266f73","name":"ros-jazzy-ament-cmake-cppcheck","requires":[],"size":22764,"version":"0.17.1","binstar":{"package_id":"6674a447c168245e946af059","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ec911a2ecf1283b912c81135bb84a8a4ce9891f50ccadb126e37b717fb0b4fda"},"ros-jazzy-eigen3-cmake-module-0.3.0-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735908093460,"md5":"4b3a46313c1a4b3507287fbbdcaae9ec","name":"ros-jazzy-eigen3-cmake-module","requires":[],"size":21966,"version":"0.3.0","binstar":{"package_id":"6674a4489005ffd21cc62370","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"184bc4b6a25ece04e830e22db32a06e424d8d7e9068ba5a6db4b0812e1abd38e"},"ros-jazzy-eigen3-cmake-module-0.3.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736075469119,"md5":"d50c3d9e150badb3b353fda495a055d8","name":"ros-jazzy-eigen3-cmake-module","requires":[],"size":21959,"version":"0.3.0","binstar":{"package_id":"6674a4489005ffd21cc62370","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c218fed4ce1d98f3ae68e64be7053719a0e419131be1f27d91ce50eea530082c"},"ros-jazzy-launch-testing-3.4.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735908076943,"md5":"c1cba4b08a46424e1afb93c627829bfd","name":"ros-jazzy-launch-testing","requires":[],"size":119300,"version":"3.4.3","binstar":{"package_id":"6674a44a8c7b2f8b2ca7ce72","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"31823b246a979df1d8e11d8a8fcf10a1d3f7560ee3900deead4068ee23a740f4"},"ros-jazzy-launch-testing-3.4.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736075451381,"md5":"b8013a80e6c9a4dd69d2cb01af6c87e7","name":"ros-jazzy-launch-testing","requires":[],"size":119320,"version":"3.4.3","binstar":{"package_id":"6674a44a8c7b2f8b2ca7ce72","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cf579bce0e3d8b0be5f0545ed2920faf8e35790078d19fc29a71bee56cfd4dbe"},"ros-jazzy-ament-cmake-cpplint-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-cpplint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735907997390,"md5":"a3422936655917db82e2e55def43ad21","name":"ros-jazzy-ament-cmake-cpplint","requires":[],"size":21758,"version":"0.17.1","binstar":{"package_id":"6674a44d526ed064dbc62376","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1e403e615331605305797b5c4acd1a7954c15161a6469ca262ac2ef9635123b8"},"ros-jazzy-ament-cmake-cpplint-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-cpplint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077094226,"md5":"101e0d189cca1132c82dd454d11081aa","name":"ros-jazzy-ament-cmake-cpplint","requires":[],"size":21783,"version":"0.17.1","binstar":{"package_id":"6674a44d526ed064dbc62376","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c7bc60718c2850b9d7d8293e4828607b435d620e1194e4be19b105a222d34373"},"ros-jazzy-ament-cmake-flake8-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-flake8","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735907984268,"md5":"8878d72a61035546d0f9c6cfa93392cd","name":"ros-jazzy-ament-cmake-flake8","requires":[],"size":22783,"version":"0.17.1","binstar":{"package_id":"6674a44fe339ff3360579449","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d8e972377c5cce3865dd221430e6126615a7864e3643ee42ade2a2c560d9aa38"},"ros-jazzy-ament-cmake-flake8-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-flake8","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077079193,"md5":"eba774a8c2ca1c2e013d3f82075f9ec8","name":"ros-jazzy-ament-cmake-flake8","requires":[],"size":22806,"version":"0.17.1","binstar":{"package_id":"6674a44fe339ff3360579449","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9c42e1dc035cc0d67214a709ce5219f68ff2f11ce1bc35a5b2d056301ca5ffd6"},"ros-jazzy-ament-cmake-pep257-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-pep257","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735907965289,"md5":"52381956aca2880bdd541403a9a86617","name":"ros-jazzy-ament-cmake-pep257","requires":[],"size":21549,"version":"0.17.1","binstar":{"package_id":"6674a450cc5a7c2475f4ab99","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6727cdd33c9fd03b2e93d612f7ee27871ec6a6a2e96faeafe8901011719d7cf7"},"ros-jazzy-ament-cmake-pep257-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-pep257","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077064217,"md5":"5f2d666a565f2da745da714046a22495","name":"ros-jazzy-ament-cmake-pep257","requires":[],"size":21566,"version":"0.17.1","binstar":{"package_id":"6674a450cc5a7c2475f4ab99","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0a954511ef0c31948cd11ea399f7367c8ddd96b4967ef069d1e14037f501ece7"},"ros-jazzy-ament-cmake-uncrustify-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-uncrustify","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735907947856,"md5":"9dd2d227766f4026303e89f7cd2e6a76","name":"ros-jazzy-ament-cmake-uncrustify","requires":[],"size":22143,"version":"0.17.1","binstar":{"package_id":"6674a451dbc9a5ddb557944c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4433450b2ae9cb3fe6c6eab408ccae12119c35d8a09e6ee95ce0968175306499"},"ros-jazzy-ament-cmake-uncrustify-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-uncrustify","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077044573,"md5":"65bbd416c292c98c90a4e476a974c69e","name":"ros-jazzy-ament-cmake-uncrustify","requires":[],"size":22132,"version":"0.17.1","binstar":{"package_id":"6674a451dbc9a5ddb557944c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2f6e26fb438a45f124c66ac9cabdabd27303271c7390e0c43f11c5f66bf35131"},"ros-jazzy-ament-cmake-xmllint-0.17.1-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-xmllint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735907913065,"md5":"7d6a385d4830fd1cff6a4624ae3800a4","name":"ros-jazzy-ament-cmake-xmllint","requires":[],"size":21309,"version":"0.17.1","binstar":{"package_id":"6674a452bb59b798ed1922c1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2d39ba95727673a1d04a8a448e205b52da92ef52fcdcc6da8b888984e68e6cd5"},"ros-jazzy-ament-cmake-xmllint-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-xmllint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077004943,"md5":"7ade2df3595e1a64a45f5260a873f1b6","name":"ros-jazzy-ament-cmake-xmllint","requires":[],"size":21304,"version":"0.17.1","binstar":{"package_id":"6674a452bb59b798ed1922c1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"134e7dcd4ce6ba88ecfa9e8c9ad442e3d7f9b31a38bd39b49730316a7c8166fd"},"ros-jazzy-ament-lint-common-0.17.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077135905,"md5":"e42fbbdb68f1b5f415014236c35e2ff7","name":"ros-jazzy-ament-lint-common","requires":[],"size":20742,"version":"0.17.1","binstar":{"package_id":"6674a48ff976b474bef4aba0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"af42be239d19773ec873e65dea6f581ca7170b0eb428698b225ac60adc73542d"},"ros-jazzy-foonathan-memory-vendor-1.3.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["cmake","foonathan-memory","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","foonathan-memory >=0.7.3,<0.7.4.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077203423,"md5":"989a3a76c2479b5e3b705c4fe3b4f82d","name":"ros-jazzy-foonathan-memory-vendor","requires":[],"size":18324,"version":"1.3.1","binstar":{"package_id":"6674a491c42c2ed111579458","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4853ea694b7e92b5efd2613edc1a8f11325b65b5307d96ff2cd91ac0bdf84bae"},"ros-jazzy-ament-index-cpp-1.8.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077888335,"md5":"bae3be64a8fea57beb7594b22537a69c","name":"ros-jazzy-ament-index-cpp","requires":[],"size":46315,"version":"1.8.1","binstar":{"package_id":"6674a4dc1940d61b8344de74","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"39407ce51d99c730ccf78cc83de878697cda8d678675947e4d83c8d525a52527"},"ros-jazzy-keyboard-handler-0.3.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078147138,"md5":"fefd0818d09dd8a2356b1c4545aff6f6","name":"ros-jazzy-keyboard-handler","requires":[],"size":56917,"version":"0.3.1","binstar":{"package_id":"6674a4ddbfe0729017c62376","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e16e399af9b22eb6ff4f49e33b65d4a611ee7fd85fd0429f8d01581601f05545"},"ros-jazzy-orocos-kdl-vendor-0.5.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["eigen","orocos-kdl","python","ros-jazzy-eigen3-cmake-module","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","orocos-kdl >=1.5.1,<1.6.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077997634,"md5":"4eae7d3b9629ae6b52277a617fb872b2","name":"ros-jazzy-orocos-kdl-vendor","requires":[],"size":26127,"version":"0.5.1","binstar":{"package_id":"6674a4deb5589307ae1922cf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"745b888b6fb7ed9b1866473adc60a48e42b0ea95a5e64c3fbb58ad5d9edd3fb9"},"ros-jazzy-spdlog-vendor-1.6.1-np126py311h8abd874_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8abd874_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","spdlog","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","spdlog >=1.14.1,<1.15.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077942449,"md5":"026beb24bc8ec34ef1aa891f005e1f90","name":"ros-jazzy-spdlog-vendor","requires":[],"size":25239,"version":"1.6.1","binstar":{"package_id":"6674a4e0ea8f365444c62374","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4e162e96a88083535249cb9b899fc68a1972f865bf0b7be3262ef6456cda6929"},"ros-jazzy-ament-cmake-ros-0.12.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078016677,"md5":"0c4361baec282d0c9df89c777bd33e45","name":"ros-jazzy-ament-cmake-ros","requires":[],"size":29522,"version":"0.12.0","binstar":{"package_id":"6674a554d25c322a2e1922c1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"efb34a53c931989fd4e361b0c0d4b4332322542b4e916b17cf7599d8b74ec733"},"ros-jazzy-mimick-vendor-0.6.2-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077980203,"md5":"bd6a959d464cb0a57dd39805ddfced4a","name":"ros-jazzy-mimick-vendor","requires":[],"size":50910,"version":"0.6.2","binstar":{"package_id":"6674a555d25c322a2e1922c3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3d734c83e252e7afadd927fd48c55a0da2a971b192e97be6c88f10ae7ba5fe91"},"ros-jazzy-performance-test-fixture-0.2.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077956047,"md5":"fda3e33e09270601b1b85e58db2e2a21","name":"ros-jazzy-performance-test-fixture","requires":[],"size":35614,"version":"0.2.1","binstar":{"package_id":"6674a557d25c322a2e1922c5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ab960dbc19f1bc445b591fb14ea61fe57938d60dbb45fc7a043bb2ddaa70a4ac"},"ros-jazzy-python-cmake-module-0.11.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077896718,"md5":"fec332f2ed1b29fe1cf2998ab9486d3b","name":"ros-jazzy-python-cmake-module","requires":[],"size":25903,"version":"0.11.1","binstar":{"package_id":"6674a559ea2199b4dff4ab9b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"efca481d953fa37725901f4d21a786d9d02fdb61068f9c5821e23bd47e72ad04"},"ros-jazzy-rosidl-adapter-4.6.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["empy","python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros-jazzy-rosidl-cli","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077938328,"md5":"8550a1f6f4d77d3f4634470e6838f5e0","name":"ros-jazzy-rosidl-adapter","requires":[],"size":63272,"version":"4.6.5","binstar":{"package_id":"6674a55bea2199b4dff4ab9d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c8f137dc40b39eaf52c365a4ec5a8e163679cd9e1e0cfe887d33f373d6896e1c"},"ros-jazzy-fastrtps-cmake-module-3.6.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078092974,"md5":"ead63f349687c53d5b87456268b8cb56","name":"ros-jazzy-fastrtps-cmake-module","requires":[],"size":25552,"version":"3.6.1","binstar":{"package_id":"66751ecca31ee1457760efa8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"164ce841f167a141f69ce843d31ee1718e8dad6dc064bd8ace940d22c30873f2"},"ros-jazzy-launch-testing-ament-cmake-3.4.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078482212,"md5":"67e8398e1bfd826d7538c65c94116269","name":"ros-jazzy-launch-testing-ament-cmake","requires":[],"size":25391,"version":"3.4.3","binstar":{"package_id":"66751ece6b847cafe64ef2b0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e5b872c2900e63fad284a4f45755672c9c175aedb78998d32bdcc9e76ba4f08b"},"ros-jazzy-rosidl-parser-4.6.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["lark-parser","python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-adapter","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078518594,"md5":"2d854921092f9b8acace8b81d44171dd","name":"ros-jazzy-rosidl-parser","requires":[],"size":59589,"version":"4.6.5","binstar":{"package_id":"66751ed4f4ee0bdb121f4589","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"645841b861580571f8d1905f863bac36397f25f9abe58c453d461c51662aa1ce"},"ros-jazzy-rosidl-typesupport-interface-4.6.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078060580,"md5":"31dfba291777afec0933decf00ba25a9","name":"ros-jazzy-rosidl-typesupport-interface","requires":[],"size":27468,"version":"4.6.5","binstar":{"package_id":"66751ed536bdc0d98eb325f5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"412f253c52d7310b7fe7ccab61fad88158e429a318644153d42c34688082797d"},"ros-jazzy-console-bridge-vendor-1.7.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["console_bridge","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","console_bridge >=1.0.2,<1.1.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078566124,"md5":"de8d64e11235290dbadaa9676caef3d5","name":"ros-jazzy-console-bridge-vendor","requires":[],"size":25721,"version":"1.7.1","binstar":{"package_id":"66751f27a116811e5e8312ce","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4444664b4a688ab4ecd342c8c3081e1675fd1a959e60b441ca07222ab07cb2c9"},"ros-jazzy-urdf-parser-plugin-2.10.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-urdfdom-headers","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078484571,"md5":"6c9a714a6c3cc12d545b81cb2a559e37","name":"ros-jazzy-urdf-parser-plugin","requires":[],"size":30133,"version":"2.10.0","binstar":{"package_id":"66751f28bb9bcc31bda376b8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bcb979a7d2f0db56da07252f26c33b496f9671979d1438e4fdedb1a8663d0cdc"},"ros-jazzy-fastrtps-2.14.4-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["openssl","python","ros-jazzy-fastcdr","ros-jazzy-foonathan-memory-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","tinyxml2","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","openssl >=3.4.0,<4.0a0","tinyxml2 >=10.0.0,<11.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078108221,"md5":"4a5e3e27e2129371135ca695ecaab18c","name":"ros-jazzy-fastrtps","requires":[],"size":3226664,"version":"2.14.4","binstar":{"package_id":"667520521ae390792a55e120","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ec7acf4ae7c1e2e5a80802cf5b208bda6147acd169c3d672b7592b1b6d2b3729"},"ros-jazzy-libyaml-vendor-1.6.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["pkg-config","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","yaml","yaml-cpp","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","yaml >=0.2.5,<0.3.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","yaml-cpp >=0.8.0,<0.9.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078548596,"md5":"85cf2b1ff0614feb64df18a024f85019","name":"ros-jazzy-libyaml-vendor","requires":[],"size":27770,"version":"1.6.3","binstar":{"package_id":"6675205301afc569e3b325f9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ac3c6b3f4da05895a81ea4dbfa6e3f5dba483e1044307bbd316d071497885e33"},"ros-jazzy-rmw-implementation-cmake-7.3.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078441247,"md5":"bc2b13ae578b16df026c023cc0e86456","name":"ros-jazzy-rmw-implementation-cmake","requires":[],"size":27568,"version":"7.3.1","binstar":{"package_id":"6675205401afc569e3b325fd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"46b5eea6081429ac048bdc4900485d2c562424cf697b436fb7640859fcab07aa"},"ros-jazzy-rti-connext-dds-cmake-module-0.22.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078425003,"md5":"84371966931a3269944454bbbe1dc626","name":"ros-jazzy-rti-connext-dds-cmake-module","requires":[],"size":29660,"version":"0.22.0","binstar":{"package_id":"66752055fcacfe3dc8a376b6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ae4dca6ae888ec643c22f199424c4ee2148419092d3243cb0998b68e2e2d2d56"},"ros-jazzy-tracetools-8.2.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078533493,"md5":"1c31c413b2880c6adc93611a87911020","name":"ros-jazzy-tracetools","requires":[],"size":33097,"version":"8.2.3","binstar":{"package_id":"66752056a12613151f4ef2b3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9e4c1c7eb6b4fb32329bd135f7f35f7558a47fa2201bddb1fae90522b062449c"},"ros-jazzy-rcutils-6.7.2-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078728346,"md5":"4aca2bb40288a4436dfb07de7085d13d","name":"ros-jazzy-rcutils","requires":[],"size":116907,"version":"6.7.2","binstar":{"package_id":"66755346ab8e4fb8a751162a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9e77d2a87139a6d65c139f605e740609115049b96c0002eb757d96495546f13b"},"ros-jazzy-rosidl-generator-type-description-4.6.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078787139,"md5":"c66fcda81decd60050633a680680d2bf","name":"ros-jazzy-rosidl-generator-type-description","requires":[],"size":45420,"version":"4.6.5","binstar":{"package_id":"66755347c51310fb1549e819","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"11c5c6dd420de0d438bfe346cb47bc34f8c16e61e7c8e545b6253f56502fd0e8"},"ros-jazzy-rosidl-pycommon-4.6.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-parser","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078773909,"md5":"fe5203e9b7e458ffd65d99672452a27b","name":"ros-jazzy-rosidl-pycommon","requires":[],"size":24915,"version":"4.6.5","binstar":{"package_id":"6675534819531b40f8fc97bc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"41b757fcfc719c9f2548c2b6f692573626a4270f848055d8b880edab19b61871"},"ros-jazzy-urdfdom-4.0.1-h0dc7051_0.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"h0dc7051_0","build_number":0,"depends":["urdfdom ==4.0.1","python 3.11.* *_cpython"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735932357219,"md5":"fa828ad11f537c3df328f1f0df0fb891","name":"ros-jazzy-urdfdom","requires":[],"size":1815,"version":"4.0.1","binstar":{"package_id":"66755349942fb586b6f7dda3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9357dcdc2407591372018c60a92361f3d75f5ce08958ec119ded28b4e88c687e"},"ros-jazzy-rcpputils-2.11.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079012818,"md5":"779e6f2d2f03f6b1c1e85844bf172149","name":"ros-jazzy-rcpputils","requires":[],"size":78541,"version":"2.11.1","binstar":{"package_id":"6675538f676399c626e81bb3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4fc46a43a9ac6cfbc35092c2637b56955caba3d73fb9f5b240a1e2ccc60e37a6"},"ros-jazzy-rosidl-cmake-4.6.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["empy","python","ros-jazzy-ament-cmake","ros-jazzy-ros-workspace","ros-jazzy-rosidl-pycommon","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078992284,"md5":"d05130bc0194295515bfa64797d7f7ac","name":"ros-jazzy-rosidl-cmake","requires":[],"size":33337,"version":"4.6.5","binstar":{"package_id":"667553906512ff23e2fc97bc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d5fb60c8ef14a6f5645a7edc008cac062b0294c65401ff23cd14b257ae3cfe5e"},"ros-jazzy-rosidl-runtime-c-4.6.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-typesupport-interface","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078940921,"md5":"8ebc3f649e60d6c4d8be419aed6b1b9b","name":"ros-jazzy-rosidl-runtime-c","requires":[],"size":78752,"version":"4.6.5","binstar":{"package_id":"66755391efbad63bca80da64","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"392316282aa4089295ce0c2a85a8c1333c191dcfd818019206887c0eed059840"},"ros-jazzy-class-loader-2.7.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["console_bridge","python","ros-jazzy-console-bridge-vendor","ros-jazzy-rcpputils","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079229844,"md5":"0324ba92dad5b25718e3522682c27ce8","name":"ros-jazzy-class-loader","requires":[],"size":66876,"version":"2.7.0","binstar":{"package_id":"667553ef3603e75bcd80da64","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3a3acaa96a4410f172eb3fa6c531679195db2ee34281e0e30baa3ad67e49fe7f"},"ros-jazzy-rcl-logging-interface-3.1.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079215357,"md5":"dcab23fa245880aff7a801d83db636a1","name":"ros-jazzy-rcl-logging-interface","requires":[],"size":33029,"version":"3.1.1","binstar":{"package_id":"667553f1a3a2cd9e2eba03f9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"15aab7869306dae7dade03ae28a1eba1c44ab95489f269e2fa5e3fd6505740d4"},"ros-jazzy-rosidl-dynamic-typesupport-0.1.2-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-c","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079200433,"md5":"194fb9c37a5af76b8a1f42e83a2009e8","name":"ros-jazzy-rosidl-dynamic-typesupport","requires":[],"size":54993,"version":"0.1.2","binstar":{"package_id":"667553f3f6fec850abba03f0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2e257d9b139c7055bdb569daf481a0a9222dfbbe0396b04e02991ebbf64bf466"},"ros-jazzy-rosidl-generator-c-4.6.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079187224,"md5":"33c89244ed63296d107deb452bd5bdf5","name":"ros-jazzy-rosidl-generator-c","requires":[],"size":51341,"version":"4.6.5","binstar":{"package_id":"667553f4b065f00167fc97bd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"695751eaa72bae9e50c8b46098caf95da78617325b28577436546e8e3d2ab095"},"ros-jazzy-rosidl-runtime-cpp-4.6.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-c","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079156326,"md5":"8ddcb73ae4906b099e01588fa09533a6","name":"ros-jazzy-rosidl-runtime-cpp","requires":[],"size":39063,"version":"4.6.5","binstar":{"package_id":"667553f6b7dd65cd7bf7dd98","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"430ea4940504fe4080196abd238e1b69bba7dab026572f166705feee11c39a1c"},"ros-jazzy-pluginlib-5.4.2-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079319271,"md5":"5063f711ae0c1e506031fab2807aabf1","name":"ros-jazzy-pluginlib","requires":[],"size":39549,"version":"5.4.2","binstar":{"package_id":"6675543033804386eeba03e9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"95f01c6186e308e3e01767515da31cb83460a4edf1a258f751ebe058130c53e6"},"ros-jazzy-rcl-logging-spdlog-3.1.1-np126py311h8abd874_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8abd874_2","build_number":2,"depends":["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","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","spdlog >=1.14.1,<1.15.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079408692,"md5":"3b4d323dca42f68da2229090424f0b48","name":"ros-jazzy-rcl-logging-spdlog","requires":[],"size":43249,"version":"3.1.1","binstar":{"package_id":"6675545679a1e1da3ef7dd8f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"60f736240785b35895e69aa96545e016db4a818fa75416386bea58e6d0ffa98f"},"ros-jazzy-rmw-7.3.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-dynamic-typesupport","ros-jazzy-rosidl-runtime-c","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079354217,"md5":"fdcfafc8124a9419f5b1a92e7fa2e3d3","name":"ros-jazzy-rmw","requires":[],"size":91929,"version":"7.3.1","binstar":{"package_id":"6675545733804386eeba03eb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"045756e6c608d8cb2cb5a60199263d5c57837da76499f44bc7b8b0ba59e8570b"},"ros-jazzy-rosidl-dynamic-typesupport-fastrtps-0.1.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079384522,"md5":"7e52b38f822f0ec1a71ddbff2c4931b7","name":"ros-jazzy-rosidl-dynamic-typesupport-fastrtps","requires":[],"size":77929,"version":"0.1.0","binstar":{"package_id":"6675545817cc4891dbba03f2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b8e8e8121adee202c0ba4ceaba5e5e7e1bbc9a7dd1cf70ffef8f511b8391d21e"},"ros-jazzy-rosidl-generator-cpp-4.6.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079321283,"md5":"09f103ed1627464cf9efda49cd0f7ccc","name":"ros-jazzy-rosidl-generator-cpp","requires":[],"size":48177,"version":"4.6.5","binstar":{"package_id":"6675545ae15bbbf909ba03ea","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"307fb6fb2efcb1bbe68ed10513e84aadbd75808728807834b1ef73a07ba369b5"},"ros-jazzy-rosidl-typesupport-introspection-c-4.6.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079370725,"md5":"e19d19e9ff90db9f8e4406d1d3f8d8d3","name":"ros-jazzy-rosidl-typesupport-introspection-c","requires":[],"size":45799,"version":"4.6.5","binstar":{"package_id":"6675545bc61e8fdedffc97bb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"425ba8d0b82cf5b093110c0ccb22e74f3fb542fe21837391875ef94aeecd8a35"},"ros-jazzy-rcl-yaml-param-parser-9.2.4-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-libyaml-vendor","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","yaml","yaml-cpp","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","yaml >=0.2.5,<0.3.0a0","numpy >=1.26.4,<2.0a0","yaml-cpp >=0.8.0,<0.9.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079550056,"md5":"91975713e7901111d97e0a4f6a4023aa","name":"ros-jazzy-rcl-yaml-param-parser","requires":[],"size":47570,"version":"9.2.4","binstar":{"package_id":"667554b228e9267efdfc97bc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a49fb6e9cd26a20717ffaaa781fafd2ace687cf3c5b5bdd2eb8a18ba59313116"},"ros-jazzy-rosidl-typesupport-fastrtps-cpp-3.6.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079494361,"md5":"39c4cfe185fa45d4879709511100e0d2","name":"ros-jazzy-rosidl-typesupport-fastrtps-cpp","requires":[],"size":51635,"version":"3.6.1","binstar":{"package_id":"667554b4d66865331cba03f4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"707cafe379c2ca8eed9fb802a182fb30d30ba133b11878dfd48019ef84d03fe9"},"ros-jazzy-rosidl-typesupport-introspection-cpp-4.6.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079532348,"md5":"6852638da492e009ed09cb920f38dabd","name":"ros-jazzy-rosidl-typesupport-introspection-cpp","requires":[],"size":46113,"version":"4.6.5","binstar":{"package_id":"667554b5b065f00167fc97c0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"056d758386dbda782dadff429627ba8b861589743b8ab02ae2c494ad9f25da87"},"ros-jazzy-urdf-2.10.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079568594,"md5":"aafdeff7993b9f57b3b34054d75dd5ef","name":"ros-jazzy-urdf","requires":[],"size":135712,"version":"2.10.0","binstar":{"package_id":"667554b619531b40f8fc97c2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"02f62b93c26af7cdf6b91face9c1e1e41c5d3e5a234334a693b6b5262dd53ea4"},"ros-jazzy-kdl-parser-2.11.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449308552,"md5":"705e645ea4a6d30bc8966228c2a2e779","name":"ros-jazzy-kdl-parser","requires":[],"size":47154,"version":"2.11.0","binstar":{"package_id":"667554fd187a58b4e599719c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9a0eac9263c8801ef8ea6a25878a3f841e0ad9b4bc26c5976e51c68f714d2b22"},"ros-jazzy-rosidl-typesupport-c-3.2.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449327644,"md5":"208c6f268ac6063c4286175803e66c10","name":"ros-jazzy-rosidl-typesupport-c","requires":[],"size":48405,"version":"3.2.2","binstar":{"package_id":"667554feb4b2a28e08fc97bc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3eea255fa2188edca3206311f661e12c3ba547a4765d59442d2bd754767c4e9f"},"ros-jazzy-rosidl-typesupport-fastrtps-c-3.6.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449249533,"md5":"71faaf8d40837ceefde25253ef857296","name":"ros-jazzy-rosidl-typesupport-fastrtps-c","requires":[],"size":49512,"version":"3.6.1","binstar":{"package_id":"667554fffba30a11b1a862c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c9d43e1e68b1257772f4fab7dca52746d80f34fde5a37fbeee9dbcc34b0abb45"},"ros-jazzy-rosidl-core-generators-0.2.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449433972,"md5":"6737e2fb7f157e8bb6d7132804986b23","name":"ros-jazzy-rosidl-core-generators","requires":[],"size":30558,"version":"0.2.0","binstar":{"package_id":"6675555445471806a199719c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"68332629b3aa0db5151176ad7a72effb5cc93e32b70a0ea741173881f6e26d51"},"ros-jazzy-rosidl-core-runtime-0.2.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449421879,"md5":"dfc6a4c139d3365acc5fb730180560d6","name":"ros-jazzy-rosidl-core-runtime","requires":[],"size":29576,"version":"0.2.0","binstar":{"package_id":"6675555628e9267efdfc97c2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"89e6481d63978557d5fb8b931cd2b64eccadad3343758c4c488fabfbe2b7e990"},"ros-jazzy-rosidl-generator-py-0.22.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449405270,"md5":"a3a391231c40a52703fab5b616e27761","name":"ros-jazzy-rosidl-generator-py","requires":[],"size":59985,"version":"0.22.0","binstar":{"package_id":"66755558a402cb080399719c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2256c32afdc4c297b4729237017c45fd1894392deb089ac65804f92ad5f848a7"},"ros-jazzy-rosidl-typesupport-cpp-3.2.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449371066,"md5":"fa797f211c2399aede44abbbfe901dea","name":"ros-jazzy-rosidl-typesupport-cpp","requires":[],"size":47680,"version":"3.2.2","binstar":{"package_id":"6675555ecaf42f844e99719c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a8cd4de8d0e7aa1b1bc1987b7fc7c0f91a82496ee49d57317a88754c9a3740d8"},"ros-jazzy-builtin-interfaces-2.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-core-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449480953,"md5":"e606389d56d4a51325cbd3474d2f6b27","name":"ros-jazzy-builtin-interfaces","requires":[],"size":74267,"version":"2.0.2","binstar":{"package_id":"667555b35c2e9b2aa799719d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"356215529d7216e1e68a85ea64151d8f9c7866c0c20963e575a85a5cbb338fdd"},"ros-jazzy-service-msgs-2.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-core-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449581209,"md5":"c5b08a401ef2451fc1de89ac3c0e7995","name":"ros-jazzy-service-msgs","requires":[],"size":76138,"version":"2.0.2","binstar":{"package_id":"667555b4436e0c3f8aa862cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2a883bb0a31ed5b58f9e302b19b3a3bac1508d6bc243dc97c749aab9cff1d1a4"},"ros-jazzy-unique-identifier-msgs-2.5.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-core-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449549888,"md5":"d1e5736ce92efa79cdd7af9ab831402f","name":"ros-jazzy-unique-identifier-msgs","requires":[],"size":69138,"version":"2.5.0","binstar":{"package_id":"667555b5b065f00167fc97c4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d4aeee416a26d1d3fb6bf3c7a0f7eb7d98460e2b48be872628ecdab04fd2c874"},"ros-jazzy-action-msgs-2.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449665689,"md5":"354fa5e5080ce98930a28c02186c9b53","name":"ros-jazzy-action-msgs","requires":[],"size":140616,"version":"2.0.2","binstar":{"package_id":"6675561ca0563b60eb6e10c5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f3d008e0a0df8297896965fa21b341883653955265a83cdcfcb2effb4161f527"},"ros-jazzy-rosidl-default-generators-1.6.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449794824,"md5":"5319cafbf14f11c40d94b0d35cb9c5a0","name":"ros-jazzy-rosidl-default-generators","requires":[],"size":30750,"version":"1.6.0","binstar":{"package_id":"6675561db065f00167fc97c6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"64b42524f4d7d6e2662e778d975e64d04356e3671c4ec3be8d8ee8ae00e1bf57"},"ros-jazzy-rosidl-default-runtime-1.6.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-core-runtime","ros-jazzy-service-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449780882,"md5":"6d96822cd8a89a283a18c02ba9bc4c91","name":"ros-jazzy-rosidl-default-runtime","requires":[],"size":30190,"version":"1.6.0","binstar":{"package_id":"6675561e6512ff23e2fc97c3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ca41957ec33295017a8a0f94eef8a727ffc1beccf26670006750c9500f4e5ba0"},"ros-jazzy-type-description-interfaces-2.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-core-runtime","ros-jazzy-service-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449726250,"md5":"894ba3a19899565f5f951ad3007d0f00","name":"ros-jazzy-type-description-interfaces","requires":[],"size":208718,"version":"2.0.2","binstar":{"package_id":"6675561fedb927606aa862ca","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5f126691b05908d6c6e4c3746c04f90db29e3d0bfd953ce716fb3ca127f07117"},"ros-jazzy-ros2cli-test-interfaces-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450218310,"md5":"a2da41a26d1c57ad4864e9379b445259","name":"ros-jazzy-ros2cli-test-interfaces","requires":[],"size":223496,"version":"0.32.2","binstar":{"package_id":"66755669c78a5647646e10c6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4e3aa91c270f68bf2bff22a9b06a9ceed1cd2bb2a397790116fad2c57ef1c6ac"},"ros-jazzy-rosbag2-interfaces-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449940394,"md5":"b69ae5547809d944b026c0b649689e50","name":"ros-jazzy-rosbag2-interfaces","requires":[],"size":401967,"version":"0.26.6","binstar":{"package_id":"6675572445471806a199719f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2ae67caf174b1e8608fb20687849bebe52ae80d0394b2ac8bc2ade47b0c6fbc7"},"ros-jazzy-lifecycle-msgs-2.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449907660,"md5":"33adae525c8d18dd7207140661f2a5b3","name":"ros-jazzy-lifecycle-msgs","requires":[],"size":240985,"version":"2.0.2","binstar":{"package_id":"6675572653861a06946e10ca","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d85b1e53c3e7e489f547f3f9695005f89180df4c2047bfe9ac6af58e379b76c4"},"ros-jazzy-rosbag2-test-msgdefs-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449849124,"md5":"d1111cdd2c8f3a452912ba9d0b7578de","name":"ros-jazzy-rosbag2-test-msgdefs","requires":[],"size":187562,"version":"0.26.6","binstar":{"package_id":"667557267c0a2c63af7e71f9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"355559a27ce5c71d17004018f062938d9e9bad076fc0aa89480671752e0168aa"},"ros-jazzy-rosgraph-msgs-2.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449848439,"md5":"290bf1af7b3c2e5f50971f7dc1b08744","name":"ros-jazzy-rosgraph-msgs","requires":[],"size":68515,"version":"2.0.2","binstar":{"package_id":"667557271a086940c67e71f7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f1e5c502870bc6cb29e49f6dcdfb4b46b324c53a562ab91741a01dcffb437eaf"},"ros-jazzy-rcl-interfaces-2.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450019158,"md5":"bd103ff31faaadb7db28a7fdbf1c19fd","name":"ros-jazzy-rcl-interfaces","requires":[],"size":497894,"version":"2.0.2","binstar":{"package_id":"667557287435bd396ea862c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"877220803647e4617925ed46aada9bb4e3f973df7faa677e4f49a935bf787316"},"ros-jazzy-statistics-msgs-2.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450199734,"md5":"80665ea2444ebcdfabad997d00aa1e26","name":"ros-jazzy-statistics-msgs","requires":[],"size":101293,"version":"2.0.2","binstar":{"package_id":"66755728aa2f1733d16e10cd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9c01d6810780ee5fa60677a0fe7e9bd21b0fd7ff64cebdaf578466812001caa1"},"ros-jazzy-std-srvs-5.3.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449963199,"md5":"73aac0a8a5177fa0af06119f148be21e","name":"ros-jazzy-std-srvs","requires":[],"size":153534,"version":"5.3.5","binstar":{"package_id":"6675572945471806a19971a2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c86d9f223ffa14e313275c7689580a59524a194c2b288cd74dcc30db57cfec12"},"ros-jazzy-rmw-dds-common-3.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449849112,"md5":"deb40ec55f8fe48a26297202bd97ddc9","name":"ros-jazzy-rmw-dds-common","requires":[],"size":164985,"version":"3.1.0","binstar":{"package_id":"6675572a390e7254da9ce9eb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"944c07940c8937dbe11bf6b897439651fbec1a638ecb992402adc2530eb5e1bf"},"ros-jazzy-std-msgs-5.3.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450104295,"md5":"7c6743528010c4979086bfb5c1f6609f","name":"ros-jazzy-std-msgs","requires":[],"size":292544,"version":"5.3.5","binstar":{"package_id":"6675572b7f7e33f8fd9ce9e8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c1463862d6fd5739742e7a02d57a16c007ef545a48c6454db81e6317305e49ae"},"ros-jazzy-test-msgs-2.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449904793,"md5":"5c6d385dc795aacc8062cb596c353857","name":"ros-jazzy-test-msgs","requires":[],"size":753725,"version":"2.0.2","binstar":{"package_id":"6675572e1a086940c67e71f9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b6c87df6cb1faa9f0f44a18a6ccfa6c50cbd9b839d276a2c5dc9aa71814e5187"},"ros-jazzy-actionlib-msgs-5.3.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450329583,"md5":"9c5608022385a6948d26a078412a5df0","name":"ros-jazzy-actionlib-msgs","requires":[],"size":102585,"version":"5.3.5","binstar":{"package_id":"66755780fa0cef19a46e10c6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"75592d03f0868391de60092f0ef9b7c55dfe9fd9e03aa3e8683bcb2385988cf7"},"ros-jazzy-rosidl-runtime-py-0.13.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["numpy","python","pyyaml","ros-jazzy-ros-workspace","ros-jazzy-rosidl-parser","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450299798,"md5":"77b679aa44b262fba73c8cbc9581784d","name":"ros-jazzy-rosidl-runtime-py","requires":[],"size":47410,"version":"0.13.1","binstar":{"package_id":"66755782fba30a11b1a862cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e9ad6139c3b0e413f4b3b9ea37565d1783d32407849efb5d752be2d28fda4968"},"ros-jazzy-composition-interfaces-2.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rcl-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450424432,"md5":"7465a03e8506fe439f139ec00885379a","name":"ros-jazzy-composition-interfaces","requires":[],"size":201037,"version":"2.0.2","binstar":{"package_id":"667557f1b0c2d2df46a862cc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b77a8abd6ab2632160f4a28177a0b6c9e48d1df6f089a406d1298eefe5ae2e4d"},"ros-jazzy-geometry-msgs-5.3.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450459134,"md5":"bf32c8a8629316a80a78b17b0607a6f2","name":"ros-jazzy-geometry-msgs","requires":[],"size":336593,"version":"5.3.5","binstar":{"package_id":"667557f2b065f00167fc97cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fb51bc206b5ed9ebf7e708bf7eaef5061281841497044d321243f28ff01478b2"},"ros-jazzy-rmw-connextdds-common-0.22.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450381438,"md5":"22d6a5a3a6b153de0e2d5ef98f8f6235","name":"ros-jazzy-rmw-connextdds-common","requires":[],"size":51868,"version":"0.22.0","binstar":{"package_id":"667557f35c2e9b2aa79971a6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"33c8bb565798372730b4d736338e16eb850b6d9001e2a45e7a0d73a61df13086"},"ros-jazzy-rmw-cyclonedds-cpp-2.2.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450397084,"md5":"37cb6cb3c2030e04e578bb6972d06427","name":"ros-jazzy-rmw-cyclonedds-cpp","requires":[],"size":203391,"version":"2.2.2","binstar":{"package_id":"667557f46512ff23e2fc97c8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cde580a439f93c06f091057a6a40096c189095f79a71bc257dfa77eec28d1007"},"ros-jazzy-rmw-fastrtps-shared-cpp-8.4.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450298184,"md5":"0d4b694aacb24ebc3080fc06124d9b96","name":"ros-jazzy-rmw-fastrtps-shared-cpp","requires":[],"size":222142,"version":"8.4.1","binstar":{"package_id":"667557f61c6d3f3276a862c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b84a0fe20a3317dc1f6a4c7a319f095c15ae625b5e4037eb9b0a5130d220d1c4"},"ros-jazzy-diagnostic-msgs-5.3.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450685993,"md5":"b4d7bdf4e731d729d1ac3273943cc913","name":"ros-jazzy-diagnostic-msgs","requires":[],"size":186848,"version":"5.3.5","binstar":{"package_id":"667558917248a85a416e10c8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"99a5d84220a8946859f9655cf7a2347f07ed2708c15d53f9498d30a0249965bb"},"ros-jazzy-nav-msgs-5.3.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450767539,"md5":"4924555560f0ae40466788b48a36a6f8","name":"ros-jazzy-nav-msgs","requires":[],"size":275171,"version":"5.3.5","binstar":{"package_id":"667558926512ff23e2fc97cd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9519e8650aaa9fd4164f057feb79b1225b89c28168ad4f84cb5e514677a2e5e9"},"ros-jazzy-shape-msgs-5.3.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450731327,"md5":"6d4b1a3a54f246c4b499ffd72e2c1694","name":"ros-jazzy-shape-msgs","requires":[],"size":117056,"version":"5.3.5","binstar":{"package_id":"6675589428e9267efdfc97c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2e3a232dcf06a76f3af80fa8575450216d78160be7ae097622d090b342006ff0"},"ros-jazzy-tf2-msgs-0.36.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450587250,"md5":"74e01379bb6586a2c4779494328b4426","name":"ros-jazzy-tf2-msgs","requires":[],"size":235451,"version":"0.36.7","binstar":{"package_id":"66755895fba30a11b1a862cf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"778184ff1e9a146ae3da5cb09f149e288864a7dd93561934e8558d9ae7a4f4ce"},"ros-jazzy-trajectory-msgs-5.3.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450850265,"md5":"8affd2138c11449f01850cc53c5defa0","name":"ros-jazzy-trajectory-msgs","requires":[],"size":135129,"version":"5.3.5","binstar":{"package_id":"66755896edb927606aa862d0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3a44e1ba1ae67ca8350d8146a143a115c3a799f0920da5d426bc2a079d305caa"},"ros-jazzy-rmw-connextdds-0.22.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-rmw-connextdds-common","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450717335,"md5":"d96e9d68325b4f2ef5cfb0405aa06ef8","name":"ros-jazzy-rmw-connextdds","requires":[],"size":30031,"version":"0.22.0","binstar":{"package_id":"667558b3b0c2d2df46a862ce","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ae97b443a6c6d3c933caf059f7ede7e0b84b29c5f730d1f3c8c0b939670347fc"},"ros-jazzy-rmw-fastrtps-cpp-8.4.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450671942,"md5":"77c42aae13ca38bef18ec6f833b39d13","name":"ros-jazzy-rmw-fastrtps-cpp","requires":[],"size":136633,"version":"8.4.1","binstar":{"package_id":"667558b5329f4685506e10c8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"16c78b86e61376d1729d0f48e6e4ba231f7a0c4b78f1c8266abe14bd3f69d6ab"},"ros-jazzy-rmw-fastrtps-dynamic-cpp-8.4.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450589919,"md5":"ab96a1785e3cb2efd00eb28e0240c3b3","name":"ros-jazzy-rmw-fastrtps-dynamic-cpp","requires":[],"size":157502,"version":"8.4.1","binstar":{"package_id":"667558b67248a85a416e10ca","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"74cf1689e47cb5d9fa05951ed765f32ac2c7c182bd32f135f4bb78eb6e1931bd"},"ros-jazzy-sensor-msgs-5.3.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450733528,"md5":"714ad7c46ff355c2f80c4fa98be07946","name":"ros-jazzy-sensor-msgs","requires":[],"size":482734,"version":"5.3.5","binstar":{"package_id":"667558b728e9267efdfc97cc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f0da6bf9ef2f166c60c0d07030cd2f7b16192fabe9dba17039aff537724075b6"},"ros-jazzy-tf2-0.36.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450661791,"md5":"db3a455b2afbe2f543f0e53bbec5879c","name":"ros-jazzy-tf2","requires":[],"size":125047,"version":"0.36.7","binstar":{"package_id":"667558b81c6d3f3276a862cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b6e9215a59140a66190d08fcb453fba18839447862e08355396e0c3f663a15e9"},"ros-jazzy-rmw-implementation-2.15.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450922261,"md5":"2cc8406892516ad4cab8494ba9a954cc","name":"ros-jazzy-rmw-implementation","requires":[],"size":48792,"version":"2.15.4","binstar":{"package_id":"667559a01ce5d6200723b4eb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b67d6ccb9ea912a4a199895ad3c3672369b8990db14984a41c82eeb914bc570e"},"ros-jazzy-sensor-msgs-py-5.3.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["numpy","python","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736451139230,"md5":"ff312fb5a469d970a7a139c84cce5a46","name":"ros-jazzy-sensor-msgs-py","requires":[],"size":30334,"version":"5.3.5","binstar":{"package_id":"667559a1ee29441898ec0013","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"dd54b450b8a3657941bfc98fb06599a366bdb8da6471d24e4af2b43228c50e0d"},"ros-jazzy-stereo-msgs-5.3.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736451106455,"md5":"c131bfe8ae09d57f0ef9aeb44199636d","name":"ros-jazzy-stereo-msgs","requires":[],"size":79505,"version":"5.3.5","binstar":{"package_id":"667559a37248a85a416e10d0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4ee0c0532fca6f0417353f0d3c8ff2ddbf9966353a55aa6d7dc12b214ca5e6ac"},"ros-jazzy-tf2-eigen-kdl-0.36.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","python","ros-jazzy-orocos-kdl-vendor","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450915867,"md5":"a89492fb40200cf8e37d550d416e33af","name":"ros-jazzy-tf2-eigen-kdl","requires":[],"size":38832,"version":"0.36.7","binstar":{"package_id":"667559a4183e39764b23b4ec","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6495125da63f512ace211c90bbf743e45bbb169b3562dcbfe8345850dd27c10a"},"ros-jazzy-visualization-msgs-5.3.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736451000295,"md5":"49613250f8231decc96b8688a656fc05","name":"ros-jazzy-visualization-msgs","requires":[],"size":328174,"version":"5.3.5","binstar":{"package_id":"667559a5183e39764b23b4ee","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7e0086499807ea17ec98815aa616db3a74904d5ee208ff8a3a4d1bd8509e1b32"},"ros-jazzy-common-interfaces-5.3.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736451514437,"md5":"f388937ee62ea3a195746c48d46f5100","name":"ros-jazzy-common-interfaces","requires":[],"size":24846,"version":"5.3.5","binstar":{"package_id":"667559e74aa2bfcb836e10c7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"181fdcb0ab66d479bcabc6c34fe3497acf333281ef77b073d42a0a015e6c2c05"},"ros-jazzy-rcl-9.2.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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","__osx >=10.14","libcxx >=19","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.8.0,<0.9.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736451444095,"md5":"a7448faf272902ff44c88243b3e8dd88","name":"ros-jazzy-rcl","requires":[],"size":185619,"version":"9.2.4","binstar":{"package_id":"667559e8bba1dce73d23b4eb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7ecf9c1930e1a125d4c937778a6901d255b3bbbf7592447f060e5aec1a701316"},"ros-jazzy-libstatistics-collector-1.7.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736451560944,"md5":"e8ced1c2dff139a9b45fe4e8a438cc81","name":"ros-jazzy-libstatistics-collector","requires":[],"size":54823,"version":"1.7.4","binstar":{"package_id":"667563fa11d9f171577e603c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"46543c8f4d6b4419bfce9a1a1b06be62c06f199c4d110ba79b9fb9a186d2ce2f"},"ros-jazzy-rcl-action-9.2.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736451647246,"md5":"4b907f30be97021eb46eb7807e445339","name":"ros-jazzy-rcl-action","requires":[],"size":71076,"version":"9.2.4","binstar":{"package_id":"667563fc62643526347e603a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8582af7f3a2f1d84fa3bd5a8c821373211fef68b985b2193a4b25b921e850bd6"},"ros-jazzy-rcl-lifecycle-9.2.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736451622808,"md5":"3b043acfc674fda997e53a8ce4f8c787","name":"ros-jazzy-rcl-lifecycle","requires":[],"size":52943,"version":"9.2.4","binstar":{"package_id":"667563fde6378210207e603b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7f839de9c7f4a376a083e7df2f3b446dad0d09b6e85d462d0e6fb5e86a915c06"},"ros-jazzy-rclcpp-28.1.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736451692013,"md5":"c3f7418dcf0a3168a5c77c37622e703c","name":"ros-jazzy-rclcpp","requires":[],"size":815533,"version":"28.1.6","binstar":{"package_id":"667564db12fd2a45bb74d8a4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0f119d1f6381219769b61b1f98e5068ae5b1b466eb912c49d93c033d70d0173f"},"ros-jazzy-rclpy-7.1.3-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736451871328,"md5":"eb26600630f3589113394eeadee1a701","name":"ros-jazzy-rclpy","requires":[],"size":564527,"version":"7.1.3","binstar":{"package_id":"667564ddb473691d5cd428cf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1752e3ace4c93767fd6609ffdc9e3465c8cfaf783d717a8f5fd4ad6feb515713"},"ros-jazzy-rclcpp-action-28.1.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452079713,"md5":"2497de7b30e72f986c0394d61b2a3e11","name":"ros-jazzy-rclcpp-action","requires":[],"size":102546,"version":"28.1.6","binstar":{"package_id":"6675652842463ba6eaecef13","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"576b1fea4f6e284e686786b9cc4409d60652016ddb57a98ba3866a47a7dc04a8"},"ros-jazzy-tf2-py-0.36.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452095319,"md5":"319919f36ee7d6cd1a9c32f65a3d0661","name":"ros-jazzy-tf2-py","requires":[],"size":49675,"version":"0.36.7","binstar":{"package_id":"66756529adafcbac3505ef06","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"98ce7b57d79c15d31fe27018c381e15e3876133ac4ca3f3263f2cbbaa04d2e0a"},"ros-jazzy-launch-ros-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452111150,"md5":"5871c8857944d1f5fd977ac9ba739fec","name":"ros-jazzy-launch-ros","requires":[],"size":124794,"version":"0.26.6","binstar":{"package_id":"667565550d17e7c9e505ef04","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4919a28ebc5e65b8745102a7e744641842cefd096776b85e5dd41d955bbc6e93"},"ros-jazzy-rclcpp-components-28.1.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452152298,"md5":"7ce0332bf131a65b8b3b4b2225e6806e","name":"ros-jazzy-rclcpp-components","requires":[],"size":118863,"version":"28.1.6","binstar":{"package_id":"6675655662643526347e603f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8f281885ad461f597e24d6ac400f509e5ac029df36a60dbb95d511d7ba156246"},"ros-jazzy-rclcpp-lifecycle-28.1.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452016720,"md5":"2f90efd25baa3e2c5ca081a16e23281b","name":"ros-jazzy-rclcpp-lifecycle","requires":[],"size":108285,"version":"28.1.6","binstar":{"package_id":"667565578b21dec46674d8a0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4ab63faf41580e2b415a6a3ec5f3f98c181867b60a0502bd06a8289823dbec8c"},"ros-jazzy-ros2cli-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["argcomplete","importlib-metadata","packaging","psutil","python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452132479,"md5":"3d2d74151b7b80b6e5840c88d5f970f6","name":"ros-jazzy-ros2cli","requires":[],"size":76629,"version":"0.32.2","binstar":{"package_id":"6675655811d9f171577e6042","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4d21a4650f290da47b4e9927f1a87b1a74962ddbfecbff741f977ff0e88e11bc"},"ros-jazzy-rosbag2-test-common-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-test-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452015646,"md5":"6cb4297653ba0831f15fc20deb0c38db","name":"ros-jazzy-rosbag2-test-common","requires":[],"size":46323,"version":"0.26.6","binstar":{"package_id":"667565599459a6c7078f3f29","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"50ece4a2190fdf407ccb5e8210e3c63d083701aea42b57d91c3f194eb16170af"},"ros-jazzy-ros2multicast-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452783259,"md5":"16c3e86560e70f7d167c868d96f2bac6","name":"ros-jazzy-ros2multicast","requires":[],"size":25028,"version":"0.32.2","binstar":{"package_id":"667565919459a6c7078f3f2b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"435f8eac039019816dbf627ed4f62a5288c6647f0ff03cc452aa038dd5464044"},"ros-jazzy-launch-testing-ros-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452660412,"md5":"ee65032b93d8025f385c7729da7cf8f9","name":"ros-jazzy-launch-testing-ros","requires":[],"size":52177,"version":"0.26.6","binstar":{"package_id":"667565cc0005c4c8a48f3f29","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2745166c0446781b24e5106ca7a3d2a5032eaffc16699443f92355f0fbd1231f"},"ros-jazzy-message-filters-4.11.3-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452693473,"md5":"35e6e2929c39d1f6316cccf6e04428bf","name":"ros-jazzy-message-filters","requires":[],"size":75082,"version":"4.11.3","binstar":{"package_id":"667565d03c52e400df7e603b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5bb0d87048511adf13a030aa72af35e54b4abc2149ac4ef74052569c30d60cc7"},"ros-jazzy-ros2lifecycle-test-fixtures-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452718923,"md5":"f345b55ed9c567e822d003eeac489ad6","name":"ros-jazzy-ros2lifecycle-test-fixtures","requires":[],"size":40982,"version":"0.32.2","binstar":{"package_id":"667565d15db09bb2ddd428d1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ffc6431b52fa34fb24d25be097479d0e93b317589e299b30a211b0bcceb45fc2"},"ros-jazzy-rosbag2-storage-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452747151,"md5":"ae0abf0cea5ab6ff067e540722e2fc59","name":"ros-jazzy-rosbag2-storage","requires":[],"size":218910,"version":"0.26.6","binstar":{"package_id":"667565d3e0ff001ead05ef06","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"dabf702c4aed1696b1a641ebefe673e0b9dc44fce593d87f13c2502242f55ced"},"ros-jazzy-tf2-ros-py-0.36.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452659332,"md5":"d8bde90f5e1e7a48e4c07dcec6386d8d","name":"ros-jazzy-tf2-ros-py","requires":[],"size":48925,"version":"0.36.7","binstar":{"package_id":"667565d530d0b1886474d8a5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"dc980c871f67c3f4228a2a83ba6e2b4f69524f56c0b650c9c6a15843a6e4f0ca"},"ros-jazzy-ros2action-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453881535,"md5":"2bc1a0593e6b3e36dc13dc11c3fff158","name":"ros-jazzy-ros2action","requires":[],"size":45351,"version":"0.32.2","binstar":{"package_id":"6675661c8368fee6d4d428d1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d106785b7661625cdb0a4b34bf7835b4a57477493d30f4999e7f65e7b444999a"},"ros-jazzy-tf2-tools-0.36.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453854776,"md5":"dd9437e9b693fdddfee870e46b686f48","name":"ros-jazzy-tf2-tools","requires":[],"size":23642,"version":"0.36.7","binstar":{"package_id":"6675661db4dec4cfa67e603e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7e17f53e730f270199c3922b9226787a79ba5526ab87413fb8c4aa7c432d4a9b"},"ros-jazzy-ros2doctor-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453866162,"md5":"9a1d06b1444815e94617107defe29457","name":"ros-jazzy-ros2doctor","requires":[],"size":67746,"version":"0.32.2","binstar":{"package_id":"6675663aadafcbac3505ef08","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ec5f6581805674bd00546bdb598eaa5ddcbbe8ecbb71f703a8a96e345c81e03a"},"ros-jazzy-ros2interface-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453849975,"md5":"6c358ec199e8c44f0eb9840bf46da19e","name":"ros-jazzy-ros2interface","requires":[],"size":45652,"version":"0.32.2","binstar":{"package_id":"6675663ccfebff9e53ecef13","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4f61f4bb7d1f10230ce51e7f185f4ee01cc1a81ef3fc76d8c733080a9d9093cb"},"ros-jazzy-ros2node-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453577559,"md5":"609d165a669a299eb0c62f0b98c78a58","name":"ros-jazzy-ros2node","requires":[],"size":42096,"version":"0.32.2","binstar":{"package_id":"6675663dc38b408aa38f3f29","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8636551e9ca63b14a7b7fe49988e273100811bcd98954ac45cf7bf557ae34057"},"ros-jazzy-ros2pkg-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453498575,"md5":"ed63889b7a33fef5f8db8e4f746415d2","name":"ros-jazzy-ros2pkg","requires":[],"size":57056,"version":"0.32.2","binstar":{"package_id":"6675663eebab3d2a707e603e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"528432772bd6e12a5dc9dd47a68790a2dae8e81fdffa31ae36444f63bc3a97f6"},"ros-jazzy-ros2service-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","pyyaml","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-rosidl-runtime-py","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453550286,"md5":"4189dbd29e537916613a23cbabd318e4","name":"ros-jazzy-ros2service","requires":[],"size":50425,"version":"0.32.2","binstar":{"package_id":"6675663fadafcbac3505ef0a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c6dcc1955b8a4bc2e51596106616021d63821089fd7d49b523379246f42fdc34"},"ros-jazzy-ros2test-0.6.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453711870,"md5":"0edb88b58ce1f0b630b8bb0d6a3b512e","name":"ros-jazzy-ros2test","requires":[],"size":33662,"version":"0.6.0","binstar":{"package_id":"66756674cfebff9e53ecef16","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"93b7fcaed47f21bb10f02b93f6381692011117556370f4a7e88336bcf01a8e90"},"ros-jazzy-ros2topic-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["numpy","python","pyyaml","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-rosidl-runtime-py","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453807892,"md5":"0b0b59b0431ae4d5cef7bba90c004a85","name":"ros-jazzy-ros2topic","requires":[],"size":72792,"version":"0.32.2","binstar":{"package_id":"66756676401c9bca4cecef13","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fd02ac0f3edb0fdc086c92f7c938da96f598106908fb229d52475c258f4ce879"},"ros-jazzy-rosbag2-storage-mcap-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453497174,"md5":"751d0c982b1c42e347af92d46a531457","name":"ros-jazzy-rosbag2-storage-mcap","requires":[],"size":167327,"version":"0.26.6","binstar":{"package_id":"6675667aee5d41cd0a2c5d5a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"52bae684aa2acf3cc25bd915f8062709beba6ce5e427e8906859c373e899f0c3"},"ros-jazzy-rosbag2-storage-sqlite3-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453896775,"md5":"564a4d13d52de3c702a332583e3eddff","name":"ros-jazzy-rosbag2-storage-sqlite3","requires":[],"size":202222,"version":"0.26.6","binstar":{"package_id":"6675667cbc0b92384a2c5d5a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b822d9ce97b79ac4ece943a51d646d88ee2c6810175a0db529d1b8291d0563c1"},"ros-jazzy-tf2-ros-0.36.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453598032,"md5":"c42045fe4fa0aa11b68fa8a87735cebf","name":"ros-jazzy-tf2-ros","requires":[],"size":356099,"version":"0.36.7","binstar":{"package_id":"6675668086a766acf9ecef15","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"14f29cdf61ae3b3eafddd7cb435ea079cb9e9a9dc437eba9279819fd84db1f9c"},"ros-jazzy-tf2-bullet-0.36.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["bullet","python","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454505895,"md5":"0675c46915e4dd352993c0253850d821","name":"ros-jazzy-tf2-bullet","requires":[],"size":40215,"version":"0.36.7","binstar":{"package_id":"667566c75505ae675c9f4a28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"425e3cc4212bb694894c6516e8ae5127bf69b5bb190e116fa86060f0058cbd25"},"ros-jazzy-tf2-sensor-msgs-0.36.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454154538,"md5":"82fa8e898965cff7fc47e8aff3bb2f00","name":"ros-jazzy-tf2-sensor-msgs","requires":[],"size":45978,"version":"0.36.7","binstar":{"package_id":"667566c9687d8fb0489f4a28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"554f6098ec9c5cec5414643b1092c0db81c065347e61544313c5484643bc4c89"},"ros-jazzy-ros-testing-0.6.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454401214,"md5":"38c5cd48582e188bab254d5038bc535e","name":"ros-jazzy-ros-testing","requires":[],"size":35863,"version":"0.6.0","binstar":{"package_id":"667566e5da8f98fa7cecef14","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bade328fc28730c19077be6d2a054d4e14f63c020cff973f857493b11ce61a32"},"ros-jazzy-ros2launch-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454149809,"md5":"d4107b7db5a9e0f680a2bc40ad75055a","name":"ros-jazzy-ros2launch","requires":[],"size":45595,"version":"0.26.6","binstar":{"package_id":"667566e875511e7fcc9f4a28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"37f1cc025555bedc399622bf1ebccd9242b19f344816c4c877d90c1d05e935a7"},"ros-jazzy-ros2lifecycle-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454414223,"md5":"fdc7083ce2d8416e248910c4cb58c04d","name":"ros-jazzy-ros2lifecycle","requires":[],"size":44203,"version":"0.32.2","binstar":{"package_id":"667566ea1ab8f2d984d428cf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e39afe8f8f1bd98853cc85ac0d7be0424c6c218a7a811433b0999f3018b9c6f7"},"ros-jazzy-ros2param-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454342857,"md5":"91ee85772ef418b3d85ba83c367cd932","name":"ros-jazzy-ros2param","requires":[],"size":49418,"version":"0.32.2","binstar":{"package_id":"667566ec7a9b2478f19f4a28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"590028f2268fbcc174064f89b9f50b4f5ee01b27b72a758236f64a571d44ff21"},"ros-jazzy-ros2run-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-ros2pkg","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454315782,"md5":"36f19bb5e6a45683e7d4baf36cce913c","name":"ros-jazzy-ros2run","requires":[],"size":24154,"version":"0.32.2","binstar":{"package_id":"667566ee878498f0f8b85be6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"568aa0ae32d34360b877a07aad6710add5287e01f040a1eefb482fb07a329735"},"ros-jazzy-robot-state-publisher-3.3.3-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454359424,"md5":"3a3e0e0ab1c99ce3cb8ea46c484f78de","name":"ros-jazzy-robot-state-publisher","requires":[],"size":233524,"version":"3.3.3","binstar":{"package_id":"667566f5795dd318e0ee03bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9a6f21f74aebc2da3f5c963af0ffba0596e34070cc1b697fec02ad0bb1206d8d"},"ros-jazzy-rosbag2-storage-default-plugins-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosbag2-storage-mcap","ros-jazzy-rosbag2-storage-sqlite3","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454231882,"md5":"63c011cbf3311404bce770beb22402ea","name":"ros-jazzy-rosbag2-storage-default-plugins","requires":[],"size":20828,"version":"0.26.6","binstar":{"package_id":"667566f825603a3d39ee03bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a3ed0b536aa88f2b4b3bccb50cde91d8e99435982b2791e4d988170b65956f13"},"ros-jazzy-tf2-eigen-0.36.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","python","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454271426,"md5":"7706b0b24797d1aca4aa8ae04d68761c","name":"ros-jazzy-tf2-eigen","requires":[],"size":41917,"version":"0.36.7","binstar":{"package_id":"667566fb39c3d39b8d2c5d5a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8a36676ae7459d7db9af2f396da9fcb8a7b8cd8aea6050ff2e0fc9c8ae44bcdf"},"ros-jazzy-tf2-geometry-msgs-0.36.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454199650,"md5":"4699753373b18542b4ce5e389cb439f0","name":"ros-jazzy-tf2-geometry-msgs","requires":[],"size":53973,"version":"0.36.7","binstar":{"package_id":"667566fc5505ae675c9f4a2a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"11d50502e036efab6b8aa3238071f21f04d883381ea843970fa55a55a696fc76"},"ros-jazzy-tf2-kdl-0.36.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454252274,"md5":"396ebd4e12331050b44a30a8c1a5f74f","name":"ros-jazzy-tf2-kdl","requires":[],"size":43782,"version":"0.36.7","binstar":{"package_id":"667566fe2f207b1976ee03bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cfa385415732783d16b23cbe4b61b05648e0eaca45028f12f0f4e28cb1c05a96"},"ros-jazzy-geometry2-0.36.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455199774,"md5":"4d2ad6bf69a3361a08b7d28a00aeaa08","name":"ros-jazzy-geometry2","requires":[],"size":20910,"version":"0.36.7","binstar":{"package_id":"6675676912fd2a45bb74d8ae","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f908c1ce3f0799e23115098323c7e6a2bc796e1ba789fc9e5d2a7d6a02d10b50"},"ros-jazzy-ros2component-0.32.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455190927,"md5":"c346defab27ee146f442cc67c9dc293c","name":"ros-jazzy-ros2component","requires":[],"size":38148,"version":"0.32.2","binstar":{"package_id":"6675676c4dff35ef709f4a2b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"993f257e058f67c1c739e87a12671482c6b961e43d158b269e9f964ccc045340"},"ros-jazzy-rosbag2-cpp-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455207653,"md5":"7f59682e0c82827dd5faf3d6f7a988c3","name":"ros-jazzy-rosbag2-cpp","requires":[],"size":283636,"version":"0.26.6","binstar":{"package_id":"6675676e8368fee6d4d428d5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"61d0c19c657cdcb294ac65ed6696d25b00bafa3f0c67ac8f6191207a94800daa"},"ros-jazzy-sros2-0.13.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455149094,"md5":"5a061e333873717bc14cf88ab52d33c4","name":"ros-jazzy-sros2","requires":[],"size":74577,"version":"0.13.2","binstar":{"package_id":"66756770b646f9b385b85be6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4f0fcda25a252fe975769784698a443bf634e1d6eaa1d74a0f6304033939d2e7"},"ros-jazzy-ros2cli-common-extensions-0.3.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455420519,"md5":"867dd0064c5766353478f0943d8b6647","name":"ros-jazzy-ros2cli-common-extensions","requires":[],"size":24872,"version":"0.3.0","binstar":{"package_id":"667567c99c704a24759f4a2a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f37a57e028c8f5d5da0fdbcab5eea15bfc45abfcd3771c15e50654503f3b35db"},"ros-jazzy-rosbag2-compression-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455468228,"md5":"b6b6f696f647df62240aeb1ff40cc6f7","name":"ros-jazzy-rosbag2-compression","requires":[],"size":165880,"version":"0.26.6","binstar":{"package_id":"667567caa4dcceecbbee03bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fe7e405ea7f775f7661f8d8a64f5c609ff2cb79e62fcde2b3df6654be384c903"},"ros-jazzy-sros2-cmake-0.13.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-sros2","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736456479551,"md5":"13f4c2922bc3e45addfcfc7f383ba95c","name":"ros-jazzy-sros2-cmake","requires":[],"size":35824,"version":"0.13.2","binstar":{"package_id":"667567cb61e7b2aa7aee03c1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7578c802e636d358b1a9c66db2feff24216db2b2d4dd4c9d3cf731726a21bcf7"},"ros-jazzy-ros-core-0.11.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736456662835,"md5":"440ee26ab15c487477a05f73bd0362e9","name":"ros-jazzy-ros-core","requires":[],"size":21508,"version":"0.11.0","binstar":{"package_id":"66756872e84fd49cacb85be6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cf5f9b1897fd117a7a3d7fee7caec8d9ec0ef94cd1446aba121ea1b0afecca86"},"ros-jazzy-rosbag2-compression-zstd-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736456541357,"md5":"ae7e465ff9d58099df88776ff058e5b7","name":"ros-jazzy-rosbag2-compression-zstd","requires":[],"size":66599,"version":"0.26.6","binstar":{"package_id":"66756875d19e4472c82b635b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"94b4b23fd73f6cf556f0e6a607d06b232507fafcec032865260b811636f69247"},"ros-jazzy-rosbag2-py-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736456886592,"md5":"bbd9397cf73a8b53f172e87abf832ff1","name":"ros-jazzy-rosbag2-py","requires":[],"size":514640,"version":"0.26.6","binstar":{"package_id":"667568788094b58af26d0c8e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"09317ebcb1791a9a33b0eee8331233b274811c7ec4c9e1668d423683386192d8"},"ros-jazzy-rosbag2-transport-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736456707287,"md5":"0533899357d6274b7a369d03d10097ed","name":"ros-jazzy-rosbag2-transport","requires":[],"size":404506,"version":"0.26.6","binstar":{"package_id":"6675688d30d72cf00ad428cf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d415d29f0199c16cd390ce0444517f915569649df916f421b68e852ea6223822"},"ros-jazzy-ros-base-0.11.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736457138071,"md5":"a6c2952d4e902e68e5eb5e81d4e4db09","name":"ros-jazzy-ros-base","requires":[],"size":20841,"version":"0.11.0","binstar":{"package_id":"667568dd4082f06455b9f15e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5ae48ee4f05e8747aeb5490bfc3e11ea9961e24f3fa41637a2539da5ba7b2686"},"ros-jazzy-ros2bag-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736457000574,"md5":"d89658ef1adf5ae5800f6b3ad3bcd37a","name":"ros-jazzy-ros2bag","requires":[],"size":68152,"version":"0.26.6","binstar":{"package_id":"667568deee5d41cd0a2c5d64","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"edb2a9cc96a30c71d27cba8803d63c7d5efc3e84540f09d9e69a2e55f15c71c0"},"ros-jazzy-rosbag2-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736457072155,"md5":"4bf33eccb400da74aaceea478cb18cd3","name":"ros-jazzy-rosbag2","requires":[],"size":33200,"version":"0.26.6","binstar":{"package_id":"667568df46886cd670aa1de2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2f95a89c7f5de1d8a02f69f6f4b06e1a44901163393cdd7c1b1ad31f96119282"},"ros-jazzy-rosbag2-tests-0.26.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736457053904,"md5":"e2f94b2d21300c5e53df7120cd711850","name":"ros-jazzy-rosbag2-tests","requires":[],"size":39502,"version":"0.26.6","binstar":{"package_id":"667568e089a0a00d43ee03c2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bb1266a9e427ba4fd741cde52c29213e62bdc106da5fee89a285388550a304fa"},"ros-jazzy-image-geometry-4.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["deprecated","libopencv","py-opencv","python","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","py-opencv >=4.10.0,<5.0a0","libopencv >=4.10.0,<4.10.1.0a0","xorg-libx11 >=1.8.10,<2.0a0","xorg-libxext >=1.3.6,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736451145253,"md5":"39ea29a09bc284ad775836658dfb2b4f","name":"ros-jazzy-image-geometry","requires":[],"size":72228,"version":"4.1.0","binstar":{"package_id":"66756da64b132e6fb114a0fd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"06883f47dc3b9b5b5ed9ffdcf3c55859ce1ac4cca6e9c381048ca03182066d1b"},"ros-jazzy-examples-rclcpp-multithreaded-executor-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452387750,"md5":"a4752ba36ebe2c0a8498cb05b0e04550","name":"ros-jazzy-examples-rclcpp-multithreaded-executor","requires":[],"size":141820,"version":"0.19.4","binstar":{"package_id":"66756da8ac2b9777ec14a0fd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"da8bdbbae25e9121b6366e3d2cb6b1e214311166d44abe67e85a738cd07917da"},"ros-jazzy-pcl-msgs-1.0.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736451175936,"md5":"589d8947b76605f293119454a04b7370","name":"ros-jazzy-pcl-msgs","requires":[],"size":155437,"version":"1.0.0","binstar":{"package_id":"66756da8c4aa987a63ee03bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b42da1415317ab55cfce75d6150a665604083676f7cdcbe57925d587338395a7"},"ros-jazzy-examples-rclpy-executors-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452399338,"md5":"2bc4b2b8d4690a9f5503e0de08f3fd81","name":"ros-jazzy-examples-rclpy-executors","requires":[],"size":27710,"version":"0.19.4","binstar":{"package_id":"66756daaef58f981caf03a51","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"78d008daaaf2bf3815cefc7f214f8c2cb93c4317bd4b03b8a7b4328eeca51c1a"},"ros-jazzy-examples-rclpy-minimal-publisher-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452335844,"md5":"7d1951917b1362cf45a65ccc01913d3b","name":"ros-jazzy-examples-rclpy-minimal-publisher","requires":[],"size":21839,"version":"0.19.4","binstar":{"package_id":"66756daba4dcceecbbee03ce","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e9333e0eebfd7904c97afbfd741acfeb5ed930c83262d1a372d7eadd0c8eb340"},"ros-jazzy-teleop-twist-keyboard-2.4.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452183754,"md5":"6ef94d7d8566c6eb46bba816efe3e6ce","name":"ros-jazzy-teleop-twist-keyboard","requires":[],"size":22502,"version":"2.4.0","binstar":{"package_id":"66756dadc6d1458eac51b582","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"06b9cd1aab43229d23fce179f75907dcbf55496a65a3b44df62cb1603ed67da4"},"ros-jazzy-examples-rclpy-minimal-subscriber-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452333493,"md5":"9e12013874e004cc3f6a830d4518ee94","name":"ros-jazzy-examples-rclpy-minimal-subscriber","requires":[],"size":21332,"version":"0.19.4","binstar":{"package_id":"66756dae78625d52798ce548","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cea69cb72d8d4a0dafd580161a9eb1c106195bf1b69e15da21cc68e9cef29550"},"ros-jazzy-image-tools-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","xorg-libxext >=1.3.6,<2.0a0","python_abi 3.11.* *_cp311","libopencv >=4.10.0,<4.10.1.0a0","xorg-libx11 >=1.8.10,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","py-opencv >=4.10.0,<5.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454082147,"md5":"1907ae8db7f1c11d33275c8357a62374","name":"ros-jazzy-image-tools","requires":[],"size":242632,"version":"0.33.5","binstar":{"package_id":"66756daffe5014cb182c5d5b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"791ac3c4ee21fc441192b984dae1bc810ca2e219d61e39d6614fdfaca3a6f63b"},"ros-jazzy-gz-cmake-vendor-0.0.8-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["gz-cmake3","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","libgz-cmake3 >=3.5.3,<4.0a0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077222604,"md5":"77a61ec24e03381fe739cbc00bbb47cf","name":"ros-jazzy-gz-cmake-vendor","requires":[],"size":22795,"version":"0.0.8","binstar":{"package_id":"66756dc2ffb31659d6f03a52","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c11bcef2de2e81ab5c27fde718b4a8d540a45c1eaa2984e208299f65ed43714d"},"ros-jazzy-laser-geometry-2.7.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452234953,"md5":"4026f18e5ca2a59611811590c395ce9d","name":"ros-jazzy-laser-geometry","requires":[],"size":57631,"version":"2.7.0","binstar":{"package_id":"66756dc3a6db11e87cee03c0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5a4f3c007d2d1d2d898d11617859bc9f212569af4e9064b05bf1993602897120"},"ros-jazzy-map-msgs-2.4.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736451333561,"md5":"d210e058ccd4a64d71ab7149ab580f84","name":"ros-jazzy-map-msgs","requires":[],"size":308679,"version":"2.4.1","binstar":{"package_id":"66756dc7f55dfda5a251b582","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"87ca49c96895c13792edb4fc86614cd28a0acb4a7003264a7a2e0ba75ccc3ad4"},"ros-jazzy-point-cloud-transport-4.0.3-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453559898,"md5":"df34ab15f3b92d422d3229bb2a0d8efe","name":"ros-jazzy-point-cloud-transport","requires":[],"size":361709,"version":"4.0.3","binstar":{"package_id":"66756dcee885780c0eee03c1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"51ea4d13bcf66d34fad3d5526ddd4c77541ea0a58f2a6b69eb3f3a62c020fd51"},"ros-jazzy-tango-icons-vendor-0.3.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078127064,"md5":"094b60cdf7f36830cc96b9871af4c027","name":"ros-jazzy-tango-icons-vendor","requires":[],"size":528672,"version":"0.3.0","binstar":{"package_id":"66756dd0ab52a592462c5d5f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e7c599e468af86b8f1353d2094b47edbde550f16d1b51ca4fced6131079dada7"},"ros-jazzy-intra-process-demo-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["libopencv","py-opencv","python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","xorg-libx11 >=1.8.10,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","xorg-libxext >=1.3.6,<2.0a0","py-opencv >=4.10.0,<5.0a0","libopencv >=4.10.0,<4.10.1.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452254393,"md5":"8cf8be6264c1c0ea44bbec0372645a31","name":"ros-jazzy-intra-process-demo","requires":[],"size":376492,"version":"0.33.5","binstar":{"package_id":"66756dda9c941af3348ce548","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e1e74f0d213f0f17a39f518f518b30669b722e80543a82bfbacaf28182d429c4"},"ros-jazzy-lifecycle-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455251494,"md5":"d75073a7310453e71bba747694ac00f5","name":"ros-jazzy-lifecycle","requires":[],"size":207653,"version":"0.33.5","binstar":{"package_id":"66756ddc42233b5cf4aa1dea","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"83669cc0c9a9cea36dda10cc9884fc94565fb59ac3fe56b5eb2104c1fb9508e4"},"ros-jazzy-logging-demo-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454041238,"md5":"e98f604d2a04c22f75b8f55b52b8aad4","name":"ros-jazzy-logging-demo","requires":[],"size":191182,"version":"0.33.5","binstar":{"package_id":"66756dde0b8eac60dd9f4a28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0c6860a79ea28b2319c2317a53182cb48879e4699e4d156a68dad62fa8c45c16"},"ros-jazzy-action-tutorials-interfaces-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450040866,"md5":"d227f19b5f97593d14e7d16b4904e7c5","name":"ros-jazzy-action-tutorials-interfaces","requires":[],"size":169254,"version":"0.33.5","binstar":{"package_id":"66756dde9b7e1b325c14a0fe","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9cddb833567f3177a982f2a204fcbeb2e8f40de866a8b7a29afcfd3fb9021ec4"},"ros-jazzy-dummy-map-server-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-nav-msgs","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452249260,"md5":"2b05ec91aae706aef419d80c6e41a252","name":"ros-jazzy-dummy-map-server","requires":[],"size":78852,"version":"0.33.5","binstar":{"package_id":"66756de0880576047aaa1de7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e4b6ec3c2d3d976f7614fe2eef25ae86fbecc25afb3dcd45595598b2ba11ce7f"},"ros-jazzy-quality-of-service-demo-py-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452244091,"md5":"40604b40f4d66693ce5bd8930d572fdd","name":"ros-jazzy-quality-of-service-demo-py","requires":[],"size":34829,"version":"0.33.5","binstar":{"package_id":"66756de088da76b42d9f4a28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3fce28dd631d0fd036f494fcd9a24124414bbc6440b741236b84acd82be3491c"},"ros-jazzy-topic-monitor-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452802715,"md5":"19db1bcf1056bca9c16b37230f3ac2a8","name":"ros-jazzy-topic-monitor","requires":[],"size":49026,"version":"0.33.5","binstar":{"package_id":"66756de203450ee206ee03bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"379b03628ee4f1d6c12cab385db76450a5c2247946631bd81269eb0c240cfd89"},"ros-jazzy-dummy-sensors-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452199543,"md5":"b7cae9518c112382f305269cabd8e342","name":"ros-jazzy-dummy-sensors","requires":[],"size":103478,"version":"0.33.5","binstar":{"package_id":"66756de2dc74417f23aa1de6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"eca00eba6ff5405413dbab8ea2a75a0b668e5b4d00e66c1f92700b83323313ab"},"ros-jazzy-pendulum-msgs-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450081258,"md5":"7773ee4ae8394b164f14a847bc075196","name":"ros-jazzy-pendulum-msgs","requires":[],"size":92956,"version":"0.33.5","binstar":{"package_id":"66756de40e41b4d892899849","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f6c32d279c69d95f0b1b84591f56544d1f4e1f65b46556b7cefea8a9bf33c3ed"},"ros-jazzy-turtlesim-1.8.3-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","xorg-libxext >=1.3.6,<2.0a0","qt-main >=5.15.15,<5.16.0a0","python_abi 3.11.* *_cp311","xorg-libx11 >=1.8.10,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452663354,"md5":"f72a930a3ef545733a0d003cbd2d1827","name":"ros-jazzy-turtlesim","requires":[],"size":731043,"version":"1.8.3","binstar":{"package_id":"66756de5256864bea9899847","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9648746b341d7f9d2fd95f71b6856dd81cfb313043625cfd043f81432d66ab7f"},"ros-jazzy-demo-nodes-cpp-native-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453502400,"md5":"9f9f3e419d040c294ca2f95789a0829b","name":"ros-jazzy-demo-nodes-cpp-native","requires":[],"size":108827,"version":"0.33.5","binstar":{"package_id":"66756dec834184236ff03a53","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"efe439bf1801014a8e08dca040e40d708d8626872abba596620a18f2a935f4e7"},"ros-jazzy-examples-rclcpp-minimal-composition-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453025261,"md5":"68f7c157de31b06c4ac98877c3e2ffe9","name":"ros-jazzy-examples-rclcpp-minimal-composition","requires":[],"size":154075,"version":"0.19.4","binstar":{"package_id":"66756ded25603a3d39ee03c5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"18a2cd03516b039f6bcab4dc48d6b24051f583f671febca2cc922fe4b134e3a0"},"ros-jazzy-examples-rclcpp-minimal-publisher-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452545991,"md5":"7f52338aad195c0513de7b81b7f32ea3","name":"ros-jazzy-examples-rclcpp-minimal-publisher","requires":[],"size":160488,"version":"0.19.4","binstar":{"package_id":"66756dee42233b5cf4aa1dec","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c6b59b53d705f9c71ba0bc50345f59be24422f69a17ea69d4962a72ffa86cb3a"},"ros-jazzy-examples-rclcpp-minimal-subscriber-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452929495,"md5":"5fc8ca1630238799e770d63b6b2d65cb","name":"ros-jazzy-examples-rclcpp-minimal-subscriber","requires":[],"size":436043,"version":"0.19.4","binstar":{"package_id":"66756df07e40df0ae6f03a51","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"38fd2fff197f78331ea169655b8c8a1bb2d11a8f4902ea2f3bfe3fd716eaff8f"},"ros-jazzy-examples-rclcpp-minimal-timer-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452479315,"md5":"459e5deffb920dae24c1b5715c2cb14c","name":"ros-jazzy-examples-rclcpp-minimal-timer","requires":[],"size":45853,"version":"0.19.4","binstar":{"package_id":"66756df12f207b1976ee03c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"552bfa2331d0819240e308d10bd6f129a5a357bdf270082e84dc12c2836872ff"},"ros-jazzy-cv-bridge-4.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","py-opencv >=4.10.0,<5.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","libopencv >=4.10.0,<4.10.1.0a0","libboost-python >=1.86.0,<1.87.0a0","numpy >=1.26.4,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","xorg-libxext >=1.3.6,<2.0a0","libboost >=1.86.0,<1.87.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452130919,"md5":"bc14a4559b9148258086b3c810d65f30","name":"ros-jazzy-cv-bridge","requires":[],"size":163687,"version":"4.1.0","binstar":{"package_id":"66756e019b7e1b325c14a101","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"87a3192d2150d3a14114b3842cfd6fccd3efb5fdf18b0a0a4287008cf3d34ca1"},"ros-jazzy-example-interfaces-0.12.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450017446,"md5":"07ca00dbbca67ae983ec260bb18b070b","name":"ros-jazzy-example-interfaces","requires":[],"size":466477,"version":"0.12.0","binstar":{"package_id":"66756e02ff629eabab2c5d5d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cbbca7fcbecf389c0f2acb7ff32961dc9a57f67c99236846872c4a79230039de"},"ros-jazzy-image-transport-5.1.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453623195,"md5":"e0edb85c8fe0513e43bda257b1ca2b4a","name":"ros-jazzy-image-transport","requires":[],"size":434575,"version":"5.1.5","binstar":{"package_id":"66756e03074cff9aae8ce548","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a8b92600d2045aae0517565ff37591a47475a9a7cbaa654131719ec377db69f1"},"ros-jazzy-interactive-markers-2.5.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455340761,"md5":"ecfc919e0d9e6ab31e34818b391f1336","name":"ros-jazzy-interactive-markers","requires":[],"size":262138,"version":"2.5.4","binstar":{"package_id":"66756e044b132e6fb114a100","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"526836c0f29ab6393e9b0e0d38b8710beb612ffc8b296b467eae5b913bc8c3e1"},"ros-jazzy-sdl2-vendor-3.3.0-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","sdl2","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","sdl2 >=2.30.10,<3.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735905097506,"md5":"7c45ef91d0b76c18fe5e8286e5aaf614","name":"ros-jazzy-sdl2-vendor","requires":[],"size":21429,"version":"3.3.0","binstar":{"package_id":"66756e06073efbe82e2c5d5c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"390b51deb2163a5adf5189df752f8a1ef69eec45b0822be2ccaba9be71e42c64"},"ros-jazzy-sdl2-vendor-3.3.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","sdl2","__osx >=10.14","libcxx >=19","sdl2 >=2.30.10,<3.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073091389,"md5":"0990880ae84f3d0887b59ec76fa252b5","name":"ros-jazzy-sdl2-vendor","requires":[],"size":21432,"version":"3.3.0","binstar":{"package_id":"66756e06073efbe82e2c5d5c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4be3c7a1116ada0cd4b8671f7d96d951202aa97f02bfe80a9f8a3df3233c867a"},"ros-jazzy-urdfdom-py-1.2.1-h0dc7051_0.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"h0dc7051_0","build_number":0,"depends":["urdfdom-py 1.2.1.*","python 3.11.* *_cpython"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735932358105,"md5":"086fead10450aabe0e18a88e86ad9377","name":"ros-jazzy-urdfdom-py","requires":[],"size":1841,"version":"1.2.1","binstar":{"package_id":"6777b8a04d249915aae62866","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c2bc5ae9a7d465edf9bc1c645f4ba33b4e2b82daf2e680d26abe0de29c7a86be"},"ros-jazzy-apriltag-3.4.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","xorg-libxext >=1.3.6,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","libopencv >=4.10.0,<4.10.1.0a0","py-opencv >=4.10.0,<5.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485749728,"md5":"3c38f8eead1421a340714ffa4fc6f350","name":"ros-jazzy-apriltag","requires":[],"size":1348652,"version":"3.4.2","binstar":{"package_id":"6777b934e487d3e8fe01b109","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d9929646befe7028a97b14265596a6733f893a6384b25c23b8d436405ea20124"},"ros-jazzy-ros-industrial-cmake-boilerplate-0.5.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","gtest >=1.15.2,<1.15.3.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","libclang13 >=19.1.6","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486553049,"md5":"99ab0982bdffc0c1beee3fe7f3f3194f","name":"ros-jazzy-ros-industrial-cmake-boilerplate","requires":[],"size":39647,"version":"0.5.4","binstar":{"package_id":"6777b9359ebfe4a7a7e461e6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ffc95b7ebf0e0dce6806803217e6dbe29fb732c751ebef2151a1ce8a8897dad7"},"ros-jazzy-gtsam-4.2.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","libboost-devel","libboost-python-devel","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","tbb","tbb-devel","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","tbb >=2022.0.0","libboost-python >=1.86.0,<1.87.0a0","numpy >=1.26.4,<2.0a0","libboost >=1.86.0,<1.87.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485940909,"md5":"9d01e587430a0e6007a3f3b9a0e12ed3","name":"ros-jazzy-gtsam","requires":[],"size":3335794,"version":"4.2.0","binstar":{"package_id":"6777bdf9c6e1dff6c53bfa4c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"28535249f57ce7c553318863c6e7c0f1e48bec83aae435e5a57b599222eae7b2"},"ros-jazzy-ompl-1.6.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","flann","libboost-devel","libboost-python-devel","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","libboost-python >=1.86.0,<1.87.0a0","libboost >=1.86.0,<1.87.0a0","ompl >=1.6.0,<1.7.0a0","flann >=1.9.2,<1.9.3.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485958078,"md5":"b453e9b4f96aa2512ebeeccf256daddc","name":"ros-jazzy-ompl","requires":[],"size":16844,"version":"1.6.0","binstar":{"package_id":"6777bdfdac57d54df901b10d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fa53e2bc7014ec2678f633e3df17ddd322ed7bb9db02fbf36ee9a3f002504bcc"},"ros-jazzy-ruckig-0.9.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485662485,"md5":"a5b65936b4dec0aa9fe32c174d2e472d","name":"ros-jazzy-ruckig","requires":[],"size":90070,"version":"0.9.2","binstar":{"package_id":"6777bdff880560535dbbe834","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4717adec76e49657050341aab3ad9c6a92d1a0d9f5a5da907399bbef6a3d62a0"},"ros-jazzy-sdformat-test-files-1.0.2-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["cmake","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735902818238,"md5":"ff87e9def0e237c598acb53c5b9777a9","name":"ros-jazzy-sdformat-test-files","requires":[],"size":102854,"version":"1.0.2","binstar":{"package_id":"6777be01c6e1dff6c53bfa4e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e28186dedb7f6a63f0b65731d00d473a2084c6ea1f347f2c7c5b046fecf2ee4c"},"ros-jazzy-sdformat-test-files-1.0.2-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["cmake","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736071907073,"md5":"e16c28f71631da5d32de79103028fe25","name":"ros-jazzy-sdformat-test-files","requires":[],"size":102900,"version":"1.0.2","binstar":{"package_id":"6777be01c6e1dff6c53bfa4e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ab0ded0d567dd618224b45263e03920e407ef3cc98e22af77980d8a03597884c"},"ros-jazzy-backward-ros-1.0.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485628750,"md5":"0997392f085e4da8900d5dc292f326aa","name":"ros-jazzy-backward-ros","requires":[],"size":74018,"version":"1.0.6","binstar":{"package_id":"6777be81b5e0df61e2bbe835","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"03abb200d3164e8bb414a0d8e0153fa923e44fa4f77bf26852d9051f11c2607f"},"ros-jazzy-backward-ros-1.0.7-np126py311hd69bdec_3.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_3","build_number":3,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738833315785,"md5":"666f6290e3addfaddac1a10f01efd63d","name":"ros-jazzy-backward-ros","requires":[],"size":74230,"version":"1.0.7","binstar":{"package_id":"6777be81b5e0df61e2bbe835","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6e3e229cf6bae487516994e191bd66c2ebcf42cd89e377ff29268d5226957ff8"},"ros-jazzy-stomp-0.1.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["console_bridge","eigen","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","console_bridge >=1.0.2,<1.1.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","gtest >=1.15.2,<1.15.3.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487063874,"md5":"2c7bc4b97014cac65cbb0209472161c8","name":"ros-jazzy-stomp","requires":[],"size":118629,"version":"0.1.2","binstar":{"package_id":"6777be840fdc98202abbe838","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ec4c0c915664dc47cdda3bf4859278f74cd69fd45f49c60500199ec23bc89121"},"ros-jazzy-ament-cmake-catch2-1.4.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485842493,"md5":"b64b825b1a5ddca8aaf1494841ee7525","name":"ros-jazzy-ament-cmake-catch2","requires":[],"size":21020,"version":"1.4.1","binstar":{"package_id":"6777becb6cc931c2af4fb93c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8574efea5ecce4163a90c648a532de3aac9c8915eef0af4a42389158e7855da2"},"ros-jazzy-generate-parameter-library-py-0.3.9-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["jinja2","python","pyyaml","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","typeguard","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485582680,"md5":"a224da4f807a7c06c6817027d0995a5e","name":"ros-jazzy-generate-parameter-library-py","requires":[],"size":70800,"version":"0.3.9","binstar":{"package_id":"6777bf8e0fdc98202abbe840","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b2efdb5b40959e30bbd269c653067dac123e3a8131960fcb8757c18f6d8aba25"},"ros-jazzy-tcb-span-1.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485568621,"md5":"89885d3a030352f1e384dccc28184b8e","name":"ros-jazzy-tcb-span","requires":[],"size":26412,"version":"1.0.2","binstar":{"package_id":"6777bfddb5e0df61e2bbe839","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"66c7f59abe927763db37cd7e210f055665e0c3c8c01dcaedc409346c56f01075"},"ros-jazzy-tl-expected-1.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485527393,"md5":"726fb88b61dc225bd1d971209a7f1a43","name":"ros-jazzy-tl-expected","requires":[],"size":32020,"version":"1.0.2","binstar":{"package_id":"6777bfdf6cc931c2af4fb940","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"92c336ada5bc046df87b3e0af842866784b308a1c96d0526af76c740781e9186"},"ros-jazzy-ros2-control-test-assets-4.23.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485519259,"md5":"194e5b740a3d9804cc7f43f0a0e39b69","name":"ros-jazzy-ros2-control-test-assets","requires":[],"size":29502,"version":"4.23.0","binstar":{"package_id":"6777bfe10fdc98202abbe844","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9adc64dad4ffce56b01dcd7f1705803d21bcbb9439543b215b1e06a2614800e5"},"ros-jazzy-angles-1.16.0-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904886190,"md5":"41cb2679f9f5a1a57789655e093a42f4","name":"ros-jazzy-angles","requires":[],"size":31116,"version":"1.16.0","binstar":{"package_id":"6777bfe512934ced4901b109","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b068cd0a58737baf53371ee72a1b1254e44833a0e9120d76616399eaf9878086"},"ros-jazzy-angles-1.16.0-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073139891,"md5":"da21fcdaf3d90b5762805c89e12873fa","name":"ros-jazzy-angles","requires":[],"size":31125,"version":"1.16.0","binstar":{"package_id":"6777bfe512934ced4901b109","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"dab8e494b750a83de2f0d5fff9224bc7369e0a2d1ae08ac3811ee303fee2625a"},"ros-jazzy-angles-1.16.0-np126py311hd69bdec_3.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_3","build_number":3,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1737495953756,"md5":"05283d9b73d5f3a385d1428ccc71abcd","name":"ros-jazzy-angles","requires":[],"size":31251,"version":"1.16.0","binstar":{"package_id":"6777bfe512934ced4901b109","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3b8c5396f3cd79096bf075763962a07a8dd954689c7a50f570e82120898c4789"},"ros-jazzy-moveit-common-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486934118,"md5":"1d3775fa0c69cd762c12d026b16b5fc3","name":"ros-jazzy-moveit-common","requires":[],"size":22548,"version":"2.12.1","binstar":{"package_id":"6777bfe71d825a17294fb940","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b508b147f3dfbeedf4033c50e25df0e07c224e47a80c0dfd38adc60716fcda25"},"ros-jazzy-moveit-resources-fanuc-description-3.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486346386,"md5":"dd4129c481dd97bbfe032e14383c6c8b","name":"ros-jazzy-moveit-resources-fanuc-description","requires":[],"size":152001,"version":"3.1.0","binstar":{"package_id":"6777bfe91d825a17294fb942","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d37e37d7bf043fe55bbcf383408cfbe580b8cbf73407d126336779aa96f906ea"},"ros-jazzy-eigen-stl-containers-1.0.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485701171,"md5":"0cd7d4d9c819ae03a918a45a903e88ec","name":"ros-jazzy-eigen-stl-containers","requires":[],"size":22632,"version":"1.0.0","binstar":{"package_id":"6777bfeba7245de1734fb94a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b5a98f22fef992f22bab96fdfe07b1052e9bdb8dfb32e0279b6c48b6b27dc16f"},"ros-jazzy-moveit-resources-pr2-description-3.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485733460,"md5":"a8b28df373c7f9f21d887e28702f9987","name":"ros-jazzy-moveit-resources-pr2-description","requires":[],"size":25201917,"version":"3.1.0","binstar":{"package_id":"6777bfebe72d566cbfbbe836","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e0cec06b220c54b61b8ea5baf58b135c6ad807da2e29069be6b80c396cc9e8bb"},"ros-jazzy-libcurl-vendor-3.4.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["libcurl","pkg-config","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","libcurl >=8.11.1,<9.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904843064,"md5":"05e3ad3947520cc9600259e141933e28","name":"ros-jazzy-libcurl-vendor","requires":[],"size":22150,"version":"3.4.3","binstar":{"package_id":"6777bfed080f624e0c3bfa58","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"724cb80b2855affc1d830a2cd4bf9146292470805018f786b4e0003cd38846a9"},"ros-jazzy-libcurl-vendor-3.4.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["libcurl","pkg-config","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","libcurl >=8.11.1,<9.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073105799,"md5":"43fb5ac25ef222464b33598d5a937436","name":"ros-jazzy-libcurl-vendor","requires":[],"size":22146,"version":"3.4.3","binstar":{"package_id":"6777bfed080f624e0c3bfa58","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fc897d9d0455d58591604339c6dc900dba04f47a613836c964cf023969cbaeb6"},"ros-jazzy-moveit-resources-panda-description-3.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485544262,"md5":"eef25d11879a6018d53ab15ea37b271b","name":"ros-jazzy-moveit-resources-panda-description","requires":[],"size":3696241,"version":"3.1.0","binstar":{"package_id":"6777bfefe72d566cbfbbe838","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0014ae69777ba653bdca95ebb57358c7eeed099772584221c7fae1837374cdaa"},"ros-jazzy-random-numbers-2.0.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["libboost","libboost-devel","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","libboost >=1.86.0,<1.87.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485670538,"md5":"ec88efd0eebff29cdeeff0bb017a5240","name":"ros-jazzy-random-numbers","requires":[],"size":41705,"version":"2.0.1","binstar":{"package_id":"6777bff19fbe0777ad01b10e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"94f03aa1e7dd5b57307dae005f2fc446617ccb0c9c1275649024798418ce7f92"},"ros-jazzy-xacro-2.0.11-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["python","pyyaml","ros-jazzy-ament-index-python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735904864680,"md5":"8cab7edb725feef2b44bfcbd82de8345","name":"ros-jazzy-xacro","requires":[],"size":76315,"version":"2.0.11","binstar":{"package_id":"6777bff40fdc98202abbe846","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ef2f48bf24a6eae597c70dc255fd7e40c3d57e00a026eab89c6ccd4c8c9f1c71"},"ros-jazzy-xacro-2.0.11-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","pyyaml","ros-jazzy-ament-index-python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736073122632,"md5":"4d62f3c386a479e71f85b3b85b942b68","name":"ros-jazzy-xacro","requires":[],"size":76314,"version":"2.0.11","binstar":{"package_id":"6777bff40fdc98202abbe846","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fe2d84ce0fd02747c3a705a08746d54596c85d0ca2c1f55bf9964a150574d253"},"ros-jazzy-moveit-resources-prbt-support-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-xacro","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485936362,"md5":"bbaa07940ce9e363c61ca86dc9e5e3b9","name":"ros-jazzy-moveit-resources-prbt-support","requires":[],"size":949822,"version":"2.12.1","binstar":{"package_id":"6777c03a9a883b4aba01b107","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5a3d5e9d34c67aabf023a84e8d0f77d70860be7dcf8b196e25919d731e344322"},"ros-jazzy-gz-dartsim-vendor-0.0.3-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["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","__osx >=10.14","libcxx >=19","libboost >=1.86.0,<1.87.0a0","tinyxml2 >=10.0.0,<11.0a0","python_abi 3.11.* *_cp311","dartsim-cpp >=6.15.0,<6.16.0a0","urdfdom >=4.0.1,<4.1.0a0","libccd-double >=2.1,<2.2.0a0","numpy >=1.26.4,<2.0a0","fcl >=0.7.0,<0.8.0a0","fmt >=11.0.2,<12.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","assimp >=5.4.3,<5.4.4.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735908714936,"md5":"b594b52725611724738d536c832ba5dc","name":"ros-jazzy-gz-dartsim-vendor","requires":[],"size":30219,"version":"0.0.3","binstar":{"package_id":"6777c15c1d825a17294fb946","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"03377263cc316210120392b899e50f9aea61bd7b15ac7c3ba50f06e730bcc753"},"ros-jazzy-gz-dartsim-vendor-0.0.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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","__osx >=10.14","libcxx >=19","fmt >=11.0.2,<12.0a0","fcl >=0.7.0,<0.8.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","dartsim-cpp >=6.15.0,<6.16.0a0","libccd-double >=2.1,<2.2.0a0","numpy >=1.26.4,<2.0a0","urdfdom >=4.0.1,<4.1.0a0","assimp >=5.4.3,<5.4.4.0a0","python_abi 3.11.* *_cp311","libboost >=1.86.0,<1.87.0a0","tinyxml2 >=10.0.0,<11.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077180853,"md5":"af071beb3ac8af8772ae74cbd80dac43","name":"ros-jazzy-gz-dartsim-vendor","requires":[],"size":30237,"version":"0.0.3","binstar":{"package_id":"6777c15c1d825a17294fb946","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"eeb6b20b9d057d764f8a110d64969f18dee9b5eb54d9278c7da42384acc04850"},"ros-jazzy-gz-ogre-next-vendor-0.0.5-np126py311h2dc9425_1.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_1","build_number":1,"depends":["freeimage","freetype","glslang","libboost-devel","ogre-next","poco","python","rapidjson","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","sdl2","shaderc","tbb","tbb-devel","tinyxml2","xorg-libx11","xorg-libxaw","xorg-libxrandr","xorg-xorgproto","zziplib","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","poco >=1.14.0,<1.14.1.0a0","glslang >=12,<13.0a0","xorg-libxrandr >=1.5.4,<2.0a0","freetype >=2.12.1,<3.0a0","xorg-libxext >=1.3.6,<2.0a0","tbb >=2022.0.0","sdl2 >=2.30.10,<3.0a0","numpy >=1.26.4,<2.0a0","ogre-next >=2.3.3,<2.3.4.0a0","xorg-libx11 >=1.8.10,<2.0a0","python_abi 3.11.* *_cp311","zziplib >=0.13.69,<0.14.0a0","freeimage >=3.18.0,<3.19.0a0","libboost >=1.86.0,<1.87.0a0","shaderc >=2023.6,<2023.7.0a0","tinyxml2 >=10.0.0,<11.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1735908632758,"md5":"57f30607bab082054167ef2b9e35b48f","name":"ros-jazzy-gz-ogre-next-vendor","requires":[],"size":32104,"version":"0.0.5","binstar":{"package_id":"6777c160726ad61dcbbbe834","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6ddbb8750755c93ea6f278a232863231328c596272da66c9417e3f76573cf99b"},"ros-jazzy-gz-ogre-next-vendor-0.0.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["freeimage","freetype","glslang","libboost-devel","ogre-next","poco","python","rapidjson","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","sdl2","shaderc","tbb","tbb-devel","tinyxml2","xorg-libx11","xorg-libxaw","xorg-libxrandr","xorg-xorgproto","zziplib","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","sdl2 >=2.30.10,<3.0a0","freetype >=2.12.1,<3.0a0","glslang >=12,<13.0a0","tbb >=2022.0.0","poco >=1.14.0,<1.14.1.0a0","ogre-next >=2.3.3,<2.3.4.0a0","python_abi 3.11.* *_cp311","libboost >=1.86.0,<1.87.0a0","xorg-libxext >=1.3.6,<2.0a0","freeimage >=3.18.0,<3.19.0a0","xorg-libxrandr >=1.5.4,<2.0a0","tinyxml2 >=10.0.0,<11.0a0","zziplib >=0.13.69,<0.14.0a0","shaderc >=2023.6,<2023.7.0a0","xorg-libx11 >=1.8.10,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077133491,"md5":"d2c8627c095223b8a97b74a9f1139207","name":"ros-jazzy-gz-ogre-next-vendor","requires":[],"size":32106,"version":"0.0.5","binstar":{"package_id":"6777c160726ad61dcbbbe834","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4f79c6b7683b47cf5bdb4392dd3ce63788b2148cc537a6fe7178affb2e72c1c8"},"ros-jazzy-launch-pytest-3.4.3-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["pytest","python","ros-jazzy-ament-index-python","ros-jazzy-launch","ros-jazzy-launch-testing","ros-jazzy-osrf-pycommon","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485923028,"md5":"856597d21dd89c32855c3e73a6846eb9","name":"ros-jazzy-launch-pytest","requires":[],"size":47720,"version":"3.4.3","binstar":{"package_id":"6777c1646cc931c2af4fb946","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9b5df44127bfcaddf02795f3bb43126bf49bdef9aecc1efb91236d8afcf83d94"},"ros-jazzy-rviz-assimp-vendor-14.1.6-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["assimp","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","assimp >=5.4.3,<5.4.4.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077841352,"md5":"8e49bb5f9f346a04975f63d33c199452","name":"ros-jazzy-rviz-assimp-vendor","requires":[],"size":23155,"version":"14.1.6","binstar":{"package_id":"6777c25ecb96cd07983bfa53","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"61ea6cb375c4e9ea944c7743d5956a65d03fdb54229f6d02769101df66028fe4"},"ros-jazzy-rviz-ogre-vendor-14.1.6-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["assimp","freetype","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","xorg-libx11","xorg-libxaw","xorg-libxrandr","xorg-xorgproto","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","freetype >=2.12.1,<3.0a0","assimp >=5.4.3,<5.4.4.0a0","libzlib >=1.3.1,<2.0a0","xorg-libxrandr >=1.5.4,<2.0a0","zziplib >=0.13.69,<0.14.0a0","pugixml >=1.14,<1.15.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","xorg-libx11 >=1.8.10,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","freeimage >=3.18.0,<3.19.0a0","xorg-libxext >=1.3.6,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077242909,"md5":"ea6e56af58c8a22b00c4092251c58229","name":"ros-jazzy-rviz-ogre-vendor","requires":[],"size":4273197,"version":"14.1.6","binstar":{"package_id":"6777c2621ef605a0814fb94a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d939ffa93a1e319574274d44b7e905cc69977e639625b37d8f7ff6dbf19c2171"},"ros-jazzy-gz-tools-vendor-0.0.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["gz-tools2","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","ruby","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","libgz-tools2 >=2.0.1,<3.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077978862,"md5":"efdf00f8fbf31d287afc4aaa9d50f3c2","name":"ros-jazzy-gz-tools-vendor","requires":[],"size":24846,"version":"0.0.5","binstar":{"package_id":"6777c2c1c95d6fa79f3bfa4e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2b46ac42d77eb932244eec7f57de0ce8ad3609744947898008e1cddbca4c114d"},"ros-jazzy-osqp-vendor-0.2.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485705047,"md5":"ac2e83f65e5bdf61501ab6c77bd7618a","name":"ros-jazzy-osqp-vendor","requires":[],"size":113026,"version":"0.2.0","binstar":{"package_id":"6777c2c276318dc690bbe836","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"715d2086410ee148fd57d723076bdd5b344dbc0d56b96323bf0756f89ebb1303"},"ros-jazzy-gz-utils-vendor-0.0.4-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["gz-utils2","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","libgz-utils2 >=2.2.0,<3.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736077961972,"md5":"408ecb4afe2e8be71b1b4266497adaf8","name":"ros-jazzy-gz-utils-vendor","requires":[],"size":24157,"version":"0.0.4","binstar":{"package_id":"6777c2c36c8a45ba683bfa59","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8ec58f51be82a35aacb7f91163d3277dd68267829a83f91b4947e8ebd9bc965a"},"ros-jazzy-python-qt-binding-2.2.1-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["pyqt","pyqt-builder","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","xorg-libx11 >=1.8.10,<2.0a0","qt-main >=5.15.15,<5.16.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","pyqt >=5.15.9,<5.16.0a0","xorg-libxext >=1.3.6,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078070658,"md5":"440a606b0a399c3be0bfaba402e32d8e","name":"ros-jazzy-python-qt-binding","requires":[],"size":53033,"version":"2.2.1","binstar":{"package_id":"6777c2c4e487d3e8fe01b120","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a0a168e3a0638121ec9c5862ccc5d3bcf76afd50863ebaf596f9a1cd30158a81"},"ros-jazzy-smclib-4.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485780436,"md5":"5416ae7f13db6a002a73e888a6704af8","name":"ros-jazzy-smclib","requires":[],"size":35423,"version":"4.1.0","binstar":{"package_id":"6777c2c657ecb6e67601b127","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0b18419d12e7ddcae7ab63080e0da9a99c4e39e0351d4519fd581687c21714fb"},"ros-jazzy-qt-dotgraph-2.7.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["pydot","python","ros-jazzy-python-qt-binding","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078683669,"md5":"b0424390576c9d2fb3e194c3c998d533","name":"ros-jazzy-qt-dotgraph","requires":[],"size":56590,"version":"2.7.5","binstar":{"package_id":"6777c42a7b74ce9ea13bfa4d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fde1ff2dd046ad30538892a1b69a56954063e148fdbed115870c23b00234648c"},"ros-jazzy-qt-gui-py-common-2.7.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-ament-index-python","ros-jazzy-python-qt-binding","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078648871,"md5":"c7ead70f7d6ddd93f925c7c8fbea4b34","name":"ros-jazzy-qt-gui-py-common","requires":[],"size":38011,"version":"2.7.5","binstar":{"package_id":"6777c42b8f28bfae64ee3f5e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b6474ef60c1977e64dedd64726935f2551e1047a2605025e6362b325655767b2"},"ros-jazzy-tracetools-image-pipeline-5.0.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485871124,"md5":"979788be03afd9be3d33ddf47efb82fd","name":"ros-jazzy-tracetools-image-pipeline","requires":[],"size":33730,"version":"5.0.6","binstar":{"package_id":"6777c42c9e210c51f0bbe834","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7e2b44abaed3a200756a78c22bd81ce4e117c3096a3aa926aa4aba3378dcf338"},"ros-jazzy-gz-math-vendor-0.0.7-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["eigen","gz-math7","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-gz-utils-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","libgz-math7 >=7.5.1,<8.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078520933,"md5":"291dc54ae7f32382403601f787d1fd79","name":"ros-jazzy-gz-math-vendor","requires":[],"size":26012,"version":"0.0.7","binstar":{"package_id":"6777c44270a374103d3b969a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"decd6621e1055c0e4ea1f587aa87671153d27f3ee096af8fdcff549a111661ee"},"ros-jazzy-gz-plugin-vendor-0.0.4-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","libgz-plugin2 >=2.0.3,<3.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078560165,"md5":"b377c191c5561320817c544458055e88","name":"ros-jazzy-gz-plugin-vendor","requires":[],"size":25992,"version":"0.0.4","binstar":{"package_id":"6777c444283e553519ee3f5e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b4d7acf504ecf707ebef9a3ea6a46dde5ad633a7087867bba4eb236ef7be08bc"},"ros-jazzy-qt-gui-2.7.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","qt-main >=5.15.15,<5.16.0a0","xorg-libx11 >=1.8.10,<2.0a0","numpy >=1.26.4,<2.0a0","xorg-libxext >=1.3.6,<2.0a0","python_abi 3.11.* *_cp311","pyqt >=5.15.9,<5.16.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078582635,"md5":"67b52123cad584462a06627bcedddd75","name":"ros-jazzy-qt-gui","requires":[],"size":169006,"version":"2.7.5","binstar":{"package_id":"6777c4452e18f789063b969a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"83ba767d9a202ff410902233357770155efd63bdb3f642a2d5b859a52e367a7a"},"ros-jazzy-resource-retriever-3.4.3-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078538212,"md5":"d72d8a56aab079901537d3edc76c27ba","name":"ros-jazzy-resource-retriever","requires":[],"size":40728,"version":"3.4.3","binstar":{"package_id":"6777c446e98b99d2473b969c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bdb12ea5dfe2e89ee364c9641b9cb65af6f4caabbf5d861072a15d2220a27bd4"},"ros-jazzy-gz-common-vendor-0.0.7-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","freeimage >=3.18.0,<3.19.0a0","libgz-common5 >=5.6.0,<6.0a0","tinyxml2 >=10.0.0,<11.0a0","ffmpeg >=7.1.0,<8.0a0","gts >=0.7.6,<0.8.0a0","libgdal-core >=3.10.0,<3.11.0a0","libgdal >=3.10.0,<3.11.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","assimp >=5.4.3,<5.4.4.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078767781,"md5":"79905c5c51b9d75fee711982724e87cb","name":"ros-jazzy-gz-common-vendor","requires":[],"size":43726,"version":"0.0.7","binstar":{"package_id":"6777c497d42833eb3fbbe839","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7de6ad2c1652fb8d904f86a2cebac7a5e34e31fc37b95adc367afb091cfb3da0"},"ros-jazzy-gz-msgs-vendor-0.0.5-np126py311h071c481_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h071c481_2","build_number":2,"depends":["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","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","libprotobuf >=5.28.2,<5.28.3.0a0","libgz-msgs10 >=10.3.0,<11.0a0","tinyxml2 >=10.0.0,<11.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078727823,"md5":"b7aeb8e3d175f12d51bca02b0db7a4d7","name":"ros-jazzy-gz-msgs-vendor","requires":[],"size":28306,"version":"0.0.5","binstar":{"package_id":"6777c49d43a826f1353bfa4f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a1090184a89e44a16696b18ccf9afc030b644ff04ea11ccb7845ab007cf126ba"},"ros-jazzy-rviz-rendering-14.1.6-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.14","libcxx >=19","xorg-libxext >=1.3.6,<2.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","qt-main >=5.15.15,<5.16.0a0","xorg-libx11 >=1.8.10,<2.0a0","glew >=2.1.0,<2.2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078823573,"md5":"d491d941ec4ca2a8f8e4d69b13788f54","name":"ros-jazzy-rviz-rendering","requires":[],"size":877497,"version":"14.1.6","binstar":{"package_id":"6777c4c85687576dae3b96a1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9b10512b30474bba6af40a57abd0bda58badebb0551e7dec7db0d23c9d5e731c"},"ros-jazzy-sdformat-vendor-0.0.8-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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","__osx >=10.14","libcxx >=19","__osx >=10.14","libsdformat14 >=14.5.0,<15.0a0","libxml2 >=2.13.5,<3.0a0","tinyxml2 >=10.0.0,<11.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078801041,"md5":"825dd4a52b934e8561b11d31380ca670","name":"ros-jazzy-sdformat-vendor","requires":[],"size":28795,"version":"0.0.8","binstar":{"package_id":"6777c4c99cf4135cd5ee3f5f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"084e5bed5957586023ca47a917aac936760841a7564cb045ab7f8447e17a6376"},"ros-jazzy-gz-fuel-tools-vendor-0.0.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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","__osx >=10.14","libcxx >=19","libgz-fuel-tools9 >=9.0.3,<10.0a0","libcurl >=8.11.1,<9.0a0","numpy >=1.26.4,<2.0a0","yaml >=0.2.5,<0.3.0a0","jsoncpp >=1.9.6,<1.9.7.0a0","libzip >=1.11.2,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","gflags >=2.2.2,<2.3.0a0","tinyxml2 >=10.0.0,<11.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079053546,"md5":"8be50cf31719b5a195130f218202d830","name":"ros-jazzy-gz-fuel-tools-vendor","requires":[],"size":45710,"version":"0.0.5","binstar":{"package_id":"6777c5266c8a45ba683bfa64","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"92e0a66443d05db5d40b5cc92ab27a1b1ed736e0f16bffb3e4f88fcbd39f14b5"},"ros-jazzy-gz-physics-vendor-0.0.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","libgz-physics7 >=7.3.0,<8.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079008229,"md5":"05e92e514b95baa698b0cfe5b3863f0b","name":"ros-jazzy-gz-physics-vendor","requires":[],"size":52734,"version":"0.0.5","binstar":{"package_id":"6777c52a9e210c51f0bbe836","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e70e60b9b04516dcb5a18c90ea12277e0d5e89d246ac786310f177a1571ea817"},"ros-jazzy-gz-rendering-vendor-0.0.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["freeimage","glew","gz-rendering8","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","__osx >=10.14","libcxx >=19","glew >=2.1.0,<2.2.0a0","numpy >=1.26.4,<2.0a0","ogre >=1.10.12.1,<1.11.0a0","xorg-libxmu >=1.2.1,<2.0a0","freeimage >=3.18.0,<3.19.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","xorg-libxi >=1.8.2,<2.0a0","libgz-rendering8 >=8.2.0,<9.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736078936637,"md5":"2968d233419fd5763da0e42e1c2a576a","name":"ros-jazzy-gz-rendering-vendor","requires":[],"size":52236,"version":"0.0.5","binstar":{"package_id":"6777c52c76318dc690bbe83d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"89b09c3cd5b3b2d6d79bcf2e5ca19a3f89dd113da0ca0a15e5f7c4dc2aa381af"},"ros-jazzy-gz-transport-vendor-0.0.5-np126py311h071c481_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h071c481_2","build_number":2,"depends":["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","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","libsqlite >=3.47.2,<4.0a0","numpy >=1.26.4,<2.0a0","zeromq >=4.3.5,<4.4.0a0","libprotobuf >=5.28.2,<5.28.3.0a0","libgz-transport13 >=13.4.0,<14.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079091260,"md5":"a097aedfe5a77a00a6e1cede1ecb9758","name":"ros-jazzy-gz-transport-vendor","requires":[],"size":29898,"version":"0.0.5","binstar":{"package_id":"6777c52fe7bc1962d8ee3f5f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0667205a04609f83ab315ec2f233e3569502e397c6630edb368a3bd0de418db4"},"ros-jazzy-rviz-rendering-tests-14.1.6-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["python","ros-jazzy-resource-retriever","ros-jazzy-ros-workspace","ros-jazzy-rviz-rendering","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","qt-main >=5.15.15,<5.16.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libxext >=1.3.6,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079039154,"md5":"1546ba00feef1c5aab82a4a202282d0d","name":"ros-jazzy-rviz-rendering-tests","requires":[],"size":32170,"version":"14.1.6","binstar":{"package_id":"6777c53c1b37c47cf0ee3f60","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"05ccc10c1b83a386d85b2ca075954cfe41a7ed388a40b99312a9369d6e274ded"},"ros-jazzy-gz-gui-vendor-0.0.4-np126py311h071c481_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h071c481_2","build_number":2,"depends":["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","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","libgz-gui8 >=8.3.0,<9.0a0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","tinyxml2 >=10.0.0,<11.0a0","xorg-libxext >=1.3.6,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","libprotobuf >=5.28.2,<5.28.3.0a0","qt-main >=5.15.15,<5.16.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079249309,"md5":"1d8c95f953ac4de2d04f371de906df01","name":"ros-jazzy-gz-gui-vendor","requires":[],"size":56163,"version":"0.0.4","binstar":{"package_id":"6777c5964b76e5fa113b969d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4e5a33cc7c83efe93b0ccd80138fc0e0a5c932d9fa54a81337073694b893cff4"},"ros-jazzy-gz-sensors-vendor-0.0.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","libgz-sensors8 >=8.2.0,<9.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079157981,"md5":"8a2a139362cec02c8315ed3f4e92a9f7","name":"ros-jazzy-gz-sensors-vendor","requires":[],"size":54925,"version":"0.0.5","binstar":{"package_id":"6777c5988f28bfae64ee3f64","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a4ac7be94340b6a58136d9bcec1ba00988a8a962b4117dd41f530cadec6c8597"},"ros-jazzy-gz-sim-vendor-0.0.6-np126py311h071c481_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h071c481_2","build_number":2,"depends":["benchmark","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","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.14","libcxx >=19","xorg-libxmu >=1.2.1,<2.0a0","python_abi 3.11.* *_cp311","libprotobuf >=5.28.2,<5.28.3.0a0","libgz-sim8 >=8.6.0,<9.0a0","xorg-libxi >=1.8.2,<2.0a0","freeimage >=3.18.0,<3.19.0a0","tinyxml2 >=10.0.0,<11.0a0","glew >=2.1.0,<2.2.0a0","qt-main >=5.15.15,<5.16.0a0","numpy >=1.26.4,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libxext >=1.3.6,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079353645,"md5":"4ccf4f56663e92c96d0501711d394ad1","name":"ros-jazzy-gz-sim-vendor","requires":[],"size":62770,"version":"0.0.6","binstar":{"package_id":"6777c5fb9cd256cccc3bfa6a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"844d82aa0d1d27faccaf4f119a5ba555bf2cb0a785696d11eb01e1dfaf5893ff"},"ros-jazzy-qt-gui-cpp-2.7.5-np126py311h2dc9425_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h2dc9425_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libx11 >=1.8.10,<2.0a0","qt-main >=5.15.15,<5.16.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","xorg-libxext >=1.3.6,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736079597239,"md5":"5487a9c6c18920c215bc547e1ca8df27","name":"ros-jazzy-qt-gui-cpp","requires":[],"size":358263,"version":"2.7.5","binstar":{"package_id":"6777c6bc072330a8f73b969f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"abbe0b81e8fae8de7503e1587a8967b6fea8a4b4554ef646eb3239bbeeea7099"},"ros-jazzy-sdformat-urdf-1.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736449282003,"md5":"379d721b028c9026b7ab931c049fbaf1","name":"ros-jazzy-sdformat-urdf","requires":[],"size":73749,"version":"1.0.2","binstar":{"package_id":"6777c717e7bc1962d8ee3f62","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5c25d737cf7f7928d7bc31af4b7ca269f5687fe4c928ec6ae3d78d069459faf3"},"ros-jazzy-srdfdom-2.0.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["console_bridge","python","ros-jazzy-console-bridge-vendor","ros-jazzy-ros-workspace","ros-jazzy-tinyxml2-vendor","ros-jazzy-urdf","ros-jazzy-urdfdom-py","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","console_bridge >=1.0.2,<1.1.0a0","python_abi 3.11.* *_cp311","libboost >=1.86.0,<1.87.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485615693,"md5":"f234f6b88d910000eb3a94abb0821379","name":"ros-jazzy-srdfdom","requires":[],"size":99122,"version":"2.0.5","binstar":{"package_id":"6777c71862ba3ace18bbe84d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"259d1b22aabd316caf9d44827c39bee5bf571a935a658d0da9c07d23015f456c"},"ros-jazzy-topic-tools-interfaces-1.3.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485796010,"md5":"b23162d785914f844ffe71d66a90c8d2","name":"ros-jazzy-topic-tools-interfaces","requires":[],"size":276747,"version":"1.3.2","binstar":{"package_id":"6777c8eaa24ac811b73b96a4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b16083559f09680fa7bf0670aaf325c6fbafdb9c190e4ce71565a3f9d7886868"},"ros-jazzy-apriltag-msgs-2.0.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486403944,"md5":"352f9df7350e58024307dd1b3017f2e6","name":"ros-jazzy-apriltag-msgs","requires":[],"size":107434,"version":"2.0.1","binstar":{"package_id":"6777c970f11738ec7cbbe862","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"85aefbdf65c3a948eac77d5805cd74b07a54f7039c29baef464922c08ff719e2"},"ros-jazzy-ackermann-msgs-2.0.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486366891,"md5":"e5490a30e3ee38c97d6c17324bc92f4b","name":"ros-jazzy-ackermann-msgs","requires":[],"size":84277,"version":"2.0.2","binstar":{"package_id":"6777c9b1b5e0df61e2bbe853","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"182c45c24c2ea5d2841c195287acc59604375f1aa16515648f0ae291c691ec43"},"ros-jazzy-actuator-msgs-0.0.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450395916,"md5":"f19bb239570134182c2d6fbb79e2dadd","name":"ros-jazzy-actuator-msgs","requires":[],"size":139064,"version":"0.0.1","binstar":{"package_id":"6777c9b1b89b363eb8ee3f6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"15ff29f0e5ed1360eb1baa96c85cb657d37f90d9a3bccc4da9898f5f76094337"},"ros-jazzy-gps-msgs-2.0.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450363608,"md5":"59999590a22773ce16cf4af832eaee3f","name":"ros-jazzy-gps-msgs","requires":[],"size":119658,"version":"2.0.4","binstar":{"package_id":"6777c9b2ee7f3ec9a9ee3f69","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"34d839f221e4630ae75a87d2598aef1ea2dbc9947d1fa365651f619b6a5bad3c"},"ros-jazzy-nmea-msgs-2.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485948670,"md5":"6c5bf6cc07a926a06aa7ec43ffbe7fa8","name":"ros-jazzy-nmea-msgs","requires":[],"size":183698,"version":"2.1.0","binstar":{"package_id":"6777c9b30fdc98202abbe867","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a8d2589532dd370659ba25f15ebba3e7355c2baae64251e596de63539dd5d798"},"ros-jazzy-bond-4.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485805314,"md5":"b36372ae87d570ed6924f5d6ba91d3ce","name":"ros-jazzy-bond","requires":[],"size":86126,"version":"4.1.0","binstar":{"package_id":"6777c9b35189edf45ebbe846","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d4fae0cd721dd4899151e071b8b2a5535b9e2b81eb77da32f966ef9d4d446c08"},"ros-jazzy-controller-manager-msgs-4.23.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-lifecycle-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485723186,"md5":"70cc5163fe75aeb891b29bcd850a1ea1","name":"ros-jazzy-controller-manager-msgs","requires":[],"size":442683,"version":"4.23.0","binstar":{"package_id":"6777c9b562ba3ace18bbe850","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8063cebd3ba9aa714818b53961dde7e609e66842df132ddc9f94cd6fd72828ff"},"ros-jazzy-rtcm-msgs-1.1.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486368495,"md5":"ed8b2a4ab5c3077f8af60fba83d7d86a","name":"ros-jazzy-rtcm-msgs","requires":[],"size":77246,"version":"1.1.6","binstar":{"package_id":"6777c9b5b3bd3efc41bbe84b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0e73ffbb27604cd85377b35e616aad908c8c541b3c0f2c9fd4ab74dc09e4e3a9"},"ros-jazzy-velodyne-msgs-2.5.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486307798,"md5":"c3bc5e23357b724bd48696c7a557725e","name":"ros-jazzy-velodyne-msgs","requires":[],"size":90854,"version":"2.5.1","binstar":{"package_id":"6777c9b687c2334766ee3f68","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9b214ddd633eb23a061e091e0e0704e6e0312146727d8ec441e2f3329c0ee162"},"ros-jazzy-geographic-msgs-1.0.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros-jazzy-unique-identifier-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485604207,"md5":"d70247d45d663a77854ac6f141f17d24","name":"ros-jazzy-geographic-msgs","requires":[],"size":402230,"version":"1.0.6","binstar":{"package_id":"6777cab6e7bc1962d8ee3f65","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"be0e68537c8d2ebb1940f8c0115fc232cf99b11a4812eebf25f99da4273503af"},"ros-jazzy-nav-2d-msgs-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-generators","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486408076,"md5":"857b622376e822357e3d23350688253c","name":"ros-jazzy-nav-2d-msgs","requires":[],"size":116491,"version":"1.3.4","binstar":{"package_id":"6777cab887c2334766ee3f6e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f4ee6417cfe130d07bf6c4e74825dd16834372192d0dc1129d0b54c83058e5ca"},"ros-jazzy-octomap-msgs-2.0.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485582442,"md5":"0d81f28b10077e3bbd9c3992f9e08ee6","name":"ros-jazzy-octomap-msgs","requires":[],"size":169188,"version":"2.0.1","binstar":{"package_id":"6777cab9a24ac811b73b96b4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7abd445055873afd1767a04a34410ba1003313105b5d55b574e66acfdb2d1b9a"},"ros-jazzy-ros-gz-interfaces-1.0.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450695634,"md5":"acae0dd3294b8b96a39e0e5708be0aa7","name":"ros-jazzy-ros-gz-interfaces","requires":[],"size":446866,"version":"1.0.7","binstar":{"package_id":"6777caba71d2ff3380c846c0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"19672d3ceaef9a8a6e2c5b774e7033d3c12654fc06337a59ef558c00d6fea024"},"ros-jazzy-vision-msgs-4.1.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736450589351,"md5":"ab5fb02723a794f8f7bfb26bdcb187a8","name":"ros-jazzy-vision-msgs","requires":[],"size":234321,"version":"4.1.1","binstar":{"package_id":"6777cabc0eb0c3214ec846c6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5d5e200025213e75517f5ede5c059195fa2dd67a0d65986d86aa6f42f2042e69"},"ros-jazzy-dwb-msgs-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-nav-2d-msgs","ros-jazzy-nav-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486649155,"md5":"8d2042e6df177191ac845cd5b9a50564","name":"ros-jazzy-dwb-msgs","requires":[],"size":298754,"version":"1.3.4","binstar":{"package_id":"6777cb42cd4f7fe7382fbbf3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"910eef8d6390efa6107c44f56a3aba3c2ec4454276b1ac405464af29f2ac45f6"},"ros-jazzy-control-msgs-5.3.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-action-msgs","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","ros-jazzy-trajectory-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485560844,"md5":"2f5007893f0633be74882c95477e2681","name":"ros-jazzy-control-msgs","requires":[],"size":918440,"version":"5.3.0","binstar":{"package_id":"6777cb87189ff81bb0c846bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"04375785806794ba6ac7415747301a668527251fe8e8c9cc146d9c53378dfcf8"},"ros-jazzy-object-recognition-msgs-2.0.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-sensor-msgs","ros-jazzy-shape-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485621168,"md5":"48866e3f9f4bbb1883a36f2132e0cf37","name":"ros-jazzy-object-recognition-msgs","requires":[],"size":306972,"version":"2.0.0","binstar":{"package_id":"6777cb888529c48d2aee3f69","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6bc819bebe39794cd24612968baa4b0fbd7935f24f27d8309ed4346d13c56166"},"ros-jazzy-moveit-msgs-2.6.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-geometry-msgs","ros-jazzy-object-recognition-msgs","ros-jazzy-octomap-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-sensor-msgs","ros-jazzy-shape-msgs","ros-jazzy-std-msgs","ros-jazzy-trajectory-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486645978,"md5":"882729de34c6abca69e6f7a57aaad9c6","name":"ros-jazzy-moveit-msgs","requires":[],"size":2286209,"version":"2.6.0","binstar":{"package_id":"6777ccb04fbc7913cd2fbbf9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"39d77b4fcb3b85aa501c5e045c0f2190dfddccfeaf6f62ed78ff86a4056a28bc"},"ros-jazzy-examples-rclpy-minimal-action-server-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452376379,"md5":"b61625d792c6a2c36fc640caea5d9ffd","name":"ros-jazzy-examples-rclpy-minimal-action-server","requires":[],"size":27441,"version":"0.19.4","binstar":{"package_id":"6777ce1fcd4f7fe7382fbbfc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2aa84c04457fce3a27c2bd45f156bdd19d30a8d8e14f00a40ad424716f47149d"},"ros-jazzy-examples-rclpy-minimal-client-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452365816,"md5":"bdc9e391cd38330eaf88a9c593e5aaa6","name":"ros-jazzy-examples-rclpy-minimal-client","requires":[],"size":23083,"version":"0.19.4","binstar":{"package_id":"6777ce20c5960d1d89c846d6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2356e1fb3713c42027cec39b20d1368d4fbda00d2032e1cb53c1d9c2265eff26"},"ros-jazzy-examples-rclpy-minimal-service-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452346215,"md5":"8b3f064b54769bbb9bfd02b3f0821ed6","name":"ros-jazzy-examples-rclpy-minimal-service","requires":[],"size":20715,"version":"0.19.4","binstar":{"package_id":"6777ce235687576dae3b96c2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d9139174c64e2a82388d0c6bf8cc004aeeea10786bf8d6c58d8eb7539cd4b619"},"ros-jazzy-action-tutorials-py-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-action-tutorials-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452437756,"md5":"90e3f84c72d308c06abe887a9564c514","name":"ros-jazzy-action-tutorials-py","requires":[],"size":30223,"version":"0.33.5","binstar":{"package_id":"6777ce3854270fe296c846ca","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a5945db9305b76059fcc9a4c9b25abfaa79c2f358be77f67460c83e08dc80827"},"ros-jazzy-examples-rclcpp-minimal-service-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452510499,"md5":"9bf2725c3a7867552941fb1361f68978","name":"ros-jazzy-examples-rclcpp-minimal-service","requires":[],"size":50629,"version":"0.19.4","binstar":{"package_id":"6777ce39c5779afe9bc846ce","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b9a4aedb31bbb14a4062d0890357fc2359152781de4296c5ce662cdd10f39805"},"ros-jazzy-examples-rclcpp-minimal-client-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452595670,"md5":"bc9df7eaee0193f1cf5b4ab516b9937f","name":"ros-jazzy-examples-rclcpp-minimal-client","requires":[],"size":55044,"version":"0.19.4","binstar":{"package_id":"6777ce3a283e553519ee3f75","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a54f8dae86ebbbd605f44af72a3495da7384fc8be580e7045533c3fce0bb0d57"},"ros-jazzy-rsl-1.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","fmt","python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-tcb-span","ros-jazzy-tl-expected","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","fmt >=11.0.2,<12.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","graphviz >=12.0.0,<13.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486641622,"md5":"b93d0e43e2a773ae8f13953757fae73b","name":"ros-jazzy-rsl","requires":[],"size":48731,"version":"1.1.0","binstar":{"package_id":"6777ce3dc5779afe9bc846d0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f5fc87f89289a2b74f3bd8273e820203254921f09e3baea1cadbd3eec966ae2d"},"ros-jazzy-examples-rclpy-minimal-action-client-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-example-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452387349,"md5":"b64678e21573713ef38f1c99d79d6e22","name":"ros-jazzy-examples-rclpy-minimal-action-client","requires":[],"size":25980,"version":"0.19.4","binstar":{"package_id":"6777ce40e98b99d2473b96c6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a7692a7574f178c7e470c6954070283b5074725a6e3ba2585094bee67365962a"},"ros-jazzy-camera-calibration-parsers-5.1.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-yaml-cpp-vendor","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485912755,"md5":"3ecbba6d717b3376549290719b8f82e9","name":"ros-jazzy-camera-calibration-parsers","requires":[],"size":94903,"version":"5.1.5","binstar":{"package_id":"6777ce4e5687576dae3b96c7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2facaf13782f38f2bd7a7914f43b912990b46e825301faca67f6d879f961ddfb"},"ros-jazzy-rqt-gui-cpp-1.6.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-pluginlib","ros-jazzy-qt-gui-cpp","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","xorg-libxext >=1.3.6,<2.0a0","qt-main >=5.15.15,<5.16.0a0","xorg-libx11 >=1.8.10,<2.0a0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452124151,"md5":"4d3a998fa84377d2ca0afa853fc89369","name":"ros-jazzy-rqt-gui-cpp","requires":[],"size":154453,"version":"1.6.0","binstar":{"package_id":"6777ce50e8b8e2b2622fbc13","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8f2f55a6c21730434b04b963df182d9249e82820c34df0a1e86ce52afab2808d"},"ros-jazzy-rqt-py-common-1.6.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.14","libcxx >=19","qt-main >=5.15.15,<5.16.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libxext >=1.3.6,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452028939,"md5":"92a4b622df2c58f64abc406eef17b502","name":"ros-jazzy-rqt-py-common","requires":[],"size":79637,"version":"1.6.0","binstar":{"package_id":"6777ce5282184074a22fbbf6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a10020e2ca28d327c8a8b07cc5567fba2bf6746e04a036899a1575d8b50288fc"},"ros-jazzy-filters-2.1.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["libboost-devel","python","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","libboost >=1.86.0,<1.87.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485804139,"md5":"3c6b0029d7d9bbd4c7ada753a3fad1e0","name":"ros-jazzy-filters","requires":[],"size":118854,"version":"2.1.2","binstar":{"package_id":"6777ce5cb89b363eb8ee3f8d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fa1ce2c366285e19220fdb22606ae603b8e36037847dee657815098fbce6e8be"},"ros-jazzy-demo-nodes-py-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452212219,"md5":"614edbd2e2155896d5c5804fd6633724","name":"ros-jazzy-demo-nodes-py","requires":[],"size":43403,"version":"0.33.5","binstar":{"package_id":"6777ce5d072330a8f73b96b4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"43bb8338d8f4e4898ed738b230ca05c338acce0b3beba53ee37ad026823ef3db"},"ros-jazzy-geometric-shapes-2.3.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["assimp","eigen","libboost","libboost-devel","python","qhull","ros-jazzy-console-bridge-vendor","ros-jazzy-eigen-stl-containers","ros-jazzy-eigen3-cmake-module","ros-jazzy-geometry-msgs","ros-jazzy-random-numbers","ros-jazzy-rclcpp","ros-jazzy-resource-retriever","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-shape-msgs","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","fcl >=0.7.0,<0.8.0a0","python_abi 3.11.* *_cp311","qhull >=2020.2,<2020.3.0a0","libboost >=1.86.0,<1.87.0a0","assimp >=5.4.3,<5.4.4.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","octomap >=1.10.0,<1.11.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486949489,"md5":"c6b23b965aab187ffe1811f92492a506","name":"ros-jazzy-geometric-shapes","requires":[],"size":180033,"version":"2.3.1","binstar":{"package_id":"6777ce5d4fbc7913cd2fbc09","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"00153a29189bd3fbe42f54eac4c2416cc99b28580a39df8c15a4a7d3001239a7"},"ros-jazzy-behaviortree-cpp-4.6.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["cppzmq","python","ros-jazzy-ament-index-cpp","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","sqlite","zeromq","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","libsqlite >=3.47.2,<4.0a0","zeromq >=4.3.5,<4.4.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486081562,"md5":"c29a50a88bc4eb240882971c6607a226","name":"ros-jazzy-behaviortree-cpp","requires":[],"size":650111,"version":"4.6.2","binstar":{"package_id":"6777cefe0eb0c3214ec846de","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3d7ab5aaee53d54b1844a789d8c22d8271e6ee56eef72fa4e57a689bbbeb63a3"},"ros-jazzy-launch-param-builder-0.1.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","pyyaml","ros-jazzy-ament-index-python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-xacro","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485757173,"md5":"aed59370b629ab1c2aa7327e15e9f044","name":"ros-jazzy-launch-param-builder","requires":[],"size":26304,"version":"0.1.1","binstar":{"package_id":"6777cf044b76e5fa113b96bc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"65c11438af2cc753493ef396f09913c9dd1f3472eb7b314c2a18f7f35217a5fc"},"ros-jazzy-rqt-gui-1.6.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452272659,"md5":"db92e7c3157b8ceb964fbb32dc719446","name":"ros-jazzy-rqt-gui","requires":[],"size":120627,"version":"1.6.0","binstar":{"package_id":"6777cf064fbc7913cd2fbc0f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"603584cc7062436a4bcee05f9e1c179dfbd49b30691d50718302e946f99050fd"},"ros-jazzy-parameter-traits-0.3.9-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["fmt","python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-rsl","ros-jazzy-tcb-span","ros-jazzy-tl-expected","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","fmt >=11.0.2,<12.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487474968,"md5":"a29f6af0944cc172d7158fac57f41fdf","name":"ros-jazzy-parameter-traits","requires":[],"size":41848,"version":"0.3.9","binstar":{"package_id":"6777cf6eb89b363eb8ee3f91","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"df34a0cf5f392f57d70e1627f77141964fc549008e2965afd1f38b0eef4b532c"},"ros-jazzy-realtime-tools-3.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485596271,"md5":"5afaa33d618006fd9fd0d530e6bec328","name":"ros-jazzy-realtime-tools","requires":[],"size":65362,"version":"3.1.0","binstar":{"package_id":"6777cf710eb0c3214ec846e4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"dd49947fa56c3b1634eda65c8f63c8bd0f8f8160941f8bfa3048539bd5604607"},"ros-jazzy-action-tutorials-cpp-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453136476,"md5":"9fd31c09b321bdba62ba0189596e1af3","name":"ros-jazzy-action-tutorials-cpp","requires":[],"size":114571,"version":"0.33.5","binstar":{"package_id":"6777cf7ae98b99d2473b96cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e990519d78adbb5ba74783d4adb9c156ed4ee982799f1da72c5b1c55d70d0260"},"ros-jazzy-depthimage-to-laserscan-2.5.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","libopencv >=4.10.0,<4.10.1.0a0","xorg-libxext >=1.3.6,<2.0a0","python_abi 3.11.* *_cp311","py-opencv >=4.10.0,<5.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453074801,"md5":"948b020346e3b8fcf67ddd9b3304855d","name":"ros-jazzy-depthimage-to-laserscan","requires":[],"size":231107,"version":"2.5.1","binstar":{"package_id":"6777cf7b0eb0c3214ec846e7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a74923f539474d13091fbaa08b7ec89eaa10f014bc8eb3842d0512f343aa36f6"},"ros-jazzy-examples-rclcpp-minimal-action-client-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453036900,"md5":"d2bbdab1ddf9e875c48cfb19b99c29f1","name":"ros-jazzy-examples-rclcpp-minimal-action-client","requires":[],"size":121542,"version":"0.19.4","binstar":{"package_id":"6777cf7cbfb8b18a042fbc0d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9761c16aa93c3ec701c28230119266c8402aab2836b42b7ea8eabf14bf337253"},"ros-jazzy-nav2-common-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","pyyaml","ros-jazzy-ament-cmake-core","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-osrf-pycommon","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485574810,"md5":"5636db63681e9e4ea54755d688ad0384","name":"ros-jazzy-nav2-common","requires":[],"size":47348,"version":"1.3.4","binstar":{"package_id":"6777cf8cee7f3ec9a9ee3f88","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e288a786a7f475742e4bd127250695a5bcd10ee5a1ea634d8cd8c5848de003df"},"ros-jazzy-topic-tools-1.3.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-rosidl-runtime-py","ros-jazzy-topic-tools-interfaces","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486689626,"md5":"640b60d022026c78b1ca0b7f12268b02","name":"ros-jazzy-topic-tools","requires":[],"size":204381,"version":"1.3.2","binstar":{"package_id":"6777cf90c5779afe9bc846da","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d81c8cf7db6f51341c9c463869f572ce30bd26a957ea33347c97ec77d6cabb23"},"ros-jazzy-camera-info-manager-5.1.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-camera-calibration-parsers","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-rcpputils","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487036352,"md5":"2799e570ec083c4ab1d375b4839542fe","name":"ros-jazzy-camera-info-manager","requires":[],"size":67613,"version":"5.1.5","binstar":{"package_id":"6777cfba283e553519ee3f7a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"37cc1e26ab0bbd53653e012f1cd1863f238f35be4d55a7980cd0b66d4257c352"},"ros-jazzy-joy-3.3.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453433200,"md5":"bfcaec0d70c1d61416e3f4ac934f4819","name":"ros-jazzy-joy","requires":[],"size":227126,"version":"3.3.0","binstar":{"package_id":"6777cfbb0cbafc2308ee3f89","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"69f764655aa78c428e04c38c1e0ead5af44ecde9eb01cc41730140df73102fe2"},"ros-jazzy-velodyne-laserscan-2.5.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486338204,"md5":"49129bed87b5ba95093c2061fa6308f8","name":"ros-jazzy-velodyne-laserscan","requires":[],"size":165945,"version":"2.5.1","binstar":{"package_id":"6777cfbde8b8e2b2622fbc1e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"273cc911d4984579890dc64c2c77a059a8eb8938d65c0f47d94096880f4cc36a"},"ros-jazzy-vision-opencv-4.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-cv-bridge","ros-jazzy-image-geometry","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486012473,"md5":"b9f09c8deb574397f5c6cc77f9bf8629","name":"ros-jazzy-vision-opencv","requires":[],"size":20828,"version":"4.1.0","binstar":{"package_id":"6777cfbf272818152c2fbc05","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"079aa601210c752ee85a07d269e695085b5a1f5e93e3f22256d73925be341090"},"ros-jazzy-examples-rclcpp-minimal-action-server-0.19.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452970909,"md5":"71f40e3cc4f9a1eeb76cd78decfd75a8","name":"ros-jazzy-examples-rclcpp-minimal-action-server","requires":[],"size":78792,"version":"0.19.4","binstar":{"package_id":"6777cfe71167e11d113b96b5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a60f93efb1d6031c23d5b7b9f44f759b14d7082c92e3e8eded86e001d7316a36"},"ros-jazzy-quality-of-service-demo-cpp-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452820960,"md5":"4f3346f6c1a22c77f35cab76eaa6277e","name":"ros-jazzy-quality-of-service-demo-cpp","requires":[],"size":459785,"version":"0.33.5","binstar":{"package_id":"6777cfee1744634607c846dc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b69ac56f5ec9bc5814579a73789fa8069576723b463f8213ffac36e39b02e8bc"},"ros-jazzy-bondcpp-4.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-bond","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-smclib","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486955080,"md5":"1984971d65b283b82c00d9dbb6ec8482","name":"ros-jazzy-bondcpp","requires":[],"size":164770,"version":"4.1.0","binstar":{"package_id":"6777d085e8b8e2b2622fbc24","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"04ff71f6b2bbb1c112dd7eec4ef30590068282b3895bd50af9b2d28069b0c695"},"ros-jazzy-moveit-configs-utils-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ament-index-python","ros-jazzy-launch","ros-jazzy-launch-param-builder","ros-jazzy-launch-ros","ros-jazzy-ros-workspace","ros-jazzy-srdfdom","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487048158,"md5":"6c241b1073bcc34a3cd582ac614df6d3","name":"ros-jazzy-moveit-configs-utils","requires":[],"size":41099,"version":"2.12.1","binstar":{"package_id":"6777d0884b76e5fa113b96c4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"024cb2ab67df097dbcb200135dbb244084d604685cdfb887dcceb3ec38249c90"},"ros-jazzy-ros-gz-bridge-1.0.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736452867608,"md5":"4ed51661571523c61f244560c377d220","name":"ros-jazzy-ros-gz-bridge","requires":[],"size":1904970,"version":"1.0.7","binstar":{"package_id":"6777d08b5687576dae3b96ce","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e44615149d71fe55df1728247cd81a39465433cf5f40136abc56bfe3cdeaec0d"},"ros-jazzy-ros-gz-sim-1.0.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libxext >=1.3.6,<2.0a0","gflags >=2.2.2,<2.3.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453330733,"md5":"dac35c1b506f306036c0de81f2a86ee4","name":"ros-jazzy-ros-gz-sim","requires":[],"size":248815,"version":"1.0.7","binstar":{"package_id":"6777d08f71d2ff3380c846ce","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f9f2d9c3271392856beacddac955c1ad16a1516487852066fcc1a8f4032c1e7b"},"ros-jazzy-rqt-gui-py-1.6.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-qt-gui","ros-jazzy-ros-workspace","ros-jazzy-rqt-gui","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453121337,"md5":"d39f064e2f791969294871a932f65792","name":"ros-jazzy-rqt-gui-py","requires":[],"size":40806,"version":"1.6.0","binstar":{"package_id":"6777d093bfb8b18a042fbc12","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9006a44beb312d812d16e9c641dcfa6bbe5f085a25fe32ea3a0e116e8a9b692c"},"ros-jazzy-diagnostic-updater-4.2.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-diagnostic-msgs","ros-jazzy-rclcpp","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485694081,"md5":"37ef4b95a157c3d13e74c9e45f6c361e","name":"ros-jazzy-diagnostic-updater","requires":[],"size":172529,"version":"4.2.1","binstar":{"package_id":"6777d0f09cf4135cd5ee3f9f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ebe1627a2ba4b480cb9de2cb7a47d5d15c69d5e6ffb5b8c1dfbeadc585e1be96"},"ros-jazzy-rqt-graph-1.5.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454028939,"md5":"bcaabf9e8f49541ba89c932b5f6f1e16","name":"ros-jazzy-rqt-graph","requires":[],"size":70789,"version":"1.5.4","binstar":{"package_id":"6777d0f0b89b363eb8ee3f9b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"17083f5e4f5de2ba36e8691c258f5e90880265ddef38338c7bcdb95afb1d5dd2"},"ros-jazzy-rqt-publisher-1.7.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454017107,"md5":"b2c0d11090ea80edccbf888fbd2b9875","name":"ros-jazzy-rqt-publisher","requires":[],"size":43523,"version":"1.7.2","binstar":{"package_id":"6777d0f154270fe296c846d6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b19d715dfba9583fc0ac97c6d642fe5fb3061224f443bfd8633e781b300b9937"},"ros-jazzy-rqt-py-console-1.2.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453992832,"md5":"456cbc2e29ddcc73f17c911957280382","name":"ros-jazzy-rqt-py-console","requires":[],"size":25237,"version":"1.2.2","binstar":{"package_id":"6777d0f3c1e153c141c846c1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0a38acafc76568355cdb7ed1e8920dda812f5107a0bbfe3e5955b8cf79f78288"},"ros-jazzy-rqt-service-caller-1.2.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453961954,"md5":"0e699a2c8d4eeddf44c905c50723b330","name":"ros-jazzy-rqt-service-caller","requires":[],"size":32264,"version":"1.2.1","binstar":{"package_id":"6777d0f51744634607c846e5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b25f659eee5e426599694e6c8d7b9a58167a415c368064ac30723121a8d8588c"},"ros-jazzy-generate-parameter-library-0.3.9-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["fmt","python","ros-jazzy-generate-parameter-library-py","ros-jazzy-parameter-traits","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rsl","ros-jazzy-tcb-span","ros-jazzy-tl-expected","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","fmt >=11.0.2,<12.0a0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736488075081,"md5":"aafa6453e534b646a416ba74bbf77607","name":"ros-jazzy-generate-parameter-library","requires":[],"size":43053,"version":"0.3.9","binstar":{"package_id":"6777d117b89b363eb8ee3f9e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"807aba8758e8923457063f74df0072d40f3572f4752059c9c5b069a4bc0829a6"},"ros-jazzy-camera-calibration-5.0.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["libopencv","py-opencv","python","ros-jazzy-cv-bridge","ros-jazzy-image-geometry","ros-jazzy-message-filters","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-srvs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","py-opencv >=4.10.0,<5.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","libopencv >=4.10.0,<4.10.1.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485883577,"md5":"b639fca0f922ccedeb7374001b63e243","name":"ros-jazzy-camera-calibration","requires":[],"size":121823,"version":"5.0.6","binstar":{"package_id":"6777d11b0cbafc2308ee3f8e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"73aaba72fe5849156f512c67d88abb06367484612d8b3d287b03ef3fbf5a3c81"},"ros-jazzy-diagnostic-aggregator-4.2.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487187649,"md5":"3f97b8290e455ce839b091f97d2264ef","name":"ros-jazzy-diagnostic-aggregator","requires":[],"size":372857,"version":"4.2.1","binstar":{"package_id":"6777d11e241dfcb70b3b969a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"22d1465119c959f996a8f9c09b99007f969b95c07c83ee09cdf1a44e44ecfe12"},"ros-jazzy-rqt-shell-1.2.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453945333,"md5":"a415e0819a35b4d42bfa0785a4956f76","name":"ros-jazzy-rqt-shell","requires":[],"size":29223,"version":"1.2.2","binstar":{"package_id":"6777d1201b37c47cf0ee3f6d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f9b41e2d26d31664252fbacdce9080e90966d484c47d9440987f2b4a15b0237e"},"ros-jazzy-teleop-twist-joy-2.6.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453883300,"md5":"9ff7bd2c3025e1eafdd861860d364573","name":"ros-jazzy-teleop-twist-joy","requires":[],"size":189331,"version":"2.6.2","binstar":{"package_id":"6777d1210eb0c3214ec846f3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"42155b5debd23f830ee7d1970e1f9969f06a81a414a71cc8a96a6bdccaf007fc"},"ros-jazzy-pcl-conversions-2.6.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","libboost-devel","pcl","python","ros-jazzy-message-filters","ros-jazzy-pcl-msgs","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vtk-base","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.14","libcxx >=19","pcl >=1.14.1,<1.14.2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","libboost >=1.86.0,<1.87.0a0","numpy >=1.26.4,<2.0a0","vtk-base >=9.3.1,<9.3.2.0a0","python_abi 3.11.* *_cp311","xorg-libx11 >=1.8.10,<2.0a0","xorg-libxext >=1.3.6,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453703544,"md5":"1659e983acdb02894ec8b99500cfefe5","name":"ros-jazzy-pcl-conversions","requires":[],"size":57003,"version":"2.6.2","binstar":{"package_id":"6777d139272818152c2fbc0e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d3f69e53a8dfed0478f9fa50037cf5f8ff39249810bbe35e666037bcaab1d4f0"},"ros-jazzy-rqt-console-2.2.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453812773,"md5":"e31a9a3a5bfa85fbcdb710938d38fe99","name":"ros-jazzy-rqt-console","requires":[],"size":85642,"version":"2.2.1","binstar":{"package_id":"6777d13cee7f3ec9a9ee3f8f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b4385879aef40196efaa7773839310294d284705f5a344cbc04eee57d00060fe"},"ros-jazzy-rqt-plot-1.4.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453688166,"md5":"62ed99da680f6871d891e44f2ad766b5","name":"ros-jazzy-rqt-plot","requires":[],"size":68987,"version":"1.4.0","binstar":{"package_id":"6777d13ee98b99d2473b96d7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"765fdc5e7c27d24b04fec5dac1bbc6a9937366bab4b1bfab7cb0b0afccb97675"},"ros-jazzy-nav2-msgs-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-builtin-interfaces","ros-jazzy-geographic-msgs","ros-jazzy-geometry-msgs","ros-jazzy-nav-msgs","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-generators","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486766574,"md5":"82b1c08d406ed38a37b7cf9c75745b52","name":"ros-jazzy-nav2-msgs","requires":[],"size":1833274,"version":"1.3.4","binstar":{"package_id":"6777d1884b76e5fa113b96c8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"14143c008dc704dc777086cddd1f3242f10a5b74a3faa45e062184fb5b73f576"},"ros-jazzy-nav2-voxel-grid-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487015420,"md5":"6caae513b0a114b8dd8bef9698a0384e","name":"ros-jazzy-nav2-voxel-grid","requires":[],"size":49151,"version":"1.3.4","binstar":{"package_id":"6777d18cc5960d1d89c846ee","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4b0eb98145dc1de870f6923a81bc76d17c8aad297bcd01685c2adc9f95a6b725"},"ros-jazzy-composition-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453886761,"md5":"6b391df46b1d66cd5dd9d7e1178077c6","name":"ros-jazzy-composition","requires":[],"size":246537,"version":"0.33.5","binstar":{"package_id":"6777d19e4fbc7913cd2fbc22","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0540046987e73081cee0ada87021af574d2c1641638dca091f93aeda96592582"},"ros-jazzy-demo-nodes-cpp-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736453598072,"md5":"6dd62567641cebb28fb9836caf5f08df","name":"ros-jazzy-demo-nodes-cpp","requires":[],"size":910647,"version":"0.33.5","binstar":{"package_id":"6777d19f072330a8f73b96bc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"704c6171a00a8a5f2f9e65aba97510cc15df831ad59ede4fa1d1088d62cc06ae"},"ros-jazzy-control-toolbox-3.4.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["eigen","python","ros-jazzy-control-msgs","ros-jazzy-filters","ros-jazzy-generate-parameter-library","ros-jazzy-geometry-msgs","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rcutils","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442264455,"md5":"0e894f19d3da7ad3f63afe654f73269c","name":"ros-jazzy-control-toolbox","requires":[],"size":176469,"version":"3.4.0","binstar":{"package_id":"6777d2050eb0c3214ec846fc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cd710dc83b9b488bef88c03e3dd3440aabde103919dc75c190fb04a3eda1d3fa"},"ros-jazzy-apriltag-ros-3.2.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-apriltag","ros-jazzy-apriltag-msgs","ros-jazzy-cv-bridge","ros-jazzy-image-transport","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486644575,"md5":"d8ff88b42eff4a5f856c8f7329ea19fb","name":"ros-jazzy-apriltag-ros","requires":[],"size":176457,"version":"3.2.2","binstar":{"package_id":"6777d206bfb8b18a042fbc1f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6a624a37d055cfdf5468d77de4d712540fd5c139f3449065cc123736d2f2b569"},"ros-jazzy-joint-state-publisher-2.4.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485520341,"md5":"995320d01da85d63d3695d4de45869d8","name":"ros-jazzy-joint-state-publisher","requires":[],"size":46210,"version":"2.4.0","binstar":{"package_id":"6777d206ee7f3ec9a9ee3f94","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e5736c3f61b905dc7ec8ed83569dc236d07a3a93730d2688863d494f7bcdde39"},"ros-jazzy-diagnostic-common-diagnostics-4.2.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["psutil","python","ros-jazzy-diagnostic-updater","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486778220,"md5":"d22adab8d72b00d23e534254fe881cfb","name":"ros-jazzy-diagnostic-common-diagnostics","requires":[],"size":45398,"version":"4.2.1","binstar":{"package_id":"6777d2084fbc7913cd2fbc24","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a8198fad6c2ad80b81b9c7e8bfa2406f9fd88b09256882ad63b1adc75919387b"},"ros-jazzy-image-common-5.1.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-camera-calibration-parsers","ros-jazzy-camera-info-manager","ros-jazzy-image-transport","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487718980,"md5":"3aa4079df492f1160fc8d3fb5656ed43","name":"ros-jazzy-image-common","requires":[],"size":24672,"version":"5.1.5","binstar":{"package_id":"6777d20bcd4f7fe7382fbc11","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"78ddd3c5de5ac6e84848f25b68aa55ff85b795f9b4376b2664f28cd595cbe7f8"},"ros-jazzy-self-test-4.2.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-diagnostic-msgs","ros-jazzy-diagnostic-updater","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486746792,"md5":"d3eddbf89b5e1028861e6f5528006def","name":"ros-jazzy-self-test","requires":[],"size":92819,"version":"4.2.1","binstar":{"package_id":"6777d20d9cf4135cd5ee3fa5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"452c7a4677b968d28a20cb42b3f7109aecc047ee8a0569a7e58b42123969cfb9"},"ros-jazzy-joint-limits-4.23.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-trajectory-msgs","ros-jazzy-urdf","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736488561759,"md5":"6b282cf48c771a87f3b87784bcba84b3","name":"ros-jazzy-joint-limits","requires":[],"size":103571,"version":"4.23.0","binstar":{"package_id":"6777d20eee7f3ec9a9ee3f96","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ce8bc67af2a3941ab26a1f62cc5dd2f27e50d6a2020c13367670c27835d18eaf"},"ros-jazzy-rqt-msg-1.5.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454150035,"md5":"f27fc68bd0f77df80a3561620d4c7c5d","name":"ros-jazzy-rqt-msg","requires":[],"size":30299,"version":"1.5.1","binstar":{"package_id":"6777d226dfa78867392fbc04","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9b45434ccbc78519fc455967e3c4ff0ef922c470d1473373d47e06e2b46efdfa"},"ros-jazzy-rqt-reconfigure-1.6.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454186504,"md5":"3d012a9da6aeecdbbb65c3d0551a9a24","name":"ros-jazzy-rqt-reconfigure","requires":[],"size":80183,"version":"1.6.2","binstar":{"package_id":"6777d228c5960d1d89c846f7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"dac434c0de5428408a7f2942e43259046df0ee24f87bb2abf07f2c9ac7c82d2c"},"ros-jazzy-velodyne-driver-2.5.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["libpcap","python","ros-jazzy-diagnostic-updater","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-tf2-ros","ros-jazzy-velodyne-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","libpcap >=1.10.4,<1.11.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487391324,"md5":"585d7baa450e740dacc4c795f8c94c66","name":"ros-jazzy-velodyne-driver","requires":[],"size":203957,"version":"2.5.1","binstar":{"package_id":"6777d22a1744634607c846ee","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ad058729fe19ccadc09490a9e20d4714f025a337e3cffc6e20bd3719f93f658a"},"ros-jazzy-velodyne-pointcloud-2.5.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","libboost-devel","pcl","python","ros-jazzy-angles","ros-jazzy-diagnostic-updater","ros-jazzy-geometry-msgs","ros-jazzy-message-filters","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-tf2","ros-jazzy-tf2-ros","ros-jazzy-velodyne-msgs","ros2-distro-mutex 0.6.* jazzy_*","vtk-base","yaml-cpp","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","yaml-cpp >=0.8.0,<0.9.0a0","pcl >=1.14.1,<1.14.2.0a0","python_abi 3.11.* *_cp311","vtk-base >=9.3.1,<9.3.2.0a0","xorg-libxext >=1.3.6,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","libboost >=1.86.0,<1.87.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487260386,"md5":"e64a2d4e47e3fb3a7d6685c21f738c65","name":"ros-jazzy-velodyne-pointcloud","requires":[],"size":283895,"version":"2.5.1","binstar":{"package_id":"6777d22b0eb0c3214ec84702","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7404eac3fb9e634126516bfd762c80be7d5d16e219203ceabc601a3e360b4dfa"},"ros-jazzy-image-publisher-5.0.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-camera-info-manager","ros-jazzy-cv-bridge","ros-jazzy-image-transport","ros-jazzy-rcl-interfaces","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487478315,"md5":"4c2c95bcc8e0feaea905c10c2498172f","name":"ros-jazzy-image-publisher","requires":[],"size":171193,"version":"5.0.6","binstar":{"package_id":"6777d2474b76e5fa113b96ce","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b2bc0e769f494ae86d48ef4a5fdbab82c90177c87c01fc6d8507f74a64aa4c38"},"ros-jazzy-image-view-5.0.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-camera-calibration-parsers","ros-jazzy-cv-bridge","ros-jazzy-image-transport","ros-jazzy-message-filters","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-srvs","ros-jazzy-stereo-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","xorg-libxext >=1.3.6,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487018743,"md5":"3e98c3338f065221cee65eff883cbcfc","name":"ros-jazzy-image-view","requires":[],"size":346497,"version":"5.0.6","binstar":{"package_id":"6777d248272818152c2fbc12","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"948be13e6c3b1b236dc4bf5e3414d209fc92ec45c2a2a5c6898c0c76853b4fa8"},"ros-jazzy-nav2-simple-commander-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-geometry-msgs","ros-jazzy-lifecycle-msgs","ros-jazzy-nav2-msgs","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487628941,"md5":"43d4da62893eb17f54508aec8ccb3ad2","name":"ros-jazzy-nav2-simple-commander","requires":[],"size":64421,"version":"1.3.4","binstar":{"package_id":"6777d24971d2ff3380c846d5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4442024f13cfc1a4ba158996ef26584900aeb7740d716eb5be39d56a45f947be"},"ros-jazzy-rqt-image-view-1.3.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.14","libcxx >=19","xorg-libxext >=1.3.6,<2.0a0","qt-main >=5.15.15,<5.16.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libx11 >=1.8.10,<2.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454457511,"md5":"187199a794a9d61c91e435d0ea9a554c","name":"ros-jazzy-rqt-image-view","requires":[],"size":261646,"version":"1.3.0","binstar":{"package_id":"6777d24ac5960d1d89c846fb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"40d141462def022938ee6289d50285e70a2b3921ce77902c0412a086f11c0987"},"ros-jazzy-rqt-topic-1.7.3-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454446309,"md5":"9ee38116977a384c2f5a1b53702eb9c5","name":"ros-jazzy-rqt-topic","requires":[],"size":38944,"version":"1.7.3","binstar":{"package_id":"6777d24ce8b8e2b2622fbc35","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0ea09be67819a60c29c99c443e20381146e5ee39b012faac012ed4c984cc0662"},"ros-jazzy-compressed-depth-image-transport-4.0.3-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-cv-bridge","ros-jazzy-image-transport","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454345083,"md5":"dcd64480fd48944531d61abdedd080e1","name":"ros-jazzy-compressed-depth-image-transport","requires":[],"size":247864,"version":"4.0.3","binstar":{"package_id":"6777d26571d2ff3380c846d9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7ffe0fd1f0f5d61280f3fb116096761ccfd08716c147d53cff8ed09936b79b39"},"ros-jazzy-compressed-image-transport-4.0.3-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-cv-bridge","ros-jazzy-image-transport","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455023397,"md5":"9d016e294515f97549490ac2a8a6d252","name":"ros-jazzy-compressed-image-transport","requires":[],"size":248960,"version":"4.0.3","binstar":{"package_id":"6777d26954270fe296c846db","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2aecaebbec4d3dfcf0d32cefa9a5ec5ff3983cc004feb8a3cbf5774d2fd60c96"},"ros-jazzy-ros-gz-image-1.0.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454403236,"md5":"d6be518519a43874da6628495a9e53d1","name":"ros-jazzy-ros-gz-image","requires":[],"size":63129,"version":"1.0.7","binstar":{"package_id":"6777d26b86441a05f32fbc04","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"dc9a31e95d7f0c8eee046d11a66f700a39534a1b959ac130121990ba9af2ba31"},"ros-jazzy-theora-image-transport-4.0.3-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","xorg-libxext >=1.3.6,<2.0a0","libogg >=1.3.5,<1.4.0a0","libtheora >=1.1.1,<1.2.0a0","libopencv >=4.10.0,<4.10.1.0a0","python_abi 3.11.* *_cp311","py-opencv >=4.10.0,<5.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libx11 >=1.8.10,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454874990,"md5":"5f78dd539b38e8c7a742f4347ea55365","name":"ros-jazzy-theora-image-transport","requires":[],"size":339899,"version":"4.0.3","binstar":{"package_id":"6777d26dd7b44dbce48f268d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c42ac9308592e41056f7aa8fc596d06a9ed04f8fbe24f19eeaf82f0764ee066f"},"ros-jazzy-zstd-image-transport-4.0.3-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-image-transport","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","zlib","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","libzlib >=1.3.1,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454807819,"md5":"bc2f6d2757465109aba3d6d16abedb5a","name":"ros-jazzy-zstd-image-transport","requires":[],"size":161505,"version":"4.0.3","binstar":{"package_id":"6777d270ae91a6a6d62fbbf8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"da2a28216eae7ccd06cc230dd9831d7f9e58cf108cb0f68e7aa974d0ea000867"},"ros-jazzy-rviz-common-14.1.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","xorg-libxext >=1.3.6,<2.0a0","qt-main >=5.15.15,<5.16.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libx11 >=1.8.10,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736454218740,"md5":"194535972683aa58b5bab77362b688dd","name":"ros-jazzy-rviz-common","requires":[],"size":685254,"version":"14.1.6","binstar":{"package_id":"6777d2c8a88e57537b8b59cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bf4b3d111ea2123364f97384e76145bdec50c16bd844d52c79f9dc0925cc62d4"},"ros-jazzy-rviz-common-14.1.6-np126py311hd69bdec_3.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_3","build_number":3,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=18","__osx >=10.13","xorg-libx11 >=1.8.10,<2.0a0","qt-main >=5.15.15,<5.16.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","xorg-libxext >=1.3.6,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1737495968866,"md5":"23e07db9a6db5cc002ec04c02be198f6","name":"ros-jazzy-rviz-common","requires":[],"size":688244,"version":"14.1.6","binstar":{"package_id":"6777d2c8a88e57537b8b59cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b032a9cf21115f17cff886c7f1627d83939edd569fa98a21fda3e81003435dce"},"ros-jazzy-hardware-interface-4.23.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-control-msgs","ros-jazzy-joint-limits","ros-jazzy-lifecycle-msgs","ros-jazzy-pluginlib","ros-jazzy-rclcpp-lifecycle","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-sdformat-urdf","ros-jazzy-tinyxml2-vendor","ros-jazzy-urdf","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489052580,"md5":"ddaa1cb4ae6fd18fd5af7850dc6df0f4","name":"ros-jazzy-hardware-interface","requires":[],"size":322040,"version":"4.23.0","binstar":{"package_id":"6777d35d4479e9794f8f268c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8c9e760dcac75f754254e9cb793891ef32e98232770745d42963ce08505ae3ac"},"ros-jazzy-joint-state-publisher-gui-2.4.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-joint-state-publisher","ros-jazzy-python-qt-binding","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486756616,"md5":"0be658ec30ca0876378a00dbb62610c6","name":"ros-jazzy-joint-state-publisher-gui","requires":[],"size":29038,"version":"2.4.0","binstar":{"package_id":"6777d35e66375628ab8b59ca","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0af0f4fba1c766c104e4f6b37dfd569bc91f6130e9c5cc4d3a10a345c68ff5bd"},"ros-jazzy-nav2-util-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-bond","ros-jazzy-bondcpp","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-lifecycle-msgs","ros-jazzy-nav-msgs","ros-jazzy-nav2-common","ros-jazzy-nav2-msgs","ros-jazzy-rcl-interfaces","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","libboost >=1.86.0,<1.87.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487532542,"md5":"4580adac31692abb59434862d88f988c","name":"ros-jazzy-nav2-util","requires":[],"size":218966,"version":"1.3.4","binstar":{"package_id":"6777d35fe8b8e2b2622fbc3c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"66171cf47466bb8e4c4b1b41520320138a69f98618e5275c07ee8b0398659d07"},"ros-jazzy-laser-filters-2.0.8-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-angles","ros-jazzy-filters","ros-jazzy-laser-geometry","ros-jazzy-message-filters","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-kdl","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486642287,"md5":"aca70771f031de3ec9a0353618c527c2","name":"ros-jazzy-laser-filters","requires":[],"size":604279,"version":"2.0.8","binstar":{"package_id":"6777d364bd021e1d5b8b59cf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0b33c7eae78b45aba4e3546a4d1a8b02f71e39cab45318fb96feb419a3dc9a0e"},"ros-jazzy-rqt-action-2.2.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455236188,"md5":"a9b1142ad58c025b48588cc9589423c3","name":"ros-jazzy-rqt-action","requires":[],"size":20049,"version":"2.2.0","binstar":{"package_id":"6777d367bfb8b18a042fbc28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5ac82d0ff6a5979a96e3d6e1c24c596eb36c375f8c6a516c4a96f5ce26ae6901"},"ros-jazzy-rqt-srv-1.2.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros-jazzy-rqt-msg","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455220968,"md5":"7f15d94e1e61ddfcd8ffc8df36795bd8","name":"ros-jazzy-rqt-srv","requires":[],"size":20761,"version":"1.2.2","binstar":{"package_id":"6777d3694479e9794f8f2693","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0e0450b81981b1c14298c280c4adf38d6da18ce3178dbfbbf81e39ea465be1cf"},"ros-jazzy-velodyne-2.5.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-velodyne-driver","ros-jazzy-velodyne-laserscan","ros-jazzy-velodyne-msgs","ros-jazzy-velodyne-pointcloud","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487703252,"md5":"f1f7fde7da5c73524bb4758210b34420","name":"ros-jazzy-velodyne","requires":[],"size":25818,"version":"2.5.1","binstar":{"package_id":"6777d36a04dc6d95688b59cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cad37fbbfed2eed7e7fb4d12224a2d09dcec8c986600484d1cba35e1c528c31a"},"ros-jazzy-diagnostics-4.2.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-diagnostic-aggregator","ros-jazzy-diagnostic-common-diagnostics","ros-jazzy-diagnostic-updater","ros-jazzy-ros-workspace","ros-jazzy-self-test","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487733837,"md5":"0b3238516918039c198c393d6d8c6ae7","name":"ros-jazzy-diagnostics","requires":[],"size":20787,"version":"4.2.1","binstar":{"package_id":"6777d3afca421b4ff78f268c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8a89087e87cf1edfd2e3466208a27ef0ac28ab125e7b34aec608b9d6b11f7900"},"ros-jazzy-dummy-robot-bringup-0.33.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455146997,"md5":"c3bbdc6653ce8b7bda059e914bb14da2","name":"ros-jazzy-dummy-robot-bringup","requires":[],"size":28928,"version":"0.33.5","binstar":{"package_id":"6777d3b11000bbd6d58f268e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"eb0709bf127bad8dc25b136f5f963edffda78f4fb3a75afd3e04e86be97c36ac"},"ros-jazzy-sbg-driver-3.2.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-nav-msgs","ros-jazzy-nmea-msgs","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-rtcm-msgs","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros-jazzy-std-srvs","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486794821,"md5":"3e51e2eb3d0e964b8806e9fdaa3260af","name":"ros-jazzy-sbg-driver","requires":[],"size":1184506,"version":"3.2.0","binstar":{"package_id":"6777d3b310af1de5228b59cd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e3101580f7c6c17742c6bfa5fc8a07c13ed8584fd2d8667a879677b032def77c"},"ros-jazzy-image-proc-5.0.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["libopencv","py-opencv","python","ros-jazzy-camera-calibration-parsers","ros-jazzy-cv-bridge","ros-jazzy-geometry-msgs","ros-jazzy-image-geometry","ros-jazzy-image-transport","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tracetools-image-pipeline","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","libopencv >=4.10.0,<4.10.1.0a0","numpy >=1.26.4,<2.0a0","xorg-libxext >=1.3.6,<2.0a0","py-opencv >=4.10.0,<5.0a0","python_abi 3.11.* *_cp311","xorg-libx11 >=1.8.10,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486949255,"md5":"b31adb3661efd7a24f8126ce06de2922","name":"ros-jazzy-image-proc","requires":[],"size":278928,"version":"5.0.6","binstar":{"package_id":"6777d3df1744634607c846fc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"79b451b1217be48788c346ea5a556a43e60a063d5d6ab60ba07257e82587fccc"},"ros-jazzy-image-rotate-5.0.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["libopencv","py-opencv","python","ros-jazzy-cv-bridge","ros-jazzy-geometry-msgs","ros-jazzy-image-transport","ros-jazzy-rcl-interfaces","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","libopencv >=4.10.0,<4.10.1.0a0","xorg-libx11 >=1.8.10,<2.0a0","python_abi 3.11.* *_cp311","xorg-libxext >=1.3.6,<2.0a0","py-opencv >=4.10.0,<5.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486566094,"md5":"c053df4271118744dd737d8a3b483cf3","name":"ros-jazzy-image-rotate","requires":[],"size":207715,"version":"5.0.6","binstar":{"package_id":"6777d3e1bd021e1d5b8b59d3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0e77d385a931370c77853e51061fd70e751e034f338ab2d1d7085b90ae393e44"},"ros-jazzy-image-transport-plugins-4.0.3-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455151856,"md5":"ce276983fa7cb0d876f5ae4b842f2b01","name":"ros-jazzy-image-transport-plugins","requires":[],"size":21104,"version":"4.0.3","binstar":{"package_id":"6777d3e3c5779afe9bc846ee","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"402ba97304c65ce2ad85ac8763327904c0d271770a30d79aa20fa8c0875c07f7"},"ros-jazzy-pcl-ros-2.6.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","libboost-devel","pcl","python","ros-jazzy-geometry-msgs","ros-jazzy-pcl-conversions","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-tf2","ros-jazzy-tf2-eigen","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","vtk-base","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.14","libcxx >=19","pcl >=1.14.1,<1.14.2.0a0","xorg-libxext >=1.3.6,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","vtk-base >=9.3.1,<9.3.2.0a0","libboost >=1.86.0,<1.87.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486101395,"md5":"8cd1c4eea2ea49423e86ff33a75793d9","name":"ros-jazzy-pcl-ros","requires":[],"size":557699,"version":"2.6.2","binstar":{"package_id":"6777d3e51744634607c846fe","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b539d2531b4c3febce82d8c63d2a62634a2ee44c92071249f3101bfc2104636c"},"ros-jazzy-robot-localization-3.8.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","geographiclib-cpp","libboost-devel","python","ros-jazzy-angles","ros-jazzy-diagnostic-msgs","ros-jazzy-diagnostic-updater","ros-jazzy-geographic-msgs","ros-jazzy-geometry-msgs","ros-jazzy-message-filters","ros-jazzy-nav-msgs","ros-jazzy-rclcpp","ros-jazzy-rmw-implementation","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros-jazzy-std-srvs","ros-jazzy-tf2","ros-jazzy-tf2-eigen","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros-jazzy-yaml-cpp-vendor","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","geographiclib-cpp >=2.5,<2.6.0a0","libboost >=1.86.0,<1.87.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486756173,"md5":"57509e6df9ef0fcd587c99e806c9050e","name":"ros-jazzy-robot-localization","requires":[],"size":983787,"version":"3.8.1","binstar":{"package_id":"6777d401189ff81bb0c846cd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"49810edf7a94522fe9cd0cc5cb1062f5e0b84efa009892bdcb7f8a8501090450"},"ros-jazzy-rviz-visual-testing-framework-14.1.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","qt-main >=5.15.15,<5.16.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libxext >=1.3.6,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455258741,"md5":"a2c39ec4bc2f3c3ac87ee22ff6f956ac","name":"ros-jazzy-rviz-visual-testing-framework","requires":[],"size":121881,"version":"14.1.6","binstar":{"package_id":"6777d405272818152c2fbc1f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7fe702e439e6b453369c54bff5470e9e57aa51b86175af048adbc466877bef00"},"ros-jazzy-warehouse-ros-2.0.5-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["libboost-devel","libboost-python-devel","openssl","python","ros-jazzy-geometry-msgs","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","libboost >=1.86.0,<1.87.0a0","openssl >=3.4.0,<4.0a0","numpy >=1.26.4,<2.0a0","libboost-python >=1.86.0,<1.87.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736485868264,"md5":"a372d92eed0e242190acc02d370b4e29","name":"ros-jazzy-warehouse-ros","requires":[],"size":164927,"version":"2.0.5","binstar":{"package_id":"6777d407ae91a6a6d62fbbfb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e600d2e46ebc6b28c1b37af8aa8dfb29cd19f5eec5e996300f79b6e3f812b7b0"},"ros-jazzy-perception-pcl-2.6.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-pcl-conversions","ros-jazzy-pcl-msgs","ros-jazzy-pcl-ros","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487432379,"md5":"6f98a7975d9e9c17965298ca0ebf6f02","name":"ros-jazzy-perception-pcl","requires":[],"size":20923,"version":"2.6.2","binstar":{"package_id":"6777d43f6a0bceb80dc846e2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"805f5e206399fa9a5f0397ae6211313bef7f1d5dac6ec0ea1ee296a6764e0bec"},"ros-jazzy-controller-interface-4.23.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-hardware-interface","ros-jazzy-rclcpp-lifecycle","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489434055,"md5":"d0a0b2212ab9845944f2e7efcf2e605d","name":"ros-jazzy-controller-interface","requires":[],"size":88512,"version":"4.23.0","binstar":{"package_id":"6777d49d4479e9794f8f269b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"62b47746d711abc1ff1f10ae823d05affe4ea6f6027468f831b1576626d72150"},"ros-jazzy-hardware-interface-testing-4.23.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-control-msgs","ros-jazzy-hardware-interface","ros-jazzy-lifecycle-msgs","ros-jazzy-pluginlib","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-ros2-control-test-assets","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489359811,"md5":"e078815a6cdebdb1cb081d96e9238d71","name":"ros-jazzy-hardware-interface-testing","requires":[],"size":93078,"version":"4.23.0","binstar":{"package_id":"6777d49fc7f0608d038b59d2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0f26242ef7a6bac1bb2205c5a9dac6015444d212a4f63f04bb7a6e56992bd1f6"},"ros-jazzy-nav2-lifecycle-manager-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-bondcpp","ros-jazzy-diagnostic-updater","ros-jazzy-geometry-msgs","ros-jazzy-lifecycle-msgs","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros-jazzy-std-srvs","ros-jazzy-tf2-geometry-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736488197037,"md5":"0912a45d415b2daba43a648802057bdb","name":"ros-jazzy-nav2-lifecycle-manager","requires":[],"size":130656,"version":"1.3.4","binstar":{"package_id":"6777d4a1a88e57537b8b59cd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0a22c5a1fab0a46bd8b0f9aa5c3c829ecccffded8bd7922c52ca1a353c7e6d66"},"ros-jazzy-nav2-map-server-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["graphicsmagick","python","ros-jazzy-launch-ros","ros-jazzy-launch-testing","ros-jazzy-nav-msgs","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros-jazzy-tf2","ros-jazzy-yaml-cpp-vendor","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736488116563,"md5":"5a35f3daf36c4a3d1c1f19bdcb3a2fc5","name":"ros-jazzy-nav2-map-server","requires":[],"size":283629,"version":"1.3.4","binstar":{"package_id":"6777d4a2a88e57537b8b59cf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6965ca13718a03173438111a768f5012420d6e3f5dd36ad9a21b4bbf796c2d1e"},"ros-jazzy-depth-image-proc-5.0.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["libopencv","py-opencv","python","ros-jazzy-cv-bridge","ros-jazzy-image-geometry","ros-jazzy-image-proc","ros-jazzy-image-transport","ros-jazzy-message-filters","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-stereo-msgs","ros-jazzy-tf2","ros-jazzy-tf2-eigen","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.14","libcxx >=19","libopencv >=4.10.0,<4.10.1.0a0","py-opencv >=4.10.0,<5.0a0","python_abi 3.11.* *_cp311","xorg-libxext >=1.3.6,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487554535,"md5":"b5f7faf1c3291a2d02f896306dd78123","name":"ros-jazzy-depth-image-proc","requires":[],"size":415168,"version":"5.0.6","binstar":{"package_id":"6777d5276a0bceb80dc846e4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"06c6f280c60d902698c188d5bce3530aa67a8827925b25c873731057209c474e"},"ros-jazzy-nav2-amcl-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-launch-ros","ros-jazzy-launch-testing","ros-jazzy-message-filters","ros-jazzy-nav-msgs","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-srvs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736488153623,"md5":"bc63b29430d9c5097cfcb3b4ebf4e643","name":"ros-jazzy-nav2-amcl","requires":[],"size":425914,"version":"1.3.4","binstar":{"package_id":"6777d52954270fe296c846e4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2ade0b0556ec97fd868d12c4b791bdb37cb0493b22491d73e0cca47936123d9b"},"ros-jazzy-nav2-velocity-smoother-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-nav2-util","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736488117210,"md5":"2e8c15ffb76de1cd4ebdf9f937017e01","name":"ros-jazzy-nav2-velocity-smoother","requires":[],"size":210768,"version":"1.3.4","binstar":{"package_id":"6777d52bbfb8b18a042fbc2d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3fb6f215f8fe3a1c17aadf0c38fda5028964298b46e6b3e710811d16f9bd98eb"},"ros-jazzy-stereo-image-proc-5.0.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-cv-bridge","ros-jazzy-image-geometry","ros-jazzy-image-proc","ros-jazzy-image-transport","ros-jazzy-message-filters","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-stereo-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","libopencv >=4.10.0,<4.10.1.0a0","python_abi 3.11.* *_cp311","py-opencv >=4.10.0,<5.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487961598,"md5":"16ed94495a849b773790426b5c83663e","name":"ros-jazzy-stereo-image-proc","requires":[],"size":367037,"version":"5.0.6","binstar":{"package_id":"6777d52f96cb5a5d358f268a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fe2dbd5ec9020da6d16c167bcc1cbdc981d7870a89af49763669e66a20d96315"},"ros-jazzy-nav-2d-utils-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-nav-2d-msgs","ros-jazzy-nav-msgs","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736488495527,"md5":"aa4621a44dc15d80a75171db9d966233","name":"ros-jazzy-nav-2d-utils","requires":[],"size":58390,"version":"1.3.4","binstar":{"package_id":"6777d74d6043c75fbc8f268d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fa3a5421f371348e8eea60adafbb159e228ece25541d469beb8ba7928209d29b"},"ros-jazzy-nav2-behavior-tree-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-behaviortree-cpp","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-lifecycle-msgs","ros-jazzy-nav-msgs","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros-jazzy-std-srvs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736488237539,"md5":"6cbc22bcadae7f9e038aa29d3fe96a15","name":"ros-jazzy-nav2-behavior-tree","requires":[],"size":1316686,"version":"1.3.4","binstar":{"package_id":"6777d74ebfb8b18a042fbc2f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f234210bf2de54f2ad63518022591be6034b3d6b97c9e2af414b145cb96cd00c"},"ros-jazzy-opennav-docking-core-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736488074344,"md5":"0512ef541df833f1b29249d31200ca99","name":"ros-jazzy-opennav-docking-core","requires":[],"size":42925,"version":"1.3.4","binstar":{"package_id":"6777d74f1f1fd598f85294c5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"18261c25048cd7443ae012051aaaa550fb496d399c6546ed1a80177aeaf5adf5"},"ros-jazzy-rviz-default-plugins-14.1.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","qt-main >=5.15.15,<5.16.0a0","xorg-libxext >=1.3.6,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736455514950,"md5":"9f5b21a1e470d33e98b34d70bf716750","name":"ros-jazzy-rviz-default-plugins","requires":[],"size":1633912,"version":"14.1.6","binstar":{"package_id":"6777d752a410428903a47662","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bae4d69665386b8272752d4a00b198ff0e2a929343cc95e11a93d0787a815ca4"},"ros-jazzy-image-pipeline-5.0.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-camera-calibration","ros-jazzy-depth-image-proc","ros-jazzy-image-proc","ros-jazzy-image-publisher","ros-jazzy-image-rotate","ros-jazzy-image-view","ros-jazzy-ros-workspace","ros-jazzy-stereo-image-proc","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736488206351,"md5":"58b8bba10f8c42fc72fdeea503ab1640","name":"ros-jazzy-image-pipeline","requires":[],"size":21652,"version":"5.0.6","binstar":{"package_id":"6777d8693788bac9f3c4c0f0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8a0b98d177ccd461d91759c8b1a4d57a242b3d26ebca6c348e90dc489e2d4159"},"ros-jazzy-slam-toolbox-2.8.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["ceres-solver","eigen","libboost-devel","libboost-python-devel","liblapack","python","qt-main","ros-jazzy-bond","ros-jazzy-bondcpp","ros-jazzy-builtin-interfaces","ros-jazzy-interactive-markers","ros-jazzy-lifecycle-msgs","ros-jazzy-message-filters","ros-jazzy-nav-msgs","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-generators","ros-jazzy-rviz-common","ros-jazzy-rviz-default-plugins","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-geometry-msgs","ros-jazzy-tf2-ros","ros-jazzy-tf2-sensor-msgs","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","suitesparse","tbb","tbb-devel","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","tbb >=2022.0.0","libboost-python >=1.86.0,<1.87.0a0","xorg-libx11 >=1.8.10,<2.0a0","xorg-libxext >=1.3.6,<2.0a0","ceres-solver >=2.2.0,<2.3.0a0","eigen >=3.4.0,<3.4.1.0a0","suitesparse >=7.8.3,<8.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","qt-main >=5.15.15,<5.16.0a0","python_abi 3.11.* *_cp311","libboost >=1.86.0,<1.87.0a0","liblapack >=3.9.0,<3.10.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487641552,"md5":"89fee4cbdc150adb650c4446f0aee340","name":"ros-jazzy-slam-toolbox","requires":[],"size":2190880,"version":"2.8.2","binstar":{"package_id":"6777d86d1000bbd6d58f2697","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f6c1c4466f5e4f89a0c9f265d50956f281f580bf419f29075f0d8ed28815ebc8"},"ros-jazzy-controller-manager-4.23.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-backward-ros","ros-jazzy-controller-interface","ros-jazzy-controller-manager-msgs","ros-jazzy-diagnostic-updater","ros-jazzy-generate-parameter-library","ros-jazzy-hardware-interface","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-libstatistics-collector","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rcpputils","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-ros2-control-test-assets","ros-jazzy-ros2param","ros-jazzy-ros2run","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489829123,"md5":"dd7793a5cda9e86b4caad501294a0a14","name":"ros-jazzy-controller-manager","requires":[],"size":487290,"version":"4.23.0","binstar":{"package_id":"6777d8b39d68c71e7aa4765c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"dad179fc617e5c1e33ba7b72eb2528480ff89ea4a7015660ea94c4252dc7da01"},"ros-jazzy-nav2-costmap-2d-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-angles","ros-jazzy-geometry-msgs","ros-jazzy-laser-geometry","ros-jazzy-map-msgs","ros-jazzy-message-filters","ros-jazzy-nav-msgs","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-nav2-voxel-grid","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros-jazzy-std-srvs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros-jazzy-tf2-sensor-msgs","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736488636062,"md5":"1c69c8f2501d58bfe7be679f11a4ef72","name":"ros-jazzy-nav2-costmap-2d","requires":[],"size":1061225,"version":"1.3.4","binstar":{"package_id":"6777d8b6b734ab2338a4765e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"11b1be9a65e2acadb71da84191fe53a1161c8548d200091ce593a8f689eb2478"},"ros-jazzy-nav2-rviz-plugins-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","qt-main","ros-jazzy-geometry-msgs","ros-jazzy-nav-msgs","ros-jazzy-nav2-lifecycle-manager","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-resource-retriever","ros-jazzy-ros-workspace","ros-jazzy-rviz-common","ros-jazzy-rviz-default-plugins","ros-jazzy-rviz-ogre-vendor","ros-jazzy-rviz-rendering","ros-jazzy-std-msgs","ros-jazzy-tf2-geometry-msgs","ros-jazzy-urdf","ros-jazzy-visualization-msgs","ros-jazzy-yaml-cpp-vendor","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","qt-main >=5.15.15,<5.16.0a0","xorg-libxext >=1.3.6,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libx11 >=1.8.10,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736488870314,"md5":"cf45879cc1a8af1b0c6f8111f1fa2d17","name":"ros-jazzy-nav2-rviz-plugins","requires":[],"size":527773,"version":"1.3.4","binstar":{"package_id":"6777d8b83788bac9f3c4c0f5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"89dab133141c58deb0a5cf7e5a5b044e69aa7c7399fbc284473f77098dbd769a"},"ros-jazzy-rviz2-14.1.6-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","xorg-libxext >=1.3.6,<2.0a0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libx11 >=1.8.10,<2.0a0","qt-main >=5.15.15,<5.16.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736456601707,"md5":"5d9e663865b905a74aece7563582f742","name":"ros-jazzy-rviz2","requires":[],"size":66380,"version":"14.1.6","binstar":{"package_id":"6777d8bcb734ab2338a47662","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1183803e1c805e63e1b017d73d6e15d280177f0d795a1a7f726141db7abb9fb7"},"ros-jazzy-costmap-queue-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-nav2-costmap-2d","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489176044,"md5":"acb6944a80450e1164e79ec2b0d5b104","name":"ros-jazzy-costmap-queue","requires":[],"size":53815,"version":"1.3.4","binstar":{"package_id":"6777d970556e2b8af3c4c0f2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8344c0fab81352404f47cd4b2cae84f7b8ec2bdaea659753a08e04dd86f79c9d"},"ros-jazzy-nav2-collision-monitor-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-nav2-common","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489200487,"md5":"f6141c4f9018c0e7f102091f74a79885","name":"ros-jazzy-nav2-collision-monitor","requires":[],"size":602945,"version":"1.3.4","binstar":{"package_id":"6777d9731f1fd598f85294c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ad316cea74dacfbd2a33667c1d8f540b464fb079faf895a095b9cc6f0272a83d"},"ros-jazzy-forward-command-controller-4.18.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-controller-interface","ros-jazzy-generate-parameter-library","ros-jazzy-hardware-interface","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736490227088,"md5":"50130f8440a1a1b20bfbb8275a707ad6","name":"ros-jazzy-forward-command-controller","requires":[],"size":183478,"version":"4.18.0","binstar":{"package_id":"6777d9733f0ca1f1c9c4c0f5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a78e98e38942474fd4fe42dcb673620d1dda559bb042660454ff61839ff09f48"},"ros-jazzy-gripper-controllers-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-control-msgs","ros-jazzy-control-toolbox","ros-jazzy-controller-interface","ros-jazzy-generate-parameter-library","ros-jazzy-hardware-interface","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738785594214,"md5":"9903815658aa14ee5b4153c3fa47cd9f","name":"ros-jazzy-gripper-controllers","requires":[],"size":147774,"version":"4.18.0","binstar":{"package_id":"6777d9758fd59142f15294c4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"49ad929caf22d9e34b8f52fe7cf68a0bce7f001ac23ffc1749769cab52f21c73"},"ros-jazzy-ros-gz-sim-demos-1.0.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736456802364,"md5":"4a40e2f4d22e13ebbf73e51ccf749655","name":"ros-jazzy-ros-gz-sim-demos","requires":[],"size":84741,"version":"1.0.7","binstar":{"package_id":"6777d976497a9018dda4765a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"341d61d7c9aabb93994bac977d4c31e023ed2a3b7f44522a98a75e2e13996ce2"},"ros-jazzy-nav2-core-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-nav-msgs","ros-jazzy-nav2-behavior-tree","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489146201,"md5":"4f1ba1f7336c22670870ab575eea2432","name":"ros-jazzy-nav2-core","requires":[],"size":51018,"version":"1.3.4","binstar":{"package_id":"6777d9783f0ca1f1c9c4c0f7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"10ef517c88405c67d14f34b4d4c32fc75dd7cc681f536de57ba6e4c7438d0da8"},"ros-jazzy-nav2-behaviors-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-nav-msgs","ros-jazzy-nav2-behavior-tree","ros-jazzy-nav2-core","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489357530,"md5":"f8d0b3703f433e9424f8a3e47ac11d92","name":"ros-jazzy-nav2-behaviors","requires":[],"size":525185,"version":"1.3.4","binstar":{"package_id":"6777d9ed76332b66b0a4765a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6d85d7ddc87933ffe13191313e3d53e036c679bf1d0f54613f42ad1c879d7cb6"},"ros-jazzy-ros-gz-1.0.7-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736456955371,"md5":"60cc6421c9bf323034718422f2c9d8a4","name":"ros-jazzy-ros-gz","requires":[],"size":24540,"version":"1.0.7","binstar":{"package_id":"6777d9efd7b44dbce48f269c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0ffed462c64abf953ccc5628ecab2dd952b16ecbf9d960166318ef62c25ff160"},"ros-jazzy-dwb-core-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-dwb-msgs","ros-jazzy-geometry-msgs","ros-jazzy-nav-2d-utils","ros-jazzy-nav-msgs","ros-jazzy-nav2-core","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489589966,"md5":"4bf9fd13b87b79fc69c48b46c4e940d9","name":"ros-jazzy-dwb-core","requires":[],"size":271669,"version":"1.3.4","binstar":{"package_id":"6777da623788bac9f3c4c0fc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9d041f422fa80acfbae47173e83588dbc3a17c1c4fbd8417481eab5cfadfa6d3"},"ros-jazzy-nav2-controller-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-angles","ros-jazzy-nav-2d-msgs","ros-jazzy-nav-2d-utils","ros-jazzy-nav2-core","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489472415,"md5":"3f3426c195e5ad734b65cd3455b664b8","name":"ros-jazzy-nav2-controller","requires":[],"size":399030,"version":"1.3.4","binstar":{"package_id":"6777da63556e2b8af3c4c0f5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8d4f23a40a693440e539a0deb5373fa37bf603aa58dee9ea7fc20a3006dee7f7"},"ros-jazzy-nav2-regulated-pure-pursuit-controller-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-angles","ros-jazzy-geometry-msgs","ros-jazzy-nav2-common","ros-jazzy-nav2-core","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489653390,"md5":"3918590b7996ec1280ab5752dbd4031a","name":"ros-jazzy-nav2-regulated-pure-pursuit-controller","requires":[],"size":165116,"version":"1.3.4","binstar":{"package_id":"6777da64a410428903a4766d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ef9ac784e46424924245e8b0e47d34e86acffb8a75b2fbafdde36a3647be618b"},"ros-jazzy-position-controllers-4.18.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-forward-command-controller","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736490484941,"md5":"64b54e32c8baac489bb34f973828674c","name":"ros-jazzy-position-controllers","requires":[],"size":66285,"version":"4.18.0","binstar":{"package_id":"6777da66d3fb4386b48f2691","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7042ea20b262bed12533dbeece6a833e60f39284deae669f311e0c757caea634"},"ros-jazzy-nav2-bt-navigator-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-behaviortree-cpp","ros-jazzy-geometry-msgs","ros-jazzy-nav-msgs","ros-jazzy-nav2-behavior-tree","ros-jazzy-nav2-core","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489645251,"md5":"fba01d1e0bcea10d47d3785170ab6899","name":"ros-jazzy-nav2-bt-navigator","requires":[],"size":497212,"version":"1.3.4","binstar":{"package_id":"6777da8f556e2b8af3c4c0f7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a80a84906085b21b652341d5a72c113fddbe3755368703d8ecfd92784ede7bbf"},"ros-jazzy-nav2-constrained-smoother-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["ceres-solver","python","ros-jazzy-angles","ros-jazzy-nav2-common","ros-jazzy-nav2-core","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ceres-solver >=2.2.0,<2.3.0a0","eigen >=3.4.0,<3.4.1.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489603804,"md5":"4ce82670437b2a74dd0812812aa1685a","name":"ros-jazzy-nav2-constrained-smoother","requires":[],"size":115470,"version":"1.3.4","binstar":{"package_id":"6777da924cca628f07a4765d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4f91bd2b351cb832f21e1d2ec21fcf0e3328b51a346bbf2d9575caf693c0f6fb"},"ros-jazzy-nav2-mppi-controller-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["benchmark","llvm-openmp","python","ros-jazzy-geometry-msgs","ros-jazzy-nav2-common","ros-jazzy-nav2-core","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros-jazzy-tf2","ros-jazzy-tf2-eigen","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","xsimd","xtensor","__osx >=10.14","libcxx >=18","llvm-openmp >=19.1.6","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489477822,"md5":"b431327b28af8cbc6801de7183066d56","name":"ros-jazzy-nav2-mppi-controller","requires":[],"size":507825,"version":"1.3.4","binstar":{"package_id":"6777da96d7b44dbce48f269e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"66def829e8a9f0609778e0ac6f916cd307f3cacd91ee910532dc7a4a1a42a53d"},"ros-jazzy-nav2-navfn-planner-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-nav-msgs","ros-jazzy-nav2-common","ros-jazzy-nav2-core","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-tf2-ros","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489445586,"md5":"8edde64e443d9b2ad966f864122df2e2","name":"ros-jazzy-nav2-navfn-planner","requires":[],"size":87687,"version":"1.3.4","binstar":{"package_id":"6777da99ca421b4ff78f2699","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"029345ce683361ce690a2b98aaf3899f7c83cbf65a4015031565cf2f107f9a08"},"ros-jazzy-nav2-planner-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-nav-msgs","ros-jazzy-nav2-common","ros-jazzy-nav2-core","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-tf2-ros","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489358848,"md5":"5dea3dcb6b5f1fd4ed905700bbb0f31d","name":"ros-jazzy-nav2-planner","requires":[],"size":264238,"version":"1.3.4","binstar":{"package_id":"6777da9c4479e9794f8f26a6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0ba80f8a260bc7471afbaba69fd5d9ac3391f73d432c1aecdc0afb3b44fb1d70"},"ros-jazzy-nav2-smac-planner-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","nlohmann_json","python","ros-jazzy-angles","ros-jazzy-builtin-interfaces","ros-jazzy-eigen3-cmake-module","ros-jazzy-geometry-msgs","ros-jazzy-nav-msgs","ros-jazzy-nav2-common","ros-jazzy-nav2-core","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-ompl","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-tf2-ros","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","llvm-openmp >=19.1.6","libode >=0.16.5,<0.16.6.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","ompl >=1.6.0,<1.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489637963,"md5":"b5707da903d05a5d71bf96706b4e7120","name":"ros-jazzy-nav2-smac-planner","requires":[],"size":648198,"version":"1.3.4","binstar":{"package_id":"6777daa54cca628f07a47660","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6d476a516c20fab13db0d28dc8d7a5bec83721d88a5efbedd7c58641ec489db0"},"ros-jazzy-nav2-smoother-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-angles","ros-jazzy-nav-2d-msgs","ros-jazzy-nav-2d-utils","ros-jazzy-nav2-core","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489594192,"md5":"cad7149e33a5861b86742e4149b73b17","name":"ros-jazzy-nav2-smoother","requires":[],"size":270078,"version":"1.3.4","binstar":{"package_id":"6777daa64cca628f07a47662","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"09946f0c0a4dd679e62da0ff81191930292ec425f4939309c6a07f8529ef8ad6"},"ros-jazzy-nav2-theta-star-planner-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-nav2-common","ros-jazzy-nav2-core","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489553018,"md5":"c4b053ca4459ca091d0a3ffff29f6eb1","name":"ros-jazzy-nav2-theta-star-planner","requires":[],"size":81032,"version":"1.3.4","binstar":{"package_id":"6777daa91624366d48a47661","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"735b85e3e838e545296308b266d6e61212f8868b1df8357e96f26394b9180444"},"ros-jazzy-nav2-waypoint-follower-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-cv-bridge","ros-jazzy-geographic-msgs","ros-jazzy-image-transport","ros-jazzy-nav-msgs","ros-jazzy-nav2-common","ros-jazzy-nav2-core","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-lifecycle","ros-jazzy-robot-localization","ros-jazzy-ros-workspace","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489454213,"md5":"3f8df447862502cf6a9d02fdea0ee205","name":"ros-jazzy-nav2-waypoint-follower","requires":[],"size":414367,"version":"1.3.4","binstar":{"package_id":"6777daab1624366d48a47663","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"501abebecd167a8cf04e0bf39e4cd7827e22e274a6379e5615749cdf9ef35c58"},"ros-jazzy-opennav-docking-bt-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-behaviortree-cpp","ros-jazzy-geometry-msgs","ros-jazzy-nav-msgs","ros-jazzy-nav2-behavior-tree","ros-jazzy-nav2-core","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489361064,"md5":"21020b7aaf9164ec7b93abcb4384da1d","name":"ros-jazzy-opennav-docking-bt","requires":[],"size":159683,"version":"1.3.4","binstar":{"package_id":"6777daadd3fb4386b48f2693","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6c3b430551789c24d2a2ead9d7297d9f41a2887637f0ab571f16ea4cda616961"},"ros-jazzy-nav2-rotation-shim-controller-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-angles","ros-jazzy-geometry-msgs","ros-jazzy-nav2-common","ros-jazzy-nav2-core","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736490148957,"md5":"57cce862630b72019d4c537742158a12","name":"ros-jazzy-nav2-rotation-shim-controller","requires":[],"size":156422,"version":"1.3.4","binstar":{"package_id":"6777db032de5b933355294cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9ae85e9a82ad988345f5632018d1608314ef605e6f62b607223b39d3c2b9da16"},"ros-jazzy-rqt-bag-1.5.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736457039453,"md5":"fe14ff41bb1675aea10dc99d8e3f841e","name":"ros-jazzy-rqt-bag","requires":[],"size":138008,"version":"1.5.4","binstar":{"package_id":"6777db05deec2af1875294cd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a3b52f5167aac57c772917ea4def8e338c4527376b29a4b64b8d32221039ef81"},"ros-jazzy-dwb-critics-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-angles","ros-jazzy-costmap-queue","ros-jazzy-dwb-core","ros-jazzy-geometry-msgs","ros-jazzy-nav-2d-msgs","ros-jazzy-nav-2d-utils","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736490060792,"md5":"e2f4507d72c858b836b2ccf3aec274fe","name":"ros-jazzy-dwb-critics","requires":[],"size":104007,"version":"1.3.4","binstar":{"package_id":"6777db534479e9794f8f26ad","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6b53ad75716256a12980b8bf9d9383822e091dd4ff26f0d6406e4a901892a76a"},"ros-jazzy-dwb-plugins-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-angles","ros-jazzy-dwb-core","ros-jazzy-nav-2d-msgs","ros-jazzy-nav-2d-utils","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736490014038,"md5":"fd697719668f8a65e1f2aaba9296f162","name":"ros-jazzy-dwb-plugins","requires":[],"size":83818,"version":"1.3.4","binstar":{"package_id":"6777db553788bac9f3c4c102","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8a12000d5421930054a76bd8bef20a759158459dab633f87339891b286ee0205"},"ros-jazzy-moveit-resources-fanuc-moveit-config-3.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-controller-manager","ros-jazzy-joint-state-publisher","ros-jazzy-moveit-resources-fanuc-description","ros-jazzy-position-controllers","ros-jazzy-robot-state-publisher","ros-jazzy-ros-workspace","ros-jazzy-ros2cli-common-extensions","ros-jazzy-tf2-ros","ros-jazzy-xacro","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736490597599,"md5":"bc8f0189d76a12a173fbd8e815081987","name":"ros-jazzy-moveit-resources-fanuc-moveit-config","requires":[],"size":32613,"version":"3.1.0","binstar":{"package_id":"6777db5eb55c88d649a4765e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"09992e7278a7ffac327310f18609fed0371aa517c2de2f50513d1d2636496bff"},"ros-jazzy-moveit-resources-panda-moveit-config-3.1.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-controller-manager","ros-jazzy-joint-state-publisher","ros-jazzy-joint-state-publisher-gui","ros-jazzy-moveit-resources-panda-description","ros-jazzy-position-controllers","ros-jazzy-robot-state-publisher","ros-jazzy-ros-workspace","ros-jazzy-ros2cli-common-extensions","ros-jazzy-topic-tools","ros-jazzy-xacro","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736490573044,"md5":"855320b7522a384aae05237335fc2700","name":"ros-jazzy-moveit-resources-panda-moveit-config","requires":[],"size":37793,"version":"3.1.0","binstar":{"package_id":"6777db603788bac9f3c4c104","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"72372fed28caa003acf00394b7a1575c77362f9bfa63f744b535923d063d49d6"},"ros-jazzy-nav2-graceful-controller-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-angles","ros-jazzy-geometry-msgs","ros-jazzy-nav-2d-utils","ros-jazzy-nav2-common","ros-jazzy-nav2-core","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489947159,"md5":"33d44539d0e6b991d94215fe317d4439","name":"ros-jazzy-nav2-graceful-controller","requires":[],"size":161067,"version":"1.3.4","binstar":{"package_id":"6777db61556e2b8af3c4c0fc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1e9c426b684425a89c3edca383c683c0c43b5eb9b79a369bc24c3f02861b2c8d"},"ros-jazzy-moveit-core-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["assimp","bullet","eigen","fcl","libboost-devel","libboost-python-devel","python","ros-jazzy-angles","ros-jazzy-common-interfaces","ros-jazzy-eigen-stl-containers","ros-jazzy-eigen3-cmake-module","ros-jazzy-generate-parameter-library","ros-jazzy-geometric-shapes","ros-jazzy-geometry-msgs","ros-jazzy-google-benchmark-vendor","ros-jazzy-kdl-parser","ros-jazzy-moveit-common","ros-jazzy-moveit-msgs","ros-jazzy-octomap-msgs","ros-jazzy-osqp-vendor","ros-jazzy-pluginlib","ros-jazzy-random-numbers","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-rsl","ros-jazzy-ruckig","ros-jazzy-sensor-msgs","ros-jazzy-shape-msgs","ros-jazzy-srdfdom","ros-jazzy-std-msgs","ros-jazzy-tf2","ros-jazzy-tf2-eigen","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-kdl","ros-jazzy-trajectory-msgs","ros-jazzy-urdf","ros-jazzy-urdfdom","ros-jazzy-urdfdom-headers","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","libboost >=1.86.0,<1.87.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","libboost-python >=1.86.0,<1.87.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","assimp >=5.4.3,<5.4.4.0a0","fcl >=0.7.0,<0.8.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736490979963,"md5":"cbc8baef420fcb107634a8a5bf9fb5aa","name":"ros-jazzy-moveit-core","requires":[],"size":1599607,"version":"2.12.1","binstar":{"package_id":"6777dcf5556e2b8af3c4c0ff","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b53fd96bc212201e32f96169300aef342a9745c47ca53c733e95b10ea3e99c24"},"ros-jazzy-nav2-dwb-controller-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-costmap-queue","ros-jazzy-dwb-core","ros-jazzy-dwb-critics","ros-jazzy-dwb-msgs","ros-jazzy-dwb-plugins","ros-jazzy-nav-2d-msgs","ros-jazzy-nav-2d-utils","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736490431818,"md5":"377dbb6a2492ed9aa388e4b7b20bebdb","name":"ros-jazzy-nav2-dwb-controller","requires":[],"size":41397,"version":"1.3.4","binstar":{"package_id":"6777dcf73788bac9f3c4c108","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a5dc3644fb8e3de2d7df514498875aad5a4ab9b1af2e53876bf3e8807fe7bd82"},"ros-jazzy-opennav-docking-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-angles","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-nav-msgs","ros-jazzy-nav2-graceful-controller","ros-jazzy-nav2-msgs","ros-jazzy-nav2-util","ros-jazzy-opennav-docking-core","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-tf2-ros","ros-jazzy-yaml-cpp-vendor","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736490310758,"md5":"e18673c580353ae9355477a4d77497b5","name":"ros-jazzy-opennav-docking","requires":[],"size":580946,"version":"1.3.4","binstar":{"package_id":"6777dcf9d7b44dbce48f26a4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8f5e1c08db6d6fc4c0303e8640cf223bdedea22e7b78c6805ed284c8632fa9e0"},"ros-jazzy-chomp-motion-planner-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-rsl","ros-jazzy-trajectory-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736492175216,"md5":"cd9c99523914721b557e4d5a91eb9cd2","name":"ros-jazzy-chomp-motion-planner","requires":[],"size":196181,"version":"2.12.1","binstar":{"package_id":"6777dd83bcf2e2640ffa72ca","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1aad10d76f11fd26691384eaedff0e1eb2b86f67bcff21576f76738931a22c34"},"ros-jazzy-moveit-planners-stomp-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-generate-parameter-library","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-ros-workspace","ros-jazzy-rsl","ros-jazzy-std-msgs","ros-jazzy-stomp","ros-jazzy-tf2-eigen","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736491776094,"md5":"3b4140c725da4c8c956610af2f3fe214","name":"ros-jazzy-moveit-planners-stomp","requires":[],"size":233807,"version":"2.12.1","binstar":{"package_id":"6777dd86ca6bb0392aa47662","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"69ccc735681b0ba6e47d3d192be22973b7141d115cc566e2357b463c86414617"},"ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-generate-parameter-library","ros-jazzy-moveit-core","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-kdl","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736492004221,"md5":"2a014e422c0b2c3651d4f3b12d7b6eff","name":"ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin","requires":[],"size":200676,"version":"2.12.1","binstar":{"package_id":"6777ddc4b734ab2338a4766b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f19576ed3458677c54606a53005cb06d3e1982bf72ad4b5f87cfff1f1f3f4492"},"ros-jazzy-moveit-ros-occupancy-map-monitor-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","python","ros-jazzy-eigen3-cmake-module","ros-jazzy-geometric-shapes","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-moveit-msgs","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736491741876,"md5":"26310500464a3aafd750437b78aecd38","name":"ros-jazzy-moveit-ros-occupancy-map-monitor","requires":[],"size":318765,"version":"2.12.1","binstar":{"package_id":"6777ddc51000bbd6d58f26af","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3b463c660ffa58e0c3344e99bc40d6d85288b36fcb784acd86c7d7be2aabbed7"},"ros-jazzy-moveit-simple-controller-manager-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-control-msgs","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736492063811,"md5":"8765a5843d55c5f69baae922de19f219","name":"ros-jazzy-moveit-simple-controller-manager","requires":[],"size":158907,"version":"2.12.1","binstar":{"package_id":"6777ddc88ed9e7804dc4c0f5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0f1f835414a6a81d1df24e1aab1cd85efebcdefe6c97585cb15b0cf1c1524e59"},"ros-jazzy-navigation2-1.3.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-nav2-amcl","ros-jazzy-nav2-behavior-tree","ros-jazzy-nav2-behaviors","ros-jazzy-nav2-bt-navigator","ros-jazzy-nav2-collision-monitor","ros-jazzy-nav2-constrained-smoother","ros-jazzy-nav2-controller","ros-jazzy-nav2-core","ros-jazzy-nav2-costmap-2d","ros-jazzy-nav2-dwb-controller","ros-jazzy-nav2-graceful-controller","ros-jazzy-nav2-lifecycle-manager","ros-jazzy-nav2-map-server","ros-jazzy-nav2-mppi-controller","ros-jazzy-nav2-msgs","ros-jazzy-nav2-navfn-planner","ros-jazzy-nav2-planner","ros-jazzy-nav2-regulated-pure-pursuit-controller","ros-jazzy-nav2-rotation-shim-controller","ros-jazzy-nav2-rviz-plugins","ros-jazzy-nav2-simple-commander","ros-jazzy-nav2-smac-planner","ros-jazzy-nav2-smoother","ros-jazzy-nav2-theta-star-planner","ros-jazzy-nav2-util","ros-jazzy-nav2-velocity-smoother","ros-jazzy-nav2-voxel-grid","ros-jazzy-nav2-waypoint-follower","ros-jazzy-opennav-docking","ros-jazzy-opennav-docking-bt","ros-jazzy-opennav-docking-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736490550423,"md5":"fca55d29c9e7a459aa5c0f34bdaa7217","name":"ros-jazzy-navigation2","requires":[],"size":21527,"version":"1.3.4","binstar":{"package_id":"6777ddca8fd59142f15294d9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ff810804c3b477712f485c45d6f4c09d79694adc788e0e8d0b6d00b6611b7cba"},"ros-jazzy-pilz-industrial-motion-planner-testutils-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-eigen3-cmake-module","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-moveit-msgs","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736492114437,"md5":"74948373ef9458ef3bd200e5a853ee56","name":"ros-jazzy-pilz-industrial-motion-planner-testutils","requires":[],"size":186790,"version":"2.12.1","binstar":{"package_id":"6777ddcca410428903a47674","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a451ab8d753fd4ba62a876e47b85e4a8d9c3533798597947cb1bec28ab49798b"},"ros-jazzy-moveit-planners-chomp-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-chomp-motion-planner","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736492657187,"md5":"29bf44e5390fa24b4cacc86bfbdf940d","name":"ros-jazzy-moveit-planners-chomp","requires":[],"size":79062,"version":"2.12.1","binstar":{"package_id":"6777df10b734ab2338a4766f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4a8e23499e29939c6aaf8eeb6abf02790c9325a9675fc60f56e679880dd2f870"},"ros-jazzy-moveit-plugins-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-moveit-simple-controller-manager","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736492703182,"md5":"a41d223a3bde63691bf5ad3be298ac64","name":"ros-jazzy-moveit-plugins","requires":[],"size":20835,"version":"2.12.1","binstar":{"package_id":"6777df12497a9018dda4765f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3843921dbc0404ed8e272d8ab42a1ce73626f209c358fa8df9a334a450fca7c0"},"ros-jazzy-moveit-ros-planning-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","fmt","python","ros-jazzy-ament-index-cpp","ros-jazzy-eigen3-cmake-module","ros-jazzy-generate-parameter-library","ros-jazzy-message-filters","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-moveit-msgs","ros-jazzy-moveit-ros-occupancy-map-monitor","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-srdfdom","ros-jazzy-std-msgs","ros-jazzy-tf2","ros-jazzy-tf2-eigen","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-msgs","ros-jazzy-tf2-ros","ros-jazzy-urdf","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","fmt >=11.0.2,<12.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736492332862,"md5":"8980a177f1b176974865ff85e40f77ba","name":"ros-jazzy-moveit-ros-planning","requires":[],"size":1220493,"version":"2.12.1","binstar":{"package_id":"6777df14137f768132c4c107","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9164831c51d26fee3bcc19e102dca7cebbfe3e8a4b0f48a966a11a864d625dd1"},"ros-jazzy-rqt-bag-plugins-1.5.4-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736457114022,"md5":"1bb30951b026a3751b61ddb09305289e","name":"ros-jazzy-rqt-bag-plugins","requires":[],"size":49702,"version":"1.5.4","binstar":{"package_id":"6777df18ca6bb0392aa47666","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a85b435a011cbbffd016b896cc7d52a8bafe991566b079fb18fe487b67956ee0"},"ros-jazzy-perception-0.11.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-image-common","ros-jazzy-image-pipeline","ros-jazzy-image-transport-plugins","ros-jazzy-laser-filters","ros-jazzy-laser-geometry","ros-jazzy-perception-pcl","ros-jazzy-ros-base","ros-jazzy-ros-workspace","ros-jazzy-vision-opencv","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489006977,"md5":"2497fca6c3a357e1744f244576f9c67e","name":"ros-jazzy-perception","requires":[],"size":20879,"version":"0.11.0","binstar":{"package_id":"6777df584479e9794f8f26b9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"652988d5897ed0b08a70376c381d320a1b7bbd19bde86c83baa919352822e4a4"},"ros-jazzy-simulation-0.11.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ros-base","ros-jazzy-ros-gz-bridge","ros-jazzy-ros-gz-image","ros-jazzy-ros-gz-interfaces","ros-jazzy-ros-gz-sim","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486392203,"md5":"7df5dd90f20e6d19d5cc3deca33adecd","name":"ros-jazzy-simulation","requires":[],"size":20725,"version":"0.11.0","binstar":{"package_id":"6777df596da582d1198f2695","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"85cd826c2a0a9146d9d74e31178680334012ac3093eb304f0fb718fee6fb2ece"},"ros-jazzy-moveit-kinematics-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["eigen","lxml","python","ros-jazzy-class-loader","ros-jazzy-generate-parameter-library","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-moveit-msgs","ros-jazzy-moveit-ros-planning","ros-jazzy-orocos-kdl-vendor","ros-jazzy-pluginlib","ros-jazzy-ros-workspace","ros-jazzy-rsl","ros-jazzy-tf2","ros-jazzy-tf2-kdl","ros-jazzy-urdfdom","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736492743228,"md5":"bcd4e89671191faba72ee954535222c4","name":"ros-jazzy-moveit-kinematics","requires":[],"size":356532,"version":"2.12.1","binstar":{"package_id":"6777e074efd720d2545294cd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ecb6a268dc1d7941fd09e5ee5908e22cd6cc8051ff5b2ba73161d8a2a4fc501d"},"ros-jazzy-moveit-planners-ompl-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["llvm-openmp","python","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-moveit-msgs","ros-jazzy-moveit-ros-planning","ros-jazzy-ompl","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-tf2-eigen","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","llvm-openmp >=19.1.6","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736493031588,"md5":"57d3b00357bc980bbe5478f262e39f9c","name":"ros-jazzy-moveit-planners-ompl","requires":[],"size":445795,"version":"2.12.1","binstar":{"package_id":"6777e0771f1fd598f85294da","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"926189192dd96ffe3fb6452c002801931a03691ed089e24ecc4f83974cc04644"},"ros-jazzy-moveit-ros-robot-interaction-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-interactive-markers","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-moveit-ros-planning","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-eigen","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736492968301,"md5":"37b86ac58e8918e3a1b26591bac33e46","name":"ros-jazzy-moveit-ros-robot-interaction","requires":[],"size":232404,"version":"2.12.1","binstar":{"package_id":"6777e07bdeec2af1875294d5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a6c2d38360bede6ba3b6f0585c16612cf1630be38a5711c54dd16179c7053bb9"},"ros-jazzy-moveit-ros-warehouse-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["fmt","python","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-moveit-ros-planning","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-tf2-eigen","ros-jazzy-tf2-ros","ros-jazzy-warehouse-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","fmt >=11.0.2,<12.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736492855663,"md5":"29257ce8687fcdd161ac35f866988f61","name":"ros-jazzy-moveit-ros-warehouse","requires":[],"size":531474,"version":"2.12.1","binstar":{"package_id":"6777e07e8ed9e7804dc4c0fb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8834b2701305569a22b17b00a9f856d3e5bedeed704de11e04bab4073aaf3fae"},"ros-jazzy-rqt-common-plugins-1.2.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736457149846,"md5":"dece1c578973ab02c95b5128325ad886","name":"ros-jazzy-rqt-common-plugins","requires":[],"size":21457,"version":"1.2.0","binstar":{"package_id":"6777e080b2c82143dcc4c0f4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"72f73c2d1b3db0cbb9548e9289a274622c1d7a854cb2ba66fc9743be1e0f69d7"},"ros-jazzy-desktop-0.11.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["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-pcl-conversions","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_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736457160655,"md5":"07e3560f59b395703287435d64403469","name":"ros-jazzy-desktop","requires":[],"size":22057,"version":"0.11.0","binstar":{"package_id":"6777e16d21afbb471ba47663","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0c612a62d3ddb56a0774780a1bd3163008366fc18a121d5ecfdae855065d9015"},"ros-jazzy-moveit-ros-benchmarks-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["libboost","python","ros-jazzy-launch-param-builder","ros-jazzy-moveit-common","ros-jazzy-moveit-configs-utils","ros-jazzy-moveit-ros-planning","ros-jazzy-moveit-ros-warehouse","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-tf2-eigen","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","libboost >=1.86.0,<1.87.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736493675271,"md5":"0b9c728ad3a1a80ef36d5bf16bf25b9b","name":"ros-jazzy-moveit-ros-benchmarks","requires":[],"size":257662,"version":"2.12.1","binstar":{"package_id":"6777e16fb734ab2338a47673","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3f572d69b7ce79f3cd66579d20c412303ef4a097609d21e7a2ca226701dd31b3"},"ros-jazzy-moveit-ros-move-group-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["fmt","python","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-moveit-kinematics","ros-jazzy-moveit-ros-occupancy-map-monitor","ros-jazzy-moveit-ros-planning","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-ros-workspace","ros-jazzy-std-srvs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","fmt >=11.0.2,<12.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736493247961,"md5":"c91841dcbc93c88b0744600adbef23b3","name":"ros-jazzy-moveit-ros-move-group","requires":[],"size":481322,"version":"2.12.1","binstar":{"package_id":"6777e1703788bac9f3c4c110","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d362ba0c31762a36c248578715d53e16f09f43388799b06df7ed03e450fa4489"},"ros-jazzy-desktop-full-0.11.0-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-desktop","ros-jazzy-perception","ros-jazzy-ros-gz-sim-demos","ros-jazzy-ros-workspace","ros-jazzy-simulation","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736489316949,"md5":"9a01e71872d048d33c43087c7e7e9bfd","name":"ros-jazzy-desktop-full","requires":[],"size":20715,"version":"0.11.0","binstar":{"package_id":"6777e2134cca628f07a47679","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7d1349a9f6733649d43349564d526e54b1f18b7cf9f45b614b98205feaa76454"},"ros-jazzy-moveit-resources-prbt-moveit-config-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-joint-state-publisher","ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin","ros-jazzy-moveit-resources-prbt-support","ros-jazzy-moveit-ros-move-group","ros-jazzy-robot-state-publisher","ros-jazzy-ros-workspace","ros-jazzy-rviz2","ros-jazzy-xacro","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736493759414,"md5":"55952aa3be3d35cc48d2ab6e618350cd","name":"ros-jazzy-moveit-resources-prbt-moveit-config","requires":[],"size":32353,"version":"2.12.1","binstar":{"package_id":"6777e21476332b66b0a47661","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bc4608b26a7eacdf793bbf4d2f6288f991b2b3f10ed9015530270aff12fed2ba"},"ros-jazzy-moveit-ros-planning-interface-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-moveit-msgs","ros-jazzy-moveit-ros-move-group","ros-jazzy-moveit-ros-planning","ros-jazzy-moveit-ros-warehouse","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-eigen","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736493779189,"md5":"95b41df100a72115b9ddddcc0ba47bb5","name":"ros-jazzy-moveit-ros-planning-interface","requires":[],"size":346931,"version":"2.12.1","binstar":{"package_id":"6777e2154d45c7eb08e2b45e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"287af1966012accefef8ff8bf4c3fb6acb10662ea94c2ce73e1c5b5395e36810"},"ros-jazzy-moveit-resources-prbt-pg70-support-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin","ros-jazzy-moveit-resources-prbt-moveit-config","ros-jazzy-moveit-resources-prbt-support","ros-jazzy-ros-workspace","ros-jazzy-xacro","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736493936934,"md5":"1c0f69cf54ef342d008cd19cd71c8127","name":"ros-jazzy-moveit-resources-prbt-pg70-support","requires":[],"size":203712,"version":"2.12.1","binstar":{"package_id":"6777e34ea410428903a4767c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"40494152355124c3565ca86bd8fa6138bb7b536b8505e41e7243ea4be9d81b8a"},"ros-jazzy-moveit-ros-visualization-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-geometric-shapes","ros-jazzy-interactive-markers","ros-jazzy-moveit-common","ros-jazzy-moveit-ros-planning-interface","ros-jazzy-moveit-ros-robot-interaction","ros-jazzy-moveit-ros-warehouse","ros-jazzy-object-recognition-msgs","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rviz2","ros-jazzy-tf2-eigen","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","xorg-libxext >=1.3.6,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","qt-main >=5.15.15,<5.16.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736493971024,"md5":"e25a7c4c52f1593f895f1fac726fb00c","name":"ros-jazzy-moveit-ros-visualization","requires":[],"size":798416,"version":"2.12.1","binstar":{"package_id":"6777e34fa410428903a4767e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e8551124c5a55666196127eaec50cd10471d44ce55282f4aad35af3a58eb4061"},"ros-jazzy-moveit-ros-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-moveit-ros-benchmarks","ros-jazzy-moveit-ros-move-group","ros-jazzy-moveit-ros-planning","ros-jazzy-moveit-ros-planning-interface","ros-jazzy-moveit-ros-robot-interaction","ros-jazzy-moveit-ros-visualization","ros-jazzy-moveit-ros-warehouse","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736494584383,"md5":"cabfa27edde941aac560a06706f34045","name":"ros-jazzy-moveit-ros","requires":[],"size":21066,"version":"2.12.1","binstar":{"package_id":"6777e4e176332b66b0a47666","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1f4f83497a69705ee25e36684761b5b4fddac1d949c3d4c17f207cfa2f4eb9ea"},"ros-jazzy-moveit-setup-framework-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["fmt","python","ros-jazzy-ament-index-cpp","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-moveit-ros-planning","ros-jazzy-moveit-ros-visualization","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-rviz-common","ros-jazzy-rviz-rendering","ros-jazzy-srdfdom","ros-jazzy-urdf","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","fmt >=11.0.2,<12.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libxext >=1.3.6,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736494492784,"md5":"44215334135105aaf9b55860f55da38f","name":"ros-jazzy-moveit-setup-framework","requires":[],"size":283161,"version":"2.12.1","binstar":{"package_id":"6777e4e2d591a39b33e2b460","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d46f267ab65b3b40aae5f0fd7beaf597562f5464f6be3a7984fa3fb70898d955"},"ros-jazzy-pilz-industrial-motion-planner-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-eigen3-cmake-module","ros-jazzy-generate-parameter-library","ros-jazzy-geometry-msgs","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-moveit-msgs","ros-jazzy-moveit-ros-move-group","ros-jazzy-moveit-ros-planning","ros-jazzy-orocos-kdl-vendor","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-eigen","ros-jazzy-tf2-eigen-kdl","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-kdl","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","libboost-python >=1.86.0,<1.87.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","libboost >=1.86.0,<1.87.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736494290411,"md5":"e67835ac0fbce618dd5abc99cc8c826b","name":"ros-jazzy-pilz-industrial-motion-planner","requires":[],"size":462611,"version":"2.12.1","binstar":{"package_id":"6777e4e71624366d48a4766f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"244acd3f42dd04c4f562fcce93cfaca7760639546028a2173093128141d0091a"},"ros-jazzy-moveit-planners-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-chomp-motion-planner","ros-jazzy-moveit-planners-ompl","ros-jazzy-moveit-planners-stomp","ros-jazzy-pilz-industrial-motion-planner","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736494628977,"md5":"c3c6f69b3faa20c62cf8f9c0de64df1f","name":"ros-jazzy-moveit-planners","requires":[],"size":20915,"version":"2.12.1","binstar":{"package_id":"6777e6916be72844a31b138d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c0bf03632e2fc43b477ebdd6219874620e63a88cc1b27045ab7e449c6ed4cc1b"},"ros-jazzy-moveit-setup-app-plugins-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-moveit-configs-utils","ros-jazzy-moveit-ros-visualization","ros-jazzy-moveit-setup-framework","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","python_abi 3.11.* *_cp311","xorg-libxext >=1.3.6,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736495006208,"md5":"7ae9f7ee6a8e7deadea44c094f6aaaab","name":"ros-jazzy-moveit-setup-app-plugins","requires":[],"size":141874,"version":"2.12.1","binstar":{"package_id":"6777e692bdaeb471dc4c3c28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"31ed03f9db8d6ddd1e1a54a0853bd136f115b14bf087de24558f06a399d60328"},"ros-jazzy-moveit-setup-controllers-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-moveit-setup-framework","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libxext >=1.3.6,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736494843128,"md5":"9eda189f64d8bc24af4f428154653960","name":"ros-jazzy-moveit-setup-controllers","requires":[],"size":240259,"version":"2.12.1","binstar":{"package_id":"6777e693ba3f27ef559db57a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5bb09b9a1a50ab38672ee3a91056aee898774ddb7c9a7b808573bd8887427355"},"ros-jazzy-moveit-setup-core-plugins-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-moveit-ros-visualization","ros-jazzy-moveit-setup-framework","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-srdfdom","ros-jazzy-urdf","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","xorg-libxext >=1.3.6,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736494677134,"md5":"56d9536607c344a9b24dfeb0a2d8a021","name":"ros-jazzy-moveit-setup-core-plugins","requires":[],"size":126964,"version":"2.12.1","binstar":{"package_id":"6777e6954d45c7eb08e2b46f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bc6870fec53b2166f31198eeaa4bb6c712861f6f6e74ae1de3578110a01674a9"},"ros-jazzy-moveit-setup-srdf-plugins-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-moveit-setup-framework","ros-jazzy-pluginlib","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","xorg-libx11 >=1.8.10,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","xorg-libxext >=1.3.6,<2.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736495086011,"md5":"2c0a1a1bd57a88170460e8ab1d372c01","name":"ros-jazzy-moveit-setup-srdf-plugins","requires":[],"size":405592,"version":"2.12.1","binstar":{"package_id":"6777e696318b948ab4e2b461","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7513d08d85bf68f9db3b70949d14b49cc680da102e29a44eeaa5410cd766c94b"},"ros-jazzy-moveit-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","ros-jazzy-moveit-core","ros-jazzy-moveit-planners","ros-jazzy-moveit-plugins","ros-jazzy-moveit-ros","ros-jazzy-moveit-setup-assistant","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libxext >=1.3.6,<2.0a0","python_abi 3.11.* *_cp311","xorg-libx11 >=1.8.10,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736495528059,"md5":"a4ca9ee594418b497791159d1fafe540","name":"ros-jazzy-moveit","requires":[],"size":21700,"version":"2.12.1","binstar":{"package_id":"6777e70d7ca11eb50f4c3c29","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8a98a89e8779256177982cff68c217657f3c9d33c8171ff8c3830b43264a74ca"},"ros-jazzy-moveit-setup-assistant-2.12.1-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["python","qt-main","ros-jazzy-ament-index-cpp","ros-jazzy-moveit-configs-utils","ros-jazzy-moveit-setup-app-plugins","ros-jazzy-moveit-setup-controllers","ros-jazzy-moveit-setup-core-plugins","ros-jazzy-moveit-setup-framework","ros-jazzy-moveit-setup-srdf-plugins","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","ros2-distro-mutex >=0.6.0,<0.7.0a0","xorg-libxext >=1.3.6,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","python_abi 3.11.* *_cp311","qt-main >=5.15.15,<5.16.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736495330769,"md5":"fd387a302f49cee0e1f0aa2ca35e9c8e","name":"ros-jazzy-moveit-setup-assistant","requires":[],"size":342738,"version":"2.12.1","binstar":{"package_id":"6777e70f3c23b9b6784c3c28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3333192e8f0005510d5c499c048ad3b329b547903cb2001c42591ab1b0bcc891"},"ros-jazzy-plotjuggler-3.9.2-np126py311h5e9f08c_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h5e9f08c_2","build_number":2,"depends":["cppzmq","libboost-devel","libboost-python-devel","libprotobuf","lz4","protobuf","python","qt-main","ros-jazzy-ament-index-cpp","ros-jazzy-fastcdr","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","zeromq","zstd","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","zeromq >=4.3.5,<4.4.0a0","xorg-libxext >=1.3.6,<2.0a0","libboost >=1.86.0,<1.87.0a0","qt-main >=5.15.15,<5.16.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","zstd >=1.5.6,<1.6.0a0","libxcb >=1.17.0,<2.0a0","libprotobuf >=5.28.2,<5.28.3.0a0","libboost-python >=1.86.0,<1.87.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","xorg-libx11 >=1.8.10,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736486026287,"md5":"30d550e80b43485ec106bbbdfb554fe7","name":"ros-jazzy-plotjuggler","requires":[],"size":9802527,"version":"3.9.2","binstar":{"package_id":"6777f023aec0f2e2504c3c31","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"45f4c02d186b6c10f03ec7b71d6c18c3aa0eb3e350984f882b4a86eb4c987e1e"},"ros-jazzy-plotjuggler-ros-2.1.2-np126py311h8a2294f_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h8a2294f_2","build_number":2,"depends":["libboost-devel","libboost-python-devel","python","qt-main","ros-jazzy-plotjuggler","ros-jazzy-rclcpp","ros-jazzy-rcpputils","ros-jazzy-ros-environment","ros-jazzy-ros-workspace","ros-jazzy-rosbag2","ros-jazzy-rosbag2-transport","ros-jazzy-tf2-msgs","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=19","__osx >=10.14","libboost-python >=1.86.0,<1.87.0a0","qt-main >=5.15.15,<5.16.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","xorg-libxext >=1.3.6,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0","libboost >=1.86.0,<1.87.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1736487005967,"md5":"bc0b39ca2bf0be62d2fa132842f6477d","name":"ros-jazzy-plotjuggler-ros","requires":[],"size":302203,"version":"2.1.2","binstar":{"package_id":"6777fe7d67fad119a1db6bec","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1bce5744aeba707c82d3621c2bf59e4b2b4db4177a9ff280ea7c847a2afb1052"},"ros-jazzy-python-orocos-kdl-vendor-0.5.1-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","python-orocos-kdl","ros-jazzy-orocos-kdl-vendor","ros-jazzy-pybind11-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","python-orocos-kdl >=1.5.1,<1.6.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1737495935580,"md5":"9f5bba04862c261b48d3d0b37a4cb26a","name":"ros-jazzy-python-orocos-kdl-vendor","requires":[],"size":25791,"version":"0.5.1","binstar":{"package_id":"6790161a0909cdba7040ca27","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9633b7a09eec5d5671ac1d3b834a036ff39ed9911163c94f3342ba1cb4c1f843"},"ros-jazzy-joint-trajectory-controller-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-angles","ros-jazzy-backward-ros","ros-jazzy-control-msgs","ros-jazzy-control-toolbox","ros-jazzy-controller-interface","ros-jazzy-generate-parameter-library","ros-jazzy-hardware-interface","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-rsl","ros-jazzy-tl-expected","ros-jazzy-trajectory-msgs","ros-jazzy-urdf","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442796684,"md5":"07db9cc2fede757b181f6499c12e048d","name":"ros-jazzy-joint-trajectory-controller","requires":[],"size":340384,"version":"4.18.0","binstar":{"package_id":"679e8640fbb5d73a1d9af3e5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bed68a05927665b226356bb2e023d476f82487a764e0e11c4ccb53aef10b033a"},"ros-jazzy-force-torque-sensor-broadcaster-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-controller-interface","ros-jazzy-generate-parameter-library","ros-jazzy-geometry-msgs","ros-jazzy-hardware-interface","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442341167,"md5":"f531189da1c32c3073f9874b7c0949f6","name":"ros-jazzy-force-torque-sensor-broadcaster","requires":[],"size":155709,"version":"4.18.0","binstar":{"package_id":"679e86417248eeb802bf8e50","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"04d047722260357a8124d24718773b14ccd77618aaa45a06a05ae6c7fb788232"},"ros-jazzy-kinematics-interface-1.2.1-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["eigen","python","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442238120,"md5":"79114c26e2ccb274599a3026b7095067","name":"ros-jazzy-kinematics-interface","requires":[],"size":42768,"version":"1.2.1","binstar":{"package_id":"679e8644e16554282fd30e43","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2dd6f33177a5b2d1b4319bd6d1c21591205e3197ba260bbe91c33f5c6f722b3e"},"ros-jazzy-gpio-controllers-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-control-msgs","ros-jazzy-controller-interface","ros-jazzy-generate-parameter-library","ros-jazzy-hardware-interface","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442289463,"md5":"b58f33fdfe392d5e4d9fbd3ea2434837","name":"ros-jazzy-gpio-controllers","requires":[],"size":216897,"version":"4.18.0","binstar":{"package_id":"679e8645a700e157fef64af7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3f16844e3515f74bd7ad402f573ee72fb7a57ce837486b7badaf95d9b26a15ca"},"ros-jazzy-imu-sensor-broadcaster-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-controller-interface","ros-jazzy-generate-parameter-library","ros-jazzy-hardware-interface","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442214216,"md5":"6b3ba46f427aa370a3455bb6f5e7ead5","name":"ros-jazzy-imu-sensor-broadcaster","requires":[],"size":142211,"version":"4.18.0","binstar":{"package_id":"679e86462e2e34fd25bb4cbe","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f9314e3c2775ca2ac64aef97ed312d49db6e813ba8042e23591030a5409b23ae"},"ros-jazzy-parallel-gripper-controller-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-control-msgs","ros-jazzy-control-toolbox","ros-jazzy-controller-interface","ros-jazzy-generate-parameter-library","ros-jazzy-hardware-interface","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442955565,"md5":"06fc5cf21844164882f8ca694f5e33ef","name":"ros-jazzy-parallel-gripper-controller","requires":[],"size":146347,"version":"4.18.0","binstar":{"package_id":"679e8646570de9cbb7c3b7e3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"58a3066d58228010e9ae10330e8d458ad69724cabc39b12257a766bff9dc53bf"},"ros-jazzy-joint-state-broadcaster-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-builtin-interfaces","ros-jazzy-control-msgs","ros-jazzy-controller-interface","ros-jazzy-generate-parameter-library","ros-jazzy-pluginlib","ros-jazzy-rclcpp-lifecycle","ros-jazzy-rcutils","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-urdf","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442481800,"md5":"d07e515c51efa6a4ce51756ecea493d4","name":"ros-jazzy-joint-state-broadcaster","requires":[],"size":169356,"version":"4.18.0","binstar":{"package_id":"679e86472b3807adc0b281ac","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4f119dcb186464f6a3154b96da0ac4d6b8d4e291b207871077b7bf15a876cdc7"},"ros-jazzy-graph-msgs-0.2.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442337442,"md5":"7b8516619362e747781d6e4b1df69e5b","name":"ros-jazzy-graph-msgs","requires":[],"size":97468,"version":"0.2.0","binstar":{"package_id":"679e86476403c82b91d30e43","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8de9a8f277bf3828bf11614921286d13d30cd945f33f75c35f046c650eb71ba8"},"ros-jazzy-pid-controller-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-angles","ros-jazzy-backward-ros","ros-jazzy-control-msgs","ros-jazzy-control-toolbox","ros-jazzy-controller-interface","ros-jazzy-hardware-interface","ros-jazzy-parameter-traits","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-std-srvs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442907118,"md5":"a86266c62a3b517323bb2300c2d1ebfe","name":"ros-jazzy-pid-controller","requires":[],"size":250292,"version":"4.18.0","binstar":{"package_id":"679e8648204da077a1f64af7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5898478e4488f132196ad5c28dc4efa6f1b4f0aa8119eed9f4b36ff5237eae88"},"ros-jazzy-mecanum-drive-controller-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-control-msgs","ros-jazzy-controller-interface","ros-jazzy-geometry-msgs","ros-jazzy-hardware-interface","ros-jazzy-nav-msgs","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-rcpputils","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-std-srvs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442412124,"md5":"4e81d599e8175fc346da7ca1255364b0","name":"ros-jazzy-mecanum-drive-controller","requires":[],"size":257777,"version":"4.18.0","binstar":{"package_id":"679e864890552b73725045ad","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9b9c6c0813c356ef081398858859587cff1eb91e9a44c92b8334d5856699d029"},"ros-jazzy-ros2controlcli-4.23.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["pygraphviz","python","ros-jazzy-controller-manager","ros-jazzy-controller-manager-msgs","ros-jazzy-rcl-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-ros2node","ros-jazzy-ros2param","ros-jazzy-rosidl-runtime-py","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442541872,"md5":"fd7248185069731547816e6bc9259c1c","name":"ros-jazzy-ros2controlcli","requires":[],"size":69900,"version":"4.23.0","binstar":{"package_id":"679e8648dbc031097d59e9e4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6a44e25eb751365dabb6444bb3a9ee506e0c0022d504fa546c20d5697eeb82b4"},"ros-jazzy-steering-controllers-library-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-ackermann-msgs","ros-jazzy-backward-ros","ros-jazzy-control-msgs","ros-jazzy-controller-interface","ros-jazzy-generate-parameter-library","ros-jazzy-geometry-msgs","ros-jazzy-hardware-interface","ros-jazzy-nav-msgs","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-rcpputils","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-std-srvs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442332886,"md5":"d8d29451098007b72a5f264530fde63b","name":"ros-jazzy-steering-controllers-library","requires":[],"size":257898,"version":"4.18.0","binstar":{"package_id":"679e8649694331555bbb4cbd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d8487f82d51a4927a101ee7deb0c6132c5772d5bacc42ce1b6abb74079b2adab"},"ros-jazzy-pose-broadcaster-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-controller-interface","ros-jazzy-generate-parameter-library","ros-jazzy-geometry-msgs","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-tf2-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442358575,"md5":"5c46a37c569853fb98ea90b2a34f8b75","name":"ros-jazzy-pose-broadcaster","requires":[],"size":158415,"version":"4.18.0","binstar":{"package_id":"679e86499d25953dcb3c0672","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f6286f8982e70eaf7c19ae953f85830c562c3964f0007a5fbe569550422fe6d2"},"ros-jazzy-rviz-visual-tools-4.1.4-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["eigen","python","qt-main","ros-jazzy-ament-index-python","ros-jazzy-eigen-stl-containers","ros-jazzy-eigen3-cmake-module","ros-jazzy-geometry-msgs","ros-jazzy-interactive-markers","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-rviz-common","ros-jazzy-rviz-default-plugins","ros-jazzy-rviz-ogre-vendor","ros-jazzy-rviz-rendering","ros-jazzy-rviz2","ros-jazzy-sensor-msgs","ros-jazzy-shape-msgs","ros-jazzy-std-msgs","ros-jazzy-tf2","ros-jazzy-tf2-eigen","ros-jazzy-tf2-geometry-msgs","ros-jazzy-trajectory-msgs","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","xorg-libx11 >=1.8.10,<2.0a0","qt-main >=5.15.15,<5.16.0a0","xorg-libxext >=1.3.6,<2.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442211749,"md5":"b6729c02e70bb53fc8802dabb75cf085","name":"ros-jazzy-rviz-visual-tools","requires":[],"size":399035,"version":"4.1.4","binstar":{"package_id":"679e8649c622dee0b6b5cb31","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1771d39c2efd37b5891ceafc01cdc34a6f5e1ae786c472bd7b8618e3029f0848"},"ros-jazzy-velocity-controllers-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-forward-command-controller","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442386263,"md5":"ee6ea6dc95c579c66c5f022f2126d07f","name":"ros-jazzy-velocity-controllers","requires":[],"size":67322,"version":"4.18.0","binstar":{"package_id":"679e864b561e6fc338c7d31c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"37121cb967ff2bc5ef97ff17d1fb7a414a137429c21a2fb7cef4b84fc3a6083c"},"ros-jazzy-range-sensor-broadcaster-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-controller-interface","ros-jazzy-generate-parameter-library","ros-jazzy-hardware-interface","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442315714,"md5":"08fe23a6e4bafe94df777d9c4c59bb52","name":"ros-jazzy-range-sensor-broadcaster","requires":[],"size":137415,"version":"4.18.0","binstar":{"package_id":"679e864bc87fe5017cc3b7e6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f649b63eee3664cf8e5ed60ad1340e863e2c2df1ec87871928af747cb96709d0"},"ros-jazzy-transmission-interface-4.23.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-hardware-interface","ros-jazzy-pluginlib","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442507887,"md5":"1d3e67222eb2624d6d8f30dcab3164d2","name":"ros-jazzy-transmission-interface","requires":[],"size":90010,"version":"4.23.0","binstar":{"package_id":"679e864be16554282fd30e45","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"517c9210f04d3eba4eefdf446ba8d3d7447bcbe08538415f75e5aa45b7353a9a"},"ros-jazzy-tricycle-controller-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-ackermann-msgs","ros-jazzy-backward-ros","ros-jazzy-builtin-interfaces","ros-jazzy-controller-interface","ros-jazzy-geometry-msgs","ros-jazzy-hardware-interface","ros-jazzy-nav-msgs","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-rcpputils","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-std-srvs","ros-jazzy-tf2","ros-jazzy-tf2-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442210983,"md5":"cfdc8ebbe634b3b669bd5342455bbe7e","name":"ros-jazzy-tricycle-controller","requires":[],"size":282198,"version":"4.18.0","binstar":{"package_id":"679e864c081e7d3816bf8e50","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5f6426a5e6b7ecef9fb6ee7a704df5e7308f3e1ef24efb7c1a77ce2fa4d33198"},"ros-jazzy-zenoh-cpp-vendor-0.2.0-np126py311h39f559d_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h39f559d_2","build_number":2,"constrains":["__osx >=10.13"],"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","libzenohc >=1.1.1,<1.1.2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442565946,"md5":"951232bea9bdfe4e8476a32053f5146c","name":"ros-jazzy-zenoh-cpp-vendor","requires":[],"size":23593,"version":"0.2.0","binstar":{"package_id":"679e864dc8e25970753c0673","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"29bca64dbd21dd21317c494c27d1e4e1cd6119937f5e1ba34a5c21a3f8af9ef1"},"ros-jazzy-diff-drive-controller-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-control-toolbox","ros-jazzy-controller-interface","ros-jazzy-geometry-msgs","ros-jazzy-hardware-interface","ros-jazzy-nav-msgs","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-rcpputils","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442773800,"md5":"f73d70c9056cd6ad79f2b1361df4ff32","name":"ros-jazzy-diff-drive-controller","requires":[],"size":288759,"version":"4.18.0","binstar":{"package_id":"679e865bf39e935e935045ad","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e679d11902610ef30ac938364ed202b116cddd785ffa683dac5027458d836818"},"ros-jazzy-effort-controllers-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-forward-command-controller","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442378192,"md5":"43917497a627fc2068db6e72266ad3bf","name":"ros-jazzy-effort-controllers","requires":[],"size":67256,"version":"4.18.0","binstar":{"package_id":"679e865c150b53ba29bb4cbd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d993de91fc8b6d46a181d7ba3c54720992f2c4d2ea0daedcfb4bd30819d4a442"},"ros-jazzy-gz-ros2-control-1.2.9-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-controller-manager","ros-jazzy-gz-plugin-vendor","ros-jazzy-gz-sim-vendor","ros-jazzy-hardware-interface","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-yaml-cpp-vendor","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","libcxx >=18","__osx >=10.13","xorg-libx11 >=1.8.10,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","xorg-libxext >=1.3.6,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442391335,"md5":"c393b92257a8a1afdec09a8e9c6adb2c","name":"ros-jazzy-gz-ros2-control","requires":[],"size":320088,"version":"1.2.9","binstar":{"package_id":"679e865e081e7d3816bf8e52","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2218751cc0e716ddec3d92922022ec5cde96d32fccc118aefb78152c3964c2d6"},"ros-jazzy-twist-mux-msgs-3.0.1-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442407341,"md5":"18bc5d2db328699d910884b121558ef8","name":"ros-jazzy-twist-mux-msgs","requires":[],"size":223966,"version":"3.0.1","binstar":{"package_id":"679e865e617f3d26a89af3e9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"466817e1fa4b2cce22e09736ab17c311a19289d1b182a0b1bc648d735af14d5d"},"ros-jazzy-ur-dashboard-msgs-3.0.1-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442298149,"md5":"fe0311830b58b1644a7d8f1dd87dc67e","name":"ros-jazzy-ur-dashboard-msgs","requires":[],"size":463636,"version":"3.0.1","binstar":{"package_id":"679e865fa0bb128bc3d30e43","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cc6553277f1bad1cf13f0f74602e0d2739cfc53ecc289e145534ced3843d8b90"},"ros-jazzy-ros2-controllers-test-nodes-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros-jazzy-trajectory-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442591712,"md5":"19c5320f1d2d8b649eafc4a392ec350d","name":"ros-jazzy-ros2-controllers-test-nodes","requires":[],"size":39676,"version":"4.18.0","binstar":{"package_id":"679e86604b598d6cacb5cb30","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8622b139ead2153f66f8e0c2f1a16a4cae59f94c15841f5e6a2b6594857f8e9f"},"ros-jazzy-ur-msgs-2.1.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442207507,"md5":"0c532c68346a25521cdc7fbcd3e4c856","name":"ros-jazzy-ur-msgs","requires":[],"size":380136,"version":"2.1.0","binstar":{"package_id":"679e8661a77656a4ee9af3e5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"172e3275dc6ac92d76accd5cbb9585377fae2ec3547408e6600537db0c1ab9a6"},"ros-jazzy-ur-client-library-1.5.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442392456,"md5":"9fdedf778b2a67b83b6ce73d4b980ce1","name":"ros-jazzy-ur-client-library","requires":[],"size":261610,"version":"1.5.0","binstar":{"package_id":"679e8662694331555bbb4cbf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"edc1ac317a556e488cbf945a05ee384211bbf4b1f733d113bc5ac34148052ee9"},"ros-jazzy-ur-description-3.0.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-joint-state-publisher-gui","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-robot-state-publisher","ros-jazzy-ros-workspace","ros-jazzy-rviz2","ros-jazzy-urdf","ros-jazzy-xacro","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","urdfdom >=4.0.1,<4.1.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442549971,"md5":"d2f750109c67e9b41b90f6abc404033f","name":"ros-jazzy-ur-description","requires":[],"size":23752918,"version":"3.0.0","binstar":{"package_id":"679e8665020e97e09bb281af","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cbd96e77cd4e3c81d0be4ef9224df773ace9b9664f00019d7e01d64a4a74d0e9"},"ros-jazzy-warehouse-ros-sqlite-1.0.5-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-class-loader","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-sqlite3-vendor","ros-jazzy-warehouse-ros","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","libboost-python >=1.86.0,<1.87.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","libboost >=1.86.0,<1.87.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442454452,"md5":"12e8b8b8de9ba13ca2946ac4ba5c2689","name":"ros-jazzy-warehouse-ros-sqlite","requires":[],"size":102593,"version":"1.0.5","binstar":{"package_id":"679e866ada5b6d3e82b281ae","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9c18abc9d7814f4885eb83edd97831ef9e7301d32648c1526631e4e8dbeab637"},"ros-jazzy-ackermann-steering-controller-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-control-msgs","ros-jazzy-controller-interface","ros-jazzy-hardware-interface","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-std-srvs","ros-jazzy-steering-controllers-library","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442944883,"md5":"d1d14ba9d2bc12c70809eb7b3c18b0c7","name":"ros-jazzy-ackermann-steering-controller","requires":[],"size":91548,"version":"4.18.0","binstar":{"package_id":"679e86db6403c82b91d30e47","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0d63b58f0b5ff379988a81411901f37286dda677e85642934960035865618f86"},"ros-jazzy-bicycle-steering-controller-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-control-msgs","ros-jazzy-controller-interface","ros-jazzy-hardware-interface","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-std-srvs","ros-jazzy-steering-controllers-library","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442902159,"md5":"ce96f4b848cf561e04384c6a60ea9d89","name":"ros-jazzy-bicycle-steering-controller","requires":[],"size":88967,"version":"4.18.0","binstar":{"package_id":"679e86dd7ef270a862926cfd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"810ba1fd26ac0bad686ed29685f2de2b41816f13c441f745364f826f7cf7ab46"},"ros-jazzy-kinematics-interface-kdl-1.2.1-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["eigen","python","ros-jazzy-kdl-parser","ros-jazzy-kinematics-interface","ros-jazzy-pluginlib","ros-jazzy-ros-workspace","ros-jazzy-tf2-eigen-kdl","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442747318,"md5":"470dbb10a73e6f4234dbb09c88e78a05","name":"ros-jazzy-kinematics-interface-kdl","requires":[],"size":98882,"version":"1.2.1","binstar":{"package_id":"679e86de64ec069b58f64afa","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"876c592db3bef34cedfc7f426864cc9e130f2a490a2a1ed86982a052c85ed018"},"ros-jazzy-tricycle-steering-controller-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-control-msgs","ros-jazzy-controller-interface","ros-jazzy-hardware-interface","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-std-srvs","ros-jazzy-steering-controllers-library","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442873306,"md5":"f7746179d9bec69778556c4b1f734281","name":"ros-jazzy-tricycle-steering-controller","requires":[],"size":90533,"version":"4.18.0","binstar":{"package_id":"679e86e4081e7d3816bf8e57","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"548f747ec3a37b162ee6ef172e577d66cfd2cc8ec9f1d630bbea3a8587e12b77"},"ros-jazzy-twist-mux-4.4.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-diagnostic-updater","ros-jazzy-geometry-msgs","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros-jazzy-twist-mux-msgs","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442978927,"md5":"484eeb3061f17157f8f89124fbeec225","name":"ros-jazzy-twist-mux","requires":[],"size":302028,"version":"4.4.0","binstar":{"package_id":"679e86e6e5298cd157b281ad","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"11b81a3d19e49aa166d594b7651cee9320383bc5c524e5e0ed25ee770c4f3824"},"ros-jazzy-moveit-servo-2.12.1-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-control-msgs","ros-jazzy-controller-manager","ros-jazzy-generate-parameter-library","ros-jazzy-geometry-msgs","ros-jazzy-joint-state-broadcaster","ros-jazzy-joint-trajectory-controller","ros-jazzy-joy","ros-jazzy-launch-param-builder","ros-jazzy-moveit-common","ros-jazzy-moveit-configs-utils","ros-jazzy-moveit-core","ros-jazzy-moveit-msgs","ros-jazzy-moveit-ros-planning","ros-jazzy-moveit-ros-planning-interface","ros-jazzy-moveit-ros-visualization","ros-jazzy-pluginlib","ros-jazzy-realtime-tools","ros-jazzy-robot-state-publisher","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros-jazzy-std-srvs","ros-jazzy-tf2-eigen","ros-jazzy-tf2-ros","ros-jazzy-trajectory-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738443242402,"md5":"9dfd177ae614ea93aebe77a6084bf350","name":"ros-jazzy-moveit-servo","requires":[],"size":753000,"version":"2.12.1","binstar":{"package_id":"679e8756126bc9de4ad30e48","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"43b69c487482dc200c244869f808d5253ad0dbbbf5845a7b1434915cdfac8601"},"ros-jazzy-moveit-servo-2.12.1-np126py311hd69bdec_3.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_3","build_number":3,"depends":["python","ros-jazzy-control-msgs","ros-jazzy-controller-manager","ros-jazzy-generate-parameter-library","ros-jazzy-geometry-msgs","ros-jazzy-gripper-controllers","ros-jazzy-joint-state-broadcaster","ros-jazzy-joint-trajectory-controller","ros-jazzy-joy","ros-jazzy-launch-param-builder","ros-jazzy-moveit-common","ros-jazzy-moveit-configs-utils","ros-jazzy-moveit-core","ros-jazzy-moveit-msgs","ros-jazzy-moveit-ros-planning","ros-jazzy-moveit-ros-planning-interface","ros-jazzy-moveit-ros-visualization","ros-jazzy-pluginlib","ros-jazzy-realtime-tools","ros-jazzy-robot-state-publisher","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros-jazzy-std-srvs","ros-jazzy-tf2-eigen","ros-jazzy-tf2-ros","ros-jazzy-trajectory-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738785726106,"md5":"4f4de019f8d230a1c06a45dec76c73cd","name":"ros-jazzy-moveit-servo","requires":[],"size":756155,"version":"2.12.1","binstar":{"package_id":"679e8756126bc9de4ad30e48","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c57b0f391b887dcde288a55c6f0d5fd7e001c0cb7936efe32bec18b967aaf0d3"},"ros-jazzy-moveit-visual-tools-4.1.1-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-graph-msgs","ros-jazzy-moveit-common","ros-jazzy-moveit-core","ros-jazzy-moveit-ros-planning","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-rviz-visual-tools","ros-jazzy-std-msgs","ros-jazzy-tf2-eigen","ros-jazzy-tf2-ros","ros-jazzy-trajectory-msgs","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.13","libcxx >=18","numpy >=1.26.4,<2.0a0","xorg-libxext >=1.3.6,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","xorg-libx11 >=1.8.10,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442820903,"md5":"8c649fe1c2b8c1446661ee883a0e5384","name":"ros-jazzy-moveit-visual-tools","requires":[],"size":390305,"version":"4.1.1","binstar":{"package_id":"679e87586403c82b91d30e4a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e5007cccd53ffd12996a31d3a82b6e056ab6eb395d54234ecbf8343aa5518826"},"ros-jazzy-rmw-zenoh-cpp-0.2.0-np126py311h39f559d_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311h39f559d_2","build_number":2,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-fastcdr","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-rosidl-typesupport-fastrtps-c","ros-jazzy-rosidl-typesupport-fastrtps-cpp","ros-jazzy-zenoh-cpp-vendor","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","libzenohc >=1.1.1,<1.1.2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738442739033,"md5":"01afadfde88d54aa059b849f5e4e56db","name":"ros-jazzy-rmw-zenoh-cpp","requires":[],"size":234466,"version":"0.2.0","binstar":{"package_id":"679e87597248eeb802bf8e55","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"81ae2e51e3223d4f3b48f9b76e02e157227202b8d2ef69cf07c10f2b0e30ad5d"},"ros-jazzy-ros2-control-4.23.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-controller-interface","ros-jazzy-controller-manager","ros-jazzy-controller-manager-msgs","ros-jazzy-hardware-interface","ros-jazzy-joint-limits","ros-jazzy-ros-workspace","ros-jazzy-ros2-control-test-assets","ros-jazzy-ros2controlcli","ros-jazzy-transmission-interface","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738443025125,"md5":"6bfdcc74d1c1503ff0d979d9802a8633","name":"ros-jazzy-ros2-control","requires":[],"size":20927,"version":"4.23.0","binstar":{"package_id":"679e875a64ec069b58f64b00","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"edd79595f26e5fb9521afd962954930cfb4130950a87d6fffd658ae32ce81589"},"ros-jazzy-ur-controllers-3.0.1-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-angles","ros-jazzy-control-msgs","ros-jazzy-controller-interface","ros-jazzy-generate-parameter-library","ros-jazzy-geometry-msgs","ros-jazzy-hardware-interface","ros-jazzy-joint-trajectory-controller","ros-jazzy-lifecycle-msgs","ros-jazzy-pluginlib","ros-jazzy-rclcpp-lifecycle","ros-jazzy-rcutils","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros-jazzy-std-srvs","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros-jazzy-trajectory-msgs","ros-jazzy-ur-dashboard-msgs","ros-jazzy-ur-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738443174202,"md5":"a4c495332e5f7678b06cd44ed5cead2c","name":"ros-jazzy-ur-controllers","requires":[],"size":449467,"version":"3.0.1","binstar":{"package_id":"679e875b9d25953dcb3c0676","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cba11082b9bd1859610eae10c9bd234e93ffe471eea7eff4aa7644227abf4318"},"ros-jazzy-admittance-controller-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-control-msgs","ros-jazzy-control-toolbox","ros-jazzy-controller-interface","ros-jazzy-filters","ros-jazzy-generate-parameter-library","ros-jazzy-geometry-msgs","ros-jazzy-hardware-interface","ros-jazzy-joint-trajectory-controller","ros-jazzy-kinematics-interface","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-realtime-tools","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-eigen","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-kdl","ros-jazzy-tf2-ros","ros-jazzy-trajectory-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738443072626,"md5":"975c24f3f19ff652268578d7e0d9db91","name":"ros-jazzy-admittance-controller","requires":[],"size":357552,"version":"4.18.0","binstar":{"package_id":"679e87daf8f2da91d6c3b7eb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fa6e662fd7fb78cd87aecb792c99595efabac0886ed72695da1e665b6331519a"},"ros-jazzy-gz-ros2-control-demos-1.2.9-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-ackermann-steering-controller","ros-jazzy-ament-index-python","ros-jazzy-control-msgs","ros-jazzy-diff-drive-controller","ros-jazzy-effort-controllers","ros-jazzy-geometry-msgs","ros-jazzy-gz-ros2-control","ros-jazzy-hardware-interface","ros-jazzy-imu-sensor-broadcaster","ros-jazzy-joint-state-broadcaster","ros-jazzy-joint-trajectory-controller","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-mecanum-drive-controller","ros-jazzy-rclcpp","ros-jazzy-robot-state-publisher","ros-jazzy-ros-gz-bridge","ros-jazzy-ros-gz-sim","ros-jazzy-ros-workspace","ros-jazzy-ros2controlcli","ros-jazzy-ros2launch","ros-jazzy-std-msgs","ros-jazzy-tricycle-controller","ros-jazzy-velocity-controllers","ros-jazzy-xacro","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","xorg-libx11","xorg-libxext","__osx >=10.13","libcxx >=18","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","xorg-libxext >=1.3.6,<2.0a0","xorg-libx11 >=1.8.10,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738443392340,"md5":"79f2aa330cba9d8c25d6d77f8209093a","name":"ros-jazzy-gz-ros2-control-demos","requires":[],"size":168578,"version":"1.2.9","binstar":{"package_id":"679e87dcaf3e225f1d5045b0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d1257706b6d3b3501297007cf27642658aa5aaf74221f04c45d2da93e4965e2b"},"ros-jazzy-ur-moveit-config-3.0.1-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-moveit-configs-utils","ros-jazzy-moveit-kinematics","ros-jazzy-moveit-planners","ros-jazzy-moveit-planners-chomp","ros-jazzy-moveit-ros-move-group","ros-jazzy-moveit-ros-visualization","ros-jazzy-moveit-servo","ros-jazzy-moveit-simple-controller-manager","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ur-description","ros-jazzy-warehouse-ros-sqlite","ros-jazzy-xacro","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738443710753,"md5":"b9fa922bba2d2dd01c2be547045a4a4d","name":"ros-jazzy-ur-moveit-config","requires":[],"size":45669,"version":"3.0.1","binstar":{"package_id":"679e87dda8a3a7a7a93c0679","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"40b4c8d8c43e5149127aa56bbd149d4d3e68614b8c7e2578f16e1dafb8b30f92"},"ros-jazzy-ur-robot-driver-3.0.1-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-backward-ros","ros-jazzy-controller-manager","ros-jazzy-controller-manager-msgs","ros-jazzy-force-torque-sensor-broadcaster","ros-jazzy-geometry-msgs","ros-jazzy-hardware-interface","ros-jazzy-joint-state-broadcaster","ros-jazzy-joint-state-publisher","ros-jazzy-joint-trajectory-controller","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-pluginlib","ros-jazzy-pose-broadcaster","ros-jazzy-position-controllers","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-rclpy","ros-jazzy-robot-state-publisher","ros-jazzy-ros-workspace","ros-jazzy-ros2-controllers-test-nodes","ros-jazzy-rviz2","ros-jazzy-std-msgs","ros-jazzy-std-srvs","ros-jazzy-tf2-geometry-msgs","ros-jazzy-ur-client-library","ros-jazzy-ur-controllers","ros-jazzy-ur-dashboard-msgs","ros-jazzy-ur-description","ros-jazzy-ur-msgs","ros-jazzy-urdf","ros-jazzy-velocity-controllers","ros-jazzy-xacro","ros2-distro-mutex 0.6.* jazzy_*","socat","__osx >=10.14","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738443523755,"md5":"8d1cf7fb40466bc0e25789150b36d859","name":"ros-jazzy-ur-robot-driver","requires":[],"size":682821,"version":"3.0.1","binstar":{"package_id":"679e87de7ef270a862926d02","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"50aa3350afb4889bc71442a0597c8f357f5d8eab32ed15346b6e64b1e42ffcc2"},"ros-jazzy-ros2-controllers-4.18.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-ackermann-steering-controller","ros-jazzy-admittance-controller","ros-jazzy-bicycle-steering-controller","ros-jazzy-diff-drive-controller","ros-jazzy-effort-controllers","ros-jazzy-force-torque-sensor-broadcaster","ros-jazzy-forward-command-controller","ros-jazzy-gpio-controllers","ros-jazzy-imu-sensor-broadcaster","ros-jazzy-joint-state-broadcaster","ros-jazzy-joint-trajectory-controller","ros-jazzy-mecanum-drive-controller","ros-jazzy-parallel-gripper-controller","ros-jazzy-pid-controller","ros-jazzy-pose-broadcaster","ros-jazzy-position-controllers","ros-jazzy-range-sensor-broadcaster","ros-jazzy-ros-workspace","ros-jazzy-steering-controllers-library","ros-jazzy-tricycle-controller","ros-jazzy-tricycle-steering-controller","ros-jazzy-velocity-controllers","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738443478930,"md5":"16b542163919666031c233637f7571ff","name":"ros-jazzy-ros2-controllers","requires":[],"size":21467,"version":"4.18.0","binstar":{"package_id":"679e88317d0a51642e926d12","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"47981aa23c5213dc4399fc6ca5994a439f7f7f66dbcef96c0e924fe19959d283"},"ros-jazzy-ros2-controllers-4.18.0-np126py311hd69bdec_3.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_3","build_number":3,"depends":["python","ros-jazzy-ackermann-steering-controller","ros-jazzy-admittance-controller","ros-jazzy-bicycle-steering-controller","ros-jazzy-diff-drive-controller","ros-jazzy-effort-controllers","ros-jazzy-force-torque-sensor-broadcaster","ros-jazzy-forward-command-controller","ros-jazzy-gpio-controllers","ros-jazzy-gripper-controllers","ros-jazzy-imu-sensor-broadcaster","ros-jazzy-joint-state-broadcaster","ros-jazzy-joint-trajectory-controller","ros-jazzy-mecanum-drive-controller","ros-jazzy-parallel-gripper-controller","ros-jazzy-pid-controller","ros-jazzy-pose-broadcaster","ros-jazzy-position-controllers","ros-jazzy-range-sensor-broadcaster","ros-jazzy-ros-workspace","ros-jazzy-steering-controllers-library","ros-jazzy-tricycle-controller","ros-jazzy-tricycle-steering-controller","ros-jazzy-velocity-controllers","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738785710517,"md5":"69b11b93c0accb445505451af36e615c","name":"ros-jazzy-ros2-controllers","requires":[],"size":21443,"version":"4.18.0","binstar":{"package_id":"679e88317d0a51642e926d12","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"db38f6c6ebd3ee20b69cd96f8bd7445d3bf72f0ba5fda278617e807e43134bfb"},"ros-jazzy-ur-3.0.1-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-ur-calibration","ros-jazzy-ur-controllers","ros-jazzy-ur-dashboard-msgs","ros-jazzy-ur-moveit-config","ros-jazzy-ur-robot-driver","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738443878054,"md5":"0b5147e14e93c5219fb1850e080a9b82","name":"ros-jazzy-ur","requires":[],"size":24574,"version":"3.0.1","binstar":{"package_id":"679e883364ec069b58f64b05","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ea9b6fc09690af5396edf0422e8aa7f59e27e586db23d3b1e3231b12cd2d25b6"},"ros-jazzy-ur-calibration-3.0.1-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["eigen","python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-ur-client-library","ros-jazzy-ur-robot-driver","ros2-distro-mutex 0.6.* jazzy_*","yaml-cpp","__osx >=10.14","__osx >=10.13","libcxx >=18","numpy >=1.26.4,<2.0a0","yaml-cpp >=0.8.0,<0.9.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738443753829,"md5":"e09b505ecfe84594977a64c3849e5cac","name":"ros-jazzy-ur-calibration","requires":[],"size":101154,"version":"3.0.1","binstar":{"package_id":"679e8835570de9cbb7c3b7e8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"148b8eebd740368b0efe1c45bc905fd42ec2f6b591a0d03f1a5b08483aa555da"},"ros-jazzy-ur-simulation-gz-2.1.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-gz-ros2-control","ros-jazzy-joint-state-publisher","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-ros-gz-bridge","ros-jazzy-ros-gz-sim","ros-jazzy-ros-workspace","ros-jazzy-rviz2","ros-jazzy-ur-controllers","ros-jazzy-ur-description","ros-jazzy-ur-moveit-config","ros-jazzy-urdf","ros-jazzy-xacro","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","urdfdom >=4.0.1,<4.1.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738443860038,"md5":"1e8b843306591fae858d9e663fa25ca2","name":"ros-jazzy-ur-simulation-gz","requires":[],"size":43631,"version":"2.1.0","binstar":{"package_id":"679e883664ec069b58f64b07","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4a91483cc69d5ebcd042cdb242bd74d14ec75d36d153229d677013fa35ea0cef"},"ros-jazzy-flex-sync-2.0.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-clang-format","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1738610533941,"md5":"cfa2d8a0f260250a357a4651eab9e821","name":"ros-jazzy-flex-sync","requires":[],"size":47145,"version":"2.0.0","binstar":{"package_id":"67a117688046e4d238fa8fa5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c7bcf9f87988fa3d2155c6d1c43e2ebc69d62c6c2885c181d3c9fca375d90da3"},"ros-jazzy-ament-cmake-mypy-0.17.1-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-mypy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1739348864883,"md5":"305f5fa2f5b51e161296dc048dbcf98f","name":"ros-jazzy-ament-cmake-mypy","requires":[],"size":21788,"version":"0.17.1","binstar":{"package_id":"67ac5a94baf8dda591b187d2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"06642579ce5e8d5d1e3f213e90e720e51140f6ab436c24f7d677b1d12bb17046"},"ros-jazzy-rosapi-msgs-2.1.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-rcl-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1739348711173,"md5":"620cc2f519da5ee69a7e6878e2921106","name":"ros-jazzy-rosapi-msgs","requires":[],"size":723465,"version":"2.1.0","binstar":{"package_id":"67ac5a96b7a8a3a4a4aad7f7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5a76892004d46700d5cf9da21b864854963ac031b0e3e47cb97e56739534fac9"},"ros-jazzy-rosbridge-msgs-2.1.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1739348838337,"md5":"94666a1f7fbbfb8ee9fb6666e9fc7ebd","name":"ros-jazzy-rosbridge-msgs","requires":[],"size":84457,"version":"2.1.0","binstar":{"package_id":"67ac5a97d5b3b9ce6cb187d1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"42c4a7294c5f259da5197c9c9cdbb410ea8d4ffa32f624624f197b32e59f14d6"},"ros-jazzy-rosbridge-test-msgs-2.1.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1739348496808,"md5":"6e499fdc75df594af8a0cc428f92af54","name":"ros-jazzy-rosbridge-test-msgs","requires":[],"size":945567,"version":"2.1.0","binstar":{"package_id":"67ac5a99eeaf1c29bf69fb6b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1c30ebd5ae2af018bb0542dc4bd93f1b225d03d56c0798e14e7e4c08f96686c4"},"ros-jazzy-rosapi-2.1.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-rcl-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2node","ros-jazzy-ros2param","ros-jazzy-ros2pkg","ros-jazzy-ros2service","ros-jazzy-ros2topic","ros-jazzy-rosapi-msgs","ros-jazzy-rosbridge-library","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1739348946825,"md5":"c0c78c1121297d60c092417c16a2a4af","name":"ros-jazzy-rosapi","requires":[],"size":54292,"version":"2.1.0","binstar":{"package_id":"67ac5ac30ed39038db69fb74","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2fee48b0ce983f667d17bd5364b6b78b44bfb4f3570db7d7cd18f4fffc9b6d8a"},"ros-jazzy-rosbridge-library-2.1.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["pillow","pymongo","python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","libcxx >=18","__osx >=10.13","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1739348907017,"md5":"8d0ee8ec4e55a2817d082d2a14dce16c","name":"ros-jazzy-rosbridge-library","requires":[],"size":144654,"version":"2.1.0","binstar":{"package_id":"67ac5ac530ccf2467ee0a1a0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8cb7d7ff85b1d4fdc5c4e218be25dc8013822a6de5148f677f86eaba05703f2b"},"ros-jazzy-rosbridge-server-2.1.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rosapi","ros-jazzy-rosbridge-library","ros-jazzy-rosbridge-msgs","ros2-distro-mutex 0.6.* jazzy_*","tornado","twisted","__osx >=10.14","libcxx >=18","__osx >=10.13","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"osx","timestamp":1739348962970,"md5":"c69330c2538ad8db896d0a69b13681e3","name":"ros-jazzy-rosbridge-server","requires":[],"size":52854,"version":"2.1.0","binstar":{"package_id":"67ac5ac6a538b1780fe0a18b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"188837c1cd13ab86f8d0979f2e84c8729343d6e86deb7319aa2a9ac938574add"},"ros-jazzy-rosbridge-suite-2.1.0-np126py311hd69bdec_2.conda":{"operatingsystem":"darwin","machine":"x86_64","target-triplet":"x86_64-any-darwin","has_prefix":false,"subdir":"osx-64","arch":"x86_64","build":"np126py311hd69bdec_2","build_number":2,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosapi","ros-jazzy-rosbridge-library","ros-jazzy-rosbridge-server","ros2-distro-mutex 0.6.* jazzy_*","__osx >=10.14","__osx >=10.13","libcxx >=18","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"osx","timestamp":1739348980477,"md5":"cee3feec77f4577b6c1ba9950e7769ad","name":"ros-jazzy-rosbridge-suite","requires":[],"size":20890,"version":"2.1.0","binstar":{"package_id":"67ac5ac9eeaf1c29bf69fb6e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"49869c44925a947010356526e9ab7d8db94f769350e7f36d236fb099c5c8a436"}},"info":{"default_numpy_version":"1.7","default_python_version":"2.7","platform":"osx","arch":"x86_64","subdir":"osx-64"}} \ No newline at end of file