diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml
new file mode 100644
index 00000000..01c43572
--- /dev/null
+++ b/.github/workflows/win.yml
@@ -0,0 +1,3460 @@
+jobs:
+ stage_0_job_0:
+ name: ros-workspace
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs: []
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-ros-workspace
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-ros-workspace
+ stage_1_job_1:
+ name: tl-expected tcb-span generate-parameter-library-py realtime-tools backward-ros
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_0_job_0
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-tl-expected ros-jazzy-tcb-span ros-jazzy-generate-parameter-library-py
+ ros-jazzy-realtime-tools ros-jazzy-backward-ros
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-tl-expected ros-jazzy-tcb-span ros-jazzy-generate-parameter-library-py
+ ros-jazzy-realtime-tools ros-jazzy-backward-ros
+ stage_1_job_2:
+ name: ros2-control-test-assets control-msgs diagnostic-updater controller-manager-msgs
+ filters
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_0_job_0
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-ros2-control-test-assets ros-jazzy-control-msgs
+ ros-jazzy-diagnostic-updater ros-jazzy-controller-manager-msgs ros-jazzy-filters
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-ros2-control-test-assets ros-jazzy-control-msgs ros-jazzy-diagnostic-updater
+ ros-jazzy-controller-manager-msgs ros-jazzy-filters
+ stage_1_job_3:
+ name: topic-tools-interfaces joint-state-publisher nav2-common geographic-msgs
+ smclib
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_0_job_0
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-topic-tools-interfaces ros-jazzy-joint-state-publisher
+ ros-jazzy-nav2-common ros-jazzy-geographic-msgs ros-jazzy-smclib
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-topic-tools-interfaces ros-jazzy-joint-state-publisher
+ ros-jazzy-nav2-common ros-jazzy-geographic-msgs ros-jazzy-smclib
+ stage_1_job_4:
+ name: bond python-orocos-kdl-vendor moveit-resources-panda-description octomap-msgs
+ object-recognition-msgs
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_0_job_0
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-bond ros-jazzy-python-orocos-kdl-vendor ros-jazzy-moveit-resources-panda-description
+ ros-jazzy-octomap-msgs ros-jazzy-object-recognition-msgs
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-bond ros-jazzy-python-orocos-kdl-vendor ros-jazzy-moveit-resources-panda-description
+ ros-jazzy-octomap-msgs ros-jazzy-object-recognition-msgs
+ stage_1_job_5:
+ name: random-numbers eigen-stl-containers srdfdom ruckig osqp-vendor
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_0_job_0
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-random-numbers ros-jazzy-eigen-stl-containers ros-jazzy-srdfdom
+ ros-jazzy-ruckig ros-jazzy-osqp-vendor
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-random-numbers ros-jazzy-eigen-stl-containers ros-jazzy-srdfdom
+ ros-jazzy-ruckig ros-jazzy-osqp-vendor
+ stage_1_job_6:
+ name: moveit-resources-pr2-description angles launch-param-builder behaviortree-cpp
+ rviz-common
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_0_job_0
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-moveit-resources-pr2-description ros-jazzy-angles
+ ros-jazzy-launch-param-builder ros-jazzy-behaviortree-cpp ros-jazzy-rviz-common
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-moveit-resources-pr2-description ros-jazzy-angles ros-jazzy-launch-param-builder
+ ros-jazzy-behaviortree-cpp ros-jazzy-rviz-common
+ stage_1_job_7:
+ name: moveit-resources-fanuc-description ackermann-msgs nav-2d-msgs warehouse-ros
+ launch-pytest
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_0_job_0
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-moveit-resources-fanuc-description ros-jazzy-ackermann-msgs
+ ros-jazzy-nav-2d-msgs ros-jazzy-warehouse-ros ros-jazzy-launch-pytest
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-moveit-resources-fanuc-description ros-jazzy-ackermann-msgs
+ ros-jazzy-nav-2d-msgs ros-jazzy-warehouse-ros ros-jazzy-launch-pytest
+ stage_1_job_8:
+ name: moveit-resources-prbt-support ompl tracetools-image-pipeline camera-calibration-parsers
+ pcl-msgs
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_0_job_0
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-moveit-resources-prbt-support ros-jazzy-ompl ros-jazzy-tracetools-image-pipeline
+ ros-jazzy-camera-calibration-parsers ros-jazzy-pcl-msgs
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-moveit-resources-prbt-support ros-jazzy-ompl ros-jazzy-tracetools-image-pipeline
+ ros-jazzy-camera-calibration-parsers ros-jazzy-pcl-msgs
+ stage_1_job_9:
+ name: ros-industrial-cmake-boilerplate image-rotate camera-calibration rtcm-msgs
+ nmea-msgs
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_0_job_0
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-ros-industrial-cmake-boilerplate ros-jazzy-image-rotate
+ ros-jazzy-camera-calibration ros-jazzy-rtcm-msgs ros-jazzy-nmea-msgs
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-ros-industrial-cmake-boilerplate ros-jazzy-image-rotate
+ ros-jazzy-camera-calibration ros-jazzy-rtcm-msgs ros-jazzy-nmea-msgs
+ stage_1_job_10:
+ name: vision-opencv simulation apriltag-msgs apriltag
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_0_job_0
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-vision-opencv ros-jazzy-simulation ros-jazzy-apriltag-msgs
+ ros-jazzy-apriltag
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-vision-opencv ros-jazzy-simulation ros-jazzy-apriltag-msgs
+ ros-jazzy-apriltag
+ stage_2_job_11:
+ name: rsl topic-tools joint-state-publisher-gui nav2-msgs bondcpp
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_1_job_1
+ - stage_1_job_2
+ - stage_1_job_3
+ - stage_1_job_4
+ - stage_1_job_5
+ - stage_1_job_6
+ - stage_1_job_7
+ - stage_1_job_8
+ - stage_1_job_9
+ - stage_1_job_10
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-rsl ros-jazzy-topic-tools ros-jazzy-joint-state-publisher-gui
+ ros-jazzy-nav2-msgs ros-jazzy-bondcpp
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-rsl ros-jazzy-topic-tools ros-jazzy-joint-state-publisher-gui
+ ros-jazzy-nav2-msgs ros-jazzy-bondcpp
+ stage_2_job_12:
+ name: moveit-msgs moveit-common geometric-shapes nav2-voxel-grid moveit-configs-utils
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_1_job_1
+ - stage_1_job_2
+ - stage_1_job_3
+ - stage_1_job_4
+ - stage_1_job_5
+ - stage_1_job_6
+ - stage_1_job_7
+ - stage_1_job_8
+ - stage_1_job_9
+ - stage_1_job_10
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-moveit-msgs ros-jazzy-moveit-common ros-jazzy-geometric-shapes
+ ros-jazzy-nav2-voxel-grid ros-jazzy-moveit-configs-utils
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-moveit-msgs ros-jazzy-moveit-common ros-jazzy-geometric-shapes
+ ros-jazzy-nav2-voxel-grid ros-jazzy-moveit-configs-utils
+ stage_2_job_13:
+ name: dwb-msgs robot-localization image-proc camera-info-manager pcl-conversions
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_1_job_1
+ - stage_1_job_2
+ - stage_1_job_3
+ - stage_1_job_4
+ - stage_1_job_5
+ - stage_1_job_6
+ - stage_1_job_7
+ - stage_1_job_8
+ - stage_1_job_9
+ - stage_1_job_10
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-dwb-msgs ros-jazzy-robot-localization ros-jazzy-image-proc
+ ros-jazzy-camera-info-manager ros-jazzy-pcl-conversions
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-dwb-msgs ros-jazzy-robot-localization ros-jazzy-image-proc
+ ros-jazzy-camera-info-manager ros-jazzy-pcl-conversions
+ stage_2_job_14:
+ name: stomp image-view diagnostic-aggregator laser-filters self-test
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_1_job_1
+ - stage_1_job_2
+ - stage_1_job_3
+ - stage_1_job_4
+ - stage_1_job_5
+ - stage_1_job_6
+ - stage_1_job_7
+ - stage_1_job_8
+ - stage_1_job_9
+ - stage_1_job_10
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-stomp ros-jazzy-image-view ros-jazzy-diagnostic-aggregator
+ ros-jazzy-laser-filters ros-jazzy-self-test
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-stomp ros-jazzy-image-view ros-jazzy-diagnostic-aggregator
+ ros-jazzy-laser-filters ros-jazzy-self-test
+ stage_2_job_15:
+ name: diagnostic-common-diagnostics sbg-driver apriltag-ros
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_1_job_1
+ - stage_1_job_2
+ - stage_1_job_3
+ - stage_1_job_4
+ - stage_1_job_5
+ - stage_1_job_6
+ - stage_1_job_7
+ - stage_1_job_8
+ - stage_1_job_9
+ - stage_1_job_10
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-diagnostic-common-diagnostics ros-jazzy-sbg-driver
+ ros-jazzy-apriltag-ros
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-diagnostic-common-diagnostics ros-jazzy-sbg-driver ros-jazzy-apriltag-ros
+ stage_3_job_16:
+ name: parameter-traits nav2-util nav2-simple-commander slam-toolbox stereo-image-proc
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_2_job_11
+ - stage_2_job_12
+ - stage_2_job_13
+ - stage_2_job_14
+ - stage_2_job_15
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-parameter-traits ros-jazzy-nav2-util ros-jazzy-nav2-simple-commander
+ ros-jazzy-slam-toolbox ros-jazzy-stereo-image-proc
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-parameter-traits ros-jazzy-nav2-util ros-jazzy-nav2-simple-commander
+ ros-jazzy-slam-toolbox ros-jazzy-stereo-image-proc
+ stage_3_job_17:
+ name: image-publisher depth-image-proc pcl-ros image-common diagnostics
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_2_job_11
+ - stage_2_job_12
+ - stage_2_job_13
+ - stage_2_job_14
+ - stage_2_job_15
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-image-publisher ros-jazzy-depth-image-proc ros-jazzy-pcl-ros
+ ros-jazzy-image-common ros-jazzy-diagnostics
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-image-publisher ros-jazzy-depth-image-proc ros-jazzy-pcl-ros
+ ros-jazzy-image-common ros-jazzy-diagnostics
+ stage_4_job_18:
+ name: generate-parameter-library nav2-map-server nav2-lifecycle-manager nav2-behavior-tree
+ nav-2d-utils
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_3_job_16
+ - stage_3_job_17
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-generate-parameter-library ros-jazzy-nav2-map-server
+ ros-jazzy-nav2-lifecycle-manager ros-jazzy-nav2-behavior-tree ros-jazzy-nav-2d-utils
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-generate-parameter-library ros-jazzy-nav2-map-server ros-jazzy-nav2-lifecycle-manager
+ ros-jazzy-nav2-behavior-tree ros-jazzy-nav-2d-utils
+ stage_4_job_19:
+ name: opennav-docking-core nav2-velocity-smoother nav2-amcl image-pipeline perception-pcl
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_3_job_16
+ - stage_3_job_17
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-opennav-docking-core ros-jazzy-nav2-velocity-smoother
+ ros-jazzy-nav2-amcl ros-jazzy-image-pipeline ros-jazzy-perception-pcl
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-opennav-docking-core ros-jazzy-nav2-velocity-smoother
+ ros-jazzy-nav2-amcl ros-jazzy-image-pipeline ros-jazzy-perception-pcl
+ stage_5_job_20:
+ name: joint-limits control-toolbox nav2-costmap-2d nav2-rviz-plugins perception
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_4_job_18
+ - stage_4_job_19
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-joint-limits ros-jazzy-control-toolbox ros-jazzy-nav2-costmap-2d
+ ros-jazzy-nav2-rviz-plugins ros-jazzy-perception
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-joint-limits ros-jazzy-control-toolbox ros-jazzy-nav2-costmap-2d
+ ros-jazzy-nav2-rviz-plugins ros-jazzy-perception
+ stage_6_job_21:
+ name: hardware-interface nav2-core costmap-queue nav2-collision-monitor desktop-full
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_5_job_20
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-hardware-interface ros-jazzy-nav2-core ros-jazzy-costmap-queue
+ ros-jazzy-nav2-collision-monitor ros-jazzy-desktop-full
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-hardware-interface ros-jazzy-nav2-core ros-jazzy-costmap-queue
+ ros-jazzy-nav2-collision-monitor ros-jazzy-desktop-full
+ stage_7_job_22:
+ name: hardware-interface-testing controller-interface nav2-controller dwb-core
+ nav2-regulated-pure-pursuit-controller
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_6_job_21
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-hardware-interface-testing ros-jazzy-controller-interface
+ ros-jazzy-nav2-controller ros-jazzy-dwb-core ros-jazzy-nav2-regulated-pure-pursuit-controller
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-hardware-interface-testing ros-jazzy-controller-interface
+ ros-jazzy-nav2-controller ros-jazzy-dwb-core ros-jazzy-nav2-regulated-pure-pursuit-controller
+ stage_7_job_23:
+ name: opennav-docking-bt nav2-waypoint-follower nav2-theta-star-planner nav2-smoother
+ nav2-smac-planner
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_6_job_21
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-opennav-docking-bt ros-jazzy-nav2-waypoint-follower
+ ros-jazzy-nav2-theta-star-planner ros-jazzy-nav2-smoother ros-jazzy-nav2-smac-planner
+ PYTHONUNBUFFERED: 1
+ name: Build 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
+ stage_7_job_24:
+ name: nav2-planner nav2-navfn-planner nav2-mppi-controller nav2-constrained-smoother
+ nav2-bt-navigator
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_6_job_21
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-nav2-planner ros-jazzy-nav2-navfn-planner ros-jazzy-nav2-mppi-controller
+ ros-jazzy-nav2-constrained-smoother ros-jazzy-nav2-bt-navigator
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-nav2-planner ros-jazzy-nav2-navfn-planner ros-jazzy-nav2-mppi-controller
+ ros-jazzy-nav2-constrained-smoother ros-jazzy-nav2-bt-navigator
+ stage_7_job_25:
+ name: nav2-behaviors
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_6_job_21
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-nav2-behaviors
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-nav2-behaviors
+ stage_8_job_26:
+ name: controller-manager nav2-graceful-controller dwb-plugins dwb-critics nav2-rotation-shim-controller
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_7_job_22
+ - stage_7_job_23
+ - stage_7_job_24
+ - stage_7_job_25
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-controller-manager ros-jazzy-nav2-graceful-controller
+ ros-jazzy-dwb-plugins ros-jazzy-dwb-critics ros-jazzy-nav2-rotation-shim-controller
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-controller-manager ros-jazzy-nav2-graceful-controller
+ ros-jazzy-dwb-plugins ros-jazzy-dwb-critics ros-jazzy-nav2-rotation-shim-controller
+ stage_9_job_27:
+ name: forward-command-controller gripper-controllers opennav-docking nav2-dwb-controller
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_8_job_26
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-forward-command-controller ros-jazzy-gripper-controllers
+ ros-jazzy-opennav-docking ros-jazzy-nav2-dwb-controller
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-forward-command-controller ros-jazzy-gripper-controllers
+ ros-jazzy-opennav-docking ros-jazzy-nav2-dwb-controller
+ stage_10_job_28:
+ name: position-controllers navigation2 moveit-resources-panda-moveit-config moveit-resources-fanuc-moveit-config
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_9_job_27
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-position-controllers ros-jazzy-navigation2 ros-jazzy-moveit-resources-panda-moveit-config
+ ros-jazzy-moveit-resources-fanuc-moveit-config
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-position-controllers ros-jazzy-navigation2 ros-jazzy-moveit-resources-panda-moveit-config
+ ros-jazzy-moveit-resources-fanuc-moveit-config
+ stage_11_job_29:
+ name: moveit-core
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_10_job_28
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-moveit-core
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-moveit-core
+ stage_12_job_30:
+ name: moveit-ros-occupancy-map-monitor moveit-resources-prbt-ikfast-manipulator-plugin
+ moveit-simple-controller-manager pilz-industrial-motion-planner-testutils chomp-motion-planner
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_11_job_29
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-moveit-ros-occupancy-map-monitor ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin
+ ros-jazzy-moveit-simple-controller-manager ros-jazzy-pilz-industrial-motion-planner-testutils
+ ros-jazzy-chomp-motion-planner
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-moveit-ros-occupancy-map-monitor ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin
+ ros-jazzy-moveit-simple-controller-manager ros-jazzy-pilz-industrial-motion-planner-testutils
+ ros-jazzy-chomp-motion-planner
+ stage_12_job_31:
+ name: moveit-planners-stomp
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_11_job_29
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-moveit-planners-stomp
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-moveit-planners-stomp
+ stage_13_job_32:
+ name: moveit-ros-planning moveit-planners-chomp moveit-plugins
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_12_job_30
+ - stage_12_job_31
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-moveit-ros-planning ros-jazzy-moveit-planners-chomp
+ ros-jazzy-moveit-plugins
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-moveit-ros-planning ros-jazzy-moveit-planners-chomp ros-jazzy-moveit-plugins
+ stage_14_job_33:
+ name: moveit-kinematics moveit-ros-warehouse moveit-ros-robot-interaction moveit-planners-ompl
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_13_job_32
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-moveit-kinematics ros-jazzy-moveit-ros-warehouse
+ ros-jazzy-moveit-ros-robot-interaction ros-jazzy-moveit-planners-ompl
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-moveit-kinematics ros-jazzy-moveit-ros-warehouse ros-jazzy-moveit-ros-robot-interaction
+ ros-jazzy-moveit-planners-ompl
+ stage_15_job_34:
+ name: moveit-ros-move-group moveit-ros-benchmarks moveit-resources-prbt-moveit-config
+ moveit-ros-planning-interface
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_14_job_33
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-moveit-ros-move-group ros-jazzy-moveit-ros-benchmarks
+ ros-jazzy-moveit-resources-prbt-moveit-config ros-jazzy-moveit-ros-planning-interface
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-moveit-ros-move-group ros-jazzy-moveit-ros-benchmarks
+ ros-jazzy-moveit-resources-prbt-moveit-config ros-jazzy-moveit-ros-planning-interface
+ stage_16_job_35:
+ name: moveit-resources-prbt-pg70-support moveit-ros-visualization
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_15_job_34
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-moveit-resources-prbt-pg70-support ros-jazzy-moveit-ros-visualization
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-moveit-resources-prbt-pg70-support ros-jazzy-moveit-ros-visualization
+ stage_17_job_36:
+ name: pilz-industrial-motion-planner moveit-setup-framework moveit-ros
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_16_job_35
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-pilz-industrial-motion-planner ros-jazzy-moveit-setup-framework
+ ros-jazzy-moveit-ros
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-pilz-industrial-motion-planner ros-jazzy-moveit-setup-framework
+ ros-jazzy-moveit-ros
+ stage_18_job_37:
+ name: moveit-planners moveit-setup-core-plugins moveit-setup-controllers moveit-setup-app-plugins
+ moveit-setup-srdf-plugins
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_17_job_36
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-moveit-planners ros-jazzy-moveit-setup-core-plugins
+ ros-jazzy-moveit-setup-controllers ros-jazzy-moveit-setup-app-plugins ros-jazzy-moveit-setup-srdf-plugins
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-moveit-planners ros-jazzy-moveit-setup-core-plugins ros-jazzy-moveit-setup-controllers
+ ros-jazzy-moveit-setup-app-plugins ros-jazzy-moveit-setup-srdf-plugins
+ stage_19_job_38:
+ name: moveit-setup-assistant moveit
+ runs-on: windows-2019
+ strategy:
+ fail-fast: false
+ needs:
+ - stage_18_job_37
+ env:
+ CONDA_BLD_PATH: C:\\bld\\
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Setup pixi
+ uses: prefix-dev/setup-pixi@v0.8.1
+ with:
+ pixi-version: v0.39.4
+ cache: 'true'
+ - uses: egor-tensin/cleanup-path@v4
+ with:
+ dirs: C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program
+ Files\Git\mingw64\bin
+ - shell: cmd
+ run: |
+ set "CI=true"
+
+ :: 4 cores available on GHA: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners
+ :: CPU_COUNT is passed through conda build: https://github.com/conda/conda-build/pull/1149
+ set CPU_COUNT=4
+
+ set PYTHONUNBUFFERED=1
+
+ call setup_x64
+
+ :: Set the conda-build working directory to a smaller path
+ if "%CONDA_BLD_PATH%" == "" (
+ set "CONDA_BLD_PATH=C:\\bld\\"
+ )
+
+ :: On azure, there are libcrypto*.dll & libssl*.dll under
+ :: C:\\Windows\\System32, which should not be there (no vendor dlls in windows folder).
+ :: They would be found before the openssl libs of the conda environment, so we delete them.
+ if defined CI (
+ DEL C:\\Windows\\System32\\libcrypto-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libcrypto-1_1-x64.dll)
+ DEL C:\\Windows\\System32\\libssl-1_1-x64.dll || (Echo Ignoring failure to delete C:\\Windows\\System32\\libssl-1_1-x64.dll)
+ )
+
+ :: Make paths like C:\\hostedtoolcache\\windows\\Ruby\\2.5.7\\x64\\bin garbage
+ set "PATH=%PATH:ostedtoolcache=%"
+ name: conda-forge build setup
+ - shell: cmd
+ run: |
+ setlocal EnableExtensions EnableDelayedExpansion
+
+ set CONDA_BLD_PATH=C:\bld
+ echo "PATH is %PATH%"
+
+ rmdir /Q/S C:\Strawberry\
+ rmdir /Q/S "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\"
+
+ set "FEEDSTOCK_ROOT=%cd%"
+
+ mkdir %CONDA_BLD_PATH%
+
+ :: Enable long path names on Windows
+ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f
+
+ for %%X in (%CURRENT_RECIPES%) do (
+ echo "BUILDING RECIPE %%X"
+ cd %FEEDSTOCK_ROOT%\recipes\%%X\
+ pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
+ -m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
+ -c robostack-jazzy -c conda-forge ^
+ --output-dir %CONDA_BLD_PATH%
+
+ if errorlevel 1 exit 1
+ rem -m %FEEDSTOCK_ROOT%\.ci_support\conda_forge_pinnings.yaml
+ )
+
+ pixi run upload "%CONDA_BLD_PATH%\win-64\*.conda" --force
+ if errorlevel 1 exit 1
+ env:
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
+ CURRENT_RECIPES: ros-jazzy-moveit-setup-assistant ros-jazzy-moveit
+ PYTHONUNBUFFERED: 1
+ name: Build ros-jazzy-moveit-setup-assistant ros-jazzy-moveit
+name: build_win
+on:
+ push:
+ branches:
+ - buildbranch_win
diff --git a/activate.bat b/activate.bat
new file mode 100755
index 00000000..48ff1d71
--- /dev/null
+++ b/activate.bat
@@ -0,0 +1,15 @@
+:: Generated by vinca http://github.com/RoboStack/vinca.
+:: DO NOT EDIT!
+@if not defined CONDA_PREFIX goto:eof
+
+@REM Don't do anything when we are in conda build.
+@if defined SYS_PREFIX exit /b 0
+
+@set "QT_PLUGIN_PATH=%CONDA_PREFIX%\Library\plugins"
+
+@call "%CONDA_PREFIX%\Library\local_setup.bat"
+@set PYTHONHOME=
+@set "ROS_OS_OVERRIDE=conda:win64"
+@set "ROS_ETC_DIR=%CONDA_PREFIX%\Library\etc\ros"
+@set "AMENT_PREFIX_PATH=%CONDA_PREFIX%\Library"
+@set "AMENT_PYTHON_EXECUTABLE=%CONDA_PREFIX%\python.exe"
diff --git a/activate.ps1 b/activate.ps1
new file mode 100755
index 00000000..137e67ae
--- /dev/null
+++ b/activate.ps1
@@ -0,0 +1,16 @@
+# Generated by vinca http://github.com/RoboStack/vinca.
+# DO NOT EDIT!
+if ($null -eq ${env:CONDA_PREFIX}) { Exit }
+
+# Don't do anything when we are in conda build.
+if ($null -ne ${env:SYS_PREFIX}) { Exit 0 }
+
+$Env:QT_PLUGIN_PATH="${env:CONDA_PREFIX}\Library\plugins"
+
+& "${env:CONDA_PREFIX}\Library\local_setup.ps1"
+
+$Env:PYTHONHOME=''
+$Env:ROS_OS_OVERRIDE='conda:win64'
+$Env:ROS_ETC_DIR="${env:CONDA_PREFIX}\Library\etc\ros"
+$Env:AMENT_PREFIX_PATH="${env:CONDA_PREFIX}\Library"
+$Env:AMENT_PYTHON_EXECUTABLE="${env:CONDA_PREFIX}\python.exe"
diff --git a/activate.sh b/activate.sh
new file mode 100755
index 00000000..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..a3f84ee1
--- /dev/null
+++ b/buildorder.txt
@@ -0,0 +1,162 @@
+ros-jazzy-ros-workspace
+ros-jazzy-tl-expected
+ros-jazzy-tcb-span
+ros-jazzy-generate-parameter-library-py
+ros-jazzy-realtime-tools
+ros-jazzy-backward-ros
+ros-jazzy-ros2-control-test-assets
+ros-jazzy-control-msgs
+ros-jazzy-diagnostic-updater
+ros-jazzy-controller-manager-msgs
+ros-jazzy-filters
+ros-jazzy-topic-tools-interfaces
+ros-jazzy-joint-state-publisher
+ros-jazzy-nav2-common
+ros-jazzy-geographic-msgs
+ros-jazzy-smclib
+ros-jazzy-bond
+ros-jazzy-python-orocos-kdl-vendor
+ros-jazzy-moveit-resources-panda-description
+ros-jazzy-octomap-msgs
+ros-jazzy-object-recognition-msgs
+ros-jazzy-random-numbers
+ros-jazzy-eigen-stl-containers
+ros-jazzy-srdfdom
+ros-jazzy-ruckig
+ros-jazzy-osqp-vendor
+ros-jazzy-moveit-resources-pr2-description
+ros-jazzy-angles
+ros-jazzy-launch-param-builder
+ros-jazzy-behaviortree-cpp
+ros-jazzy-rviz-common
+ros-jazzy-moveit-resources-fanuc-description
+ros-jazzy-ackermann-msgs
+ros-jazzy-nav-2d-msgs
+ros-jazzy-warehouse-ros
+ros-jazzy-launch-pytest
+ros-jazzy-moveit-resources-prbt-support
+ros-jazzy-ompl
+ros-jazzy-tracetools-image-pipeline
+ros-jazzy-camera-calibration-parsers
+ros-jazzy-pcl-msgs
+ros-jazzy-ros-industrial-cmake-boilerplate
+ros-jazzy-image-rotate
+ros-jazzy-camera-calibration
+ros-jazzy-rtcm-msgs
+ros-jazzy-nmea-msgs
+ros-jazzy-vision-opencv
+ros-jazzy-simulation
+ros-jazzy-apriltag-msgs
+ros-jazzy-apriltag
+ros-jazzy-rsl
+ros-jazzy-topic-tools
+ros-jazzy-joint-state-publisher-gui
+ros-jazzy-nav2-msgs
+ros-jazzy-bondcpp
+ros-jazzy-moveit-msgs
+ros-jazzy-moveit-common
+ros-jazzy-geometric-shapes
+ros-jazzy-nav2-voxel-grid
+ros-jazzy-moveit-configs-utils
+ros-jazzy-dwb-msgs
+ros-jazzy-robot-localization
+ros-jazzy-image-proc
+ros-jazzy-camera-info-manager
+ros-jazzy-pcl-conversions
+ros-jazzy-stomp
+ros-jazzy-image-view
+ros-jazzy-diagnostic-aggregator
+ros-jazzy-laser-filters
+ros-jazzy-self-test
+ros-jazzy-diagnostic-common-diagnostics
+ros-jazzy-sbg-driver
+ros-jazzy-apriltag-ros
+ros-jazzy-parameter-traits
+ros-jazzy-nav2-util
+ros-jazzy-nav2-simple-commander
+ros-jazzy-slam-toolbox
+ros-jazzy-stereo-image-proc
+ros-jazzy-image-publisher
+ros-jazzy-depth-image-proc
+ros-jazzy-pcl-ros
+ros-jazzy-image-common
+ros-jazzy-diagnostics
+ros-jazzy-generate-parameter-library
+ros-jazzy-nav2-map-server
+ros-jazzy-nav2-lifecycle-manager
+ros-jazzy-nav2-behavior-tree
+ros-jazzy-nav-2d-utils
+ros-jazzy-opennav-docking-core
+ros-jazzy-nav2-velocity-smoother
+ros-jazzy-nav2-amcl
+ros-jazzy-image-pipeline
+ros-jazzy-perception-pcl
+ros-jazzy-joint-limits
+ros-jazzy-control-toolbox
+ros-jazzy-nav2-costmap-2d
+ros-jazzy-nav2-rviz-plugins
+ros-jazzy-perception
+ros-jazzy-hardware-interface
+ros-jazzy-nav2-core
+ros-jazzy-costmap-queue
+ros-jazzy-nav2-collision-monitor
+ros-jazzy-desktop-full
+ros-jazzy-hardware-interface-testing
+ros-jazzy-controller-interface
+ros-jazzy-nav2-controller
+ros-jazzy-dwb-core
+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-controller-manager
+ros-jazzy-nav2-graceful-controller
+ros-jazzy-dwb-plugins
+ros-jazzy-dwb-critics
+ros-jazzy-nav2-rotation-shim-controller
+ros-jazzy-forward-command-controller
+ros-jazzy-gripper-controllers
+ros-jazzy-opennav-docking
+ros-jazzy-nav2-dwb-controller
+ros-jazzy-position-controllers
+ros-jazzy-navigation2
+ros-jazzy-moveit-resources-panda-moveit-config
+ros-jazzy-moveit-resources-fanuc-moveit-config
+ros-jazzy-moveit-core
+ros-jazzy-moveit-ros-occupancy-map-monitor
+ros-jazzy-moveit-resources-prbt-ikfast-manipulator-plugin
+ros-jazzy-moveit-simple-controller-manager
+ros-jazzy-pilz-industrial-motion-planner-testutils
+ros-jazzy-chomp-motion-planner
+ros-jazzy-moveit-planners-stomp
+ros-jazzy-moveit-ros-planning
+ros-jazzy-moveit-planners-chomp
+ros-jazzy-moveit-plugins
+ros-jazzy-moveit-kinematics
+ros-jazzy-moveit-ros-warehouse
+ros-jazzy-moveit-ros-robot-interaction
+ros-jazzy-moveit-planners-ompl
+ros-jazzy-moveit-ros-move-group
+ros-jazzy-moveit-ros-benchmarks
+ros-jazzy-moveit-resources-prbt-moveit-config
+ros-jazzy-moveit-ros-planning-interface
+ros-jazzy-moveit-resources-prbt-pg70-support
+ros-jazzy-moveit-ros-visualization
+ros-jazzy-pilz-industrial-motion-planner
+ros-jazzy-moveit-setup-framework
+ros-jazzy-moveit-ros
+ros-jazzy-moveit-planners
+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-setup-assistant
+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..16ecfc8e
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ament-lint-common
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rosidl-default-generators
+ - ros-jazzy-std-msgs
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rosidl-default-runtime
+ - ros-jazzy-std-msgs
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-angles.win.patch b/recipes/ros-jazzy-angles/patch/ros-jazzy-angles.win.patch
new file mode 100644
index 00000000..5b6de7e4
--- /dev/null
+++ b/recipes/ros-jazzy-angles/patch/ros-jazzy-angles.win.patch
@@ -0,0 +1,11 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f909972..5b6b6e8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -19,3 +19,6 @@ find_package(ament_cmake REQUIRED)
++if(WIN32)
++ target_compile_definitions(angles INTERFACE _USE_MATH_DEFINES)
++endif()
+
+ if(BUILD_TESTING)
+ find_package(ament_cmake_gtest REQUIRED)
diff --git a/recipes/ros-jazzy-angles/recipe.yaml b/recipes/ros-jazzy-angles/recipe.yaml
new file mode 100644
index 00000000..6beb850a
--- /dev/null
+++ b/recipes/ros-jazzy-angles/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-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
+ patches:
+ - patch/ros-jazzy-angles.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 3
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ament-cmake-python
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - setuptools
+ run:
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..9754f455
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ament-lint-auto
+ - ros-jazzy-ament-lint-common
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rosidl-default-generators
+ - ros-jazzy-std-msgs
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rosidl-default-runtime
+ - ros-jazzy-std-msgs
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..bfcaca6f
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* 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..9efd29a0
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
diff --git a/recipes/ros-jazzy-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..91186cdd
--- /dev/null
+++ b/recipes/ros-jazzy-backward-ros/patch/ros-jazzy-backward-ros.patch
@@ -0,0 +1,82 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 64af86c..9be355d 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..d981cbb 100644
+--- a/cmake/BackwardConfigAment.cmake
++++ b/cmake/BackwardConfigAment.cmake
+@@ -24,5 +24,13 @@ 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/backward_rosConfig.cmake.in b/backward_rosConfig.cmake.in
+index 6713e91..282e194 100644
+--- a/backward_rosConfig.cmake.in
++++ b/backward_rosConfig.cmake.in
+@@ -2,8 +2,10 @@
+ set_and_check(backward_ros_INCLUDE_DIRS "@BACKWARD_ROS_INSTALL_PREFIX@/include")
+ if(WIN32)
+ set_and_check(backward_ros_LIBRARIES "@BACKWARD_ROS_INSTALL_PREFIX@/lib/backward.lib")
++elseif(APPLE)
++set_and_check(backward_ros_LIBRARIES "@BACKWARD_ROS_INSTALL_PREFIX@/lib/libbackward.dylib")
+ else()
+ set_and_check(backward_ros_LIBRARIES "@BACKWARD_ROS_INSTALL_PREFIX@/lib/libbackward.so")
+ endif()
+ check_required_components(backward_ros)
+-include(@BACKWARD_ROS_INSTALL_PREFIX@/share/@PROJECT_NAME@/cmake/BackwardConfigAment.cmake)
+\ No newline at end of file
++include(@BACKWARD_ROS_INSTALL_PREFIX@/share/@PROJECT_NAME@/cmake/BackwardConfigAment.cmake)
+diff --git a/package.xml b/package.xml
+index e8bc10a..d39e613 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..aa487e14
--- /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.6
+source:
+ git: https://github.com/ros2-gbp/backward_ros-release.git
+ tag: release/jazzy/backward_ros/1.0.6-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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - 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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-behaviortree-cpp.win.patch b/recipes/ros-jazzy-behaviortree-cpp/patch/ros-jazzy-behaviortree-cpp.win.patch
new file mode 100644
index 00000000..8fe90040
--- /dev/null
+++ b/recipes/ros-jazzy-behaviortree-cpp/patch/ros-jazzy-behaviortree-cpp.win.patch
@@ -0,0 +1,24 @@
+diff --git a/cmake/ament_build.cmake b/cmake/ament_build.cmake
+index 55c3011b2..152268032 100644
+--- a/cmake/ament_build.cmake
++++ b/cmake/ament_build.cmake
+@@ -10,7 +10,10 @@ if(BTCPP_SQLITE_LOGGING)
+ find_package(SQLite3 REQUIRED)
+ endif()
+
+-find_package(ament_index_cpp REQUIRED)
++find_package(ament_index_cpp REQUIRED)
++
++set(BTCPP_EXTRA_INCLUDE_DIRS ${ZeroMQ_INCLUDE_DIRS}
++ ${SQLite3_INCLUDE_DIRS})
+
+ set( BTCPP_EXTRA_LIBRARIES
+ $
+@@ -26,6 +29,7 @@ set( BTCPP_BIN_DESTINATION bin )
+
+ mark_as_advanced(
+ BTCPP_EXTRA_LIBRARIES
++ BTCPP_EXTRA_INCLUDE_DIRS
+ BTCPP_LIB_DESTINATION
+ BTCPP_INCLUDE_DESTINATION
+ BTCPP_BIN_DESTINATION )
diff --git a/recipes/ros-jazzy-behaviortree-cpp/recipe.yaml b/recipes/ros-jazzy-behaviortree-cpp/recipe.yaml
new file mode 100644
index 00000000..08263505
--- /dev/null
+++ b/recipes/ros-jazzy-behaviortree-cpp/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-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
+ - patch/ros-jazzy-behaviortree-cpp.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - 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.6.* 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.6.* jazzy_*
+ - sqlite
+ - zeromq
+ - 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..9d3cf575
--- /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.0
+source:
+ git: https://github.com/ros2-gbp/bond_core-release.git
+ tag: release/jazzy/bond/4.1.0-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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-builtin-interfaces
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rosidl-default-runtime
+ - ros-jazzy-std-msgs
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..5d0d1d45
--- /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.0
+source:
+ git: https://github.com/ros2-gbp/bond_core-release.git
+ tag: release/jazzy/bondcpp/4.1.0-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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - 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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-bond
+ - ros-jazzy-rclcpp
+ - ros-jazzy-rclcpp-lifecycle
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-smclib
+ - ros2-distro-mutex 0.6.* 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..79005414
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-rclcpp
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-sensor-msgs
+ - ros-jazzy-yaml-cpp-vendor
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..0afeb018
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* 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..e33aeb8d
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_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.6.* 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.6.* 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..86047f33
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - 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.6.* 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.6.* 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..5e3c697a
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_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.6.* 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.6.* 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/patch/ros-jazzy-control-toolbox.win.patch b/recipes/ros-jazzy-control-toolbox/patch/ros-jazzy-control-toolbox.win.patch
new file mode 100644
index 00000000..cd452987
--- /dev/null
+++ b/recipes/ros-jazzy-control-toolbox/patch/ros-jazzy-control-toolbox.win.patch
@@ -0,0 +1,32 @@
+From 791d063ea62837e86831b7b4dda48b22e680d8cc Mon Sep 17 00:00:00 2001
+From: Christoph Froehlich
+Date: Mon, 25 Nov 2024 20:11:09 +0000
+Subject: [PATCH] Export symbols on windows
+
+---
+ CMakeLists.txt | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index cc1f551..30f4bad 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,11 +7,16 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
+ endif()
+
+ if(WIN32)
+- # Enable Math Constants
+- # https://docs.microsoft.com/en-us/cpp/c-runtime-library/math-constants?view=vs-2019
+ add_compile_definitions(
++ # For math constants
++ # https://docs.microsoft.com/en-us/cpp/c-runtime-library/math-constants?view=vs-2019
+ _USE_MATH_DEFINES
++ # Minimize Windows namespace collision
++ NOMINMAX
++ WIN32_LEAN_AND_MEAN
+ )
++ # set the same behavior for windows as it is on linux
++ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+ endif()
+
+ set(THIS_PACKAGE_INCLUDE_DEPENDS
diff --git a/recipes/ros-jazzy-control-toolbox/recipe.yaml b/recipes/ros-jazzy-control-toolbox/recipe.yaml
new file mode 100644
index 00000000..41c942a0
--- /dev/null
+++ b/recipes/ros-jazzy-control-toolbox/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-control-toolbox
+ version: 3.4.0
+source:
+ git: https://github.com/ros2-gbp/control_toolbox-release.git
+ tag: release/jazzy/control_toolbox/3.4.0-1
+ target_directory: ros-jazzy-control-toolbox/src/work
+ patches:
+ - patch/ros-jazzy-control-toolbox.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - 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.6.* 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.6.* 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..096c1a02
--- /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.23.0
+source:
+ git: https://github.com/ros2-gbp/ros2_control-release.git
+ tag: release/jazzy/controller_interface/4.23.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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-hardware-interface
+ - ros-jazzy-rclcpp-lifecycle
+ - ros-jazzy-realtime-tools
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..06a68675
--- /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.23.0
+source:
+ git: https://github.com/ros2-gbp/ros2_control-release.git
+ tag: release/jazzy/controller_manager_msgs/4.23.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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-builtin-interfaces
+ - ros-jazzy-lifecycle-msgs
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rosidl-default-runtime
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..8f2e124c
--- /dev/null
+++ b/recipes/ros-jazzy-controller-manager/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-controller-manager
+ version: 4.23.0
+source:
+ git: https://github.com/ros2-gbp/ros2_control-release.git
+ tag: release/jazzy/controller_manager/4.23.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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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-ament-index-cpp
+ - 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.6.* jazzy_*
+ run:
+ - 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_*
+ - 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..00318707
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-nav2-costmap-2d
+ - ros-jazzy-rclcpp
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..20374a40
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
diff --git a/recipes/ros-jazzy-desktop-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..d933a8e2
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-desktop
+ - ros-jazzy-perception
+ - ros-jazzy-ros-gz-sim-demos
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-simulation
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-diagnostic-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/patch/ros-jazzy-diagnostic-aggregator.win.patch b/recipes/ros-jazzy-diagnostic-aggregator/patch/ros-jazzy-diagnostic-aggregator.win.patch
new file mode 100644
index 00000000..bb033278
--- /dev/null
+++ b/recipes/ros-jazzy-diagnostic-aggregator/patch/ros-jazzy-diagnostic-aggregator.win.patch
@@ -0,0 +1,9 @@
+diff --git a/diagnostic_aggregator/CMakeLists.txt b/diagnostic_aggregator/CMakeLists.txt
+index 6014edf3..bbcee116 100644
+--- a/diagnostic_aggregator/CMakeLists.txt
++++ b/diagnostic_aggregator/CMakeLists.txt
+@@ -6,3 +6,4 @@ endif()
++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+ find_package(ament_cmake REQUIRED)
+ find_package(diagnostic_msgs REQUIRED)
diff --git a/recipes/ros-jazzy-diagnostic-aggregator/recipe.yaml b/recipes/ros-jazzy-diagnostic-aggregator/recipe.yaml
new file mode 100644
index 00000000..29e6b251
--- /dev/null
+++ b/recipes/ros-jazzy-diagnostic-aggregator/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-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
+ patches:
+ - patch/ros-jazzy-diagnostic-aggregator.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-rclpy
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..5daa4efe
--- /dev/null
+++ b/recipes/ros-jazzy-diagnostic-common-diagnostics/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-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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* jazzy_*
+ run:
+ - psutil
+ - python
+ - ros-jazzy-diagnostic-updater
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-diagnostic-updater.win.patch b/recipes/ros-jazzy-diagnostic-updater/patch/ros-jazzy-diagnostic-updater.win.patch
new file mode 100644
index 00000000..d8b1eb0b
--- /dev/null
+++ b/recipes/ros-jazzy-diagnostic-updater/patch/ros-jazzy-diagnostic-updater.win.patch
@@ -0,0 +1,9 @@
+diff --git a/diagnostic_updater/CMakeLists.txt b/diagnostic_updater/CMakeLists.txt
+index eafa9891..9199df0d 100644
+--- a/diagnostic_updater/CMakeLists.txt
++++ b/diagnostic_updater/CMakeLists.txt
+@@ -6,3 +6,4 @@ endif()
++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+ find_package(ament_cmake REQUIRED)
+ find_package(ament_cmake_ros REQUIRED)
diff --git a/recipes/ros-jazzy-diagnostic-updater/recipe.yaml b/recipes/ros-jazzy-diagnostic-updater/recipe.yaml
new file mode 100644
index 00000000..02a57e23
--- /dev/null
+++ b/recipes/ros-jazzy-diagnostic-updater/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-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
+ patches:
+ - patch/ros-jazzy-diagnostic-updater.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - 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.6.* 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.6.* 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..1bba21f4
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-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_*
+ - 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..d23d79a5
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..a3d86d88
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..c96a69da
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - 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.6.* 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.6.* 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..4b90650f
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..6a666931
--- /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.0.0
+source:
+ git: https://github.com/ros2-gbp/eigen_stl_containers-release.git
+ tag: release/jazzy/eigen_stl_containers/1.0.0-7
+ 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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* jazzy_*
+ run:
+ - eigen
+ - python
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-filters.win.patch b/recipes/ros-jazzy-filters/patch/ros-jazzy-filters.win.patch
new file mode 100644
index 00000000..48c280fb
--- /dev/null
+++ b/recipes/ros-jazzy-filters/patch/ros-jazzy-filters.win.patch
@@ -0,0 +1,9 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 32b9f9f..587d5ca 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -12,3 +12,4 @@ endif()
++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+ ##############################################################################
+ # Find dependencies
diff --git a/recipes/ros-jazzy-filters/recipe.yaml b/recipes/ros-jazzy-filters/recipe.yaml
new file mode 100644
index 00000000..35355dec
--- /dev/null
+++ b/recipes/ros-jazzy-filters/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-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
+ patches:
+ - patch/ros-jazzy-filters.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - 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.6.* jazzy_*
+ run:
+ - libboost-devel
+ - python
+ - ros-jazzy-pluginlib
+ - ros-jazzy-rclcpp
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-forward-command-controller.win.patch b/recipes/ros-jazzy-forward-command-controller/patch/ros-jazzy-forward-command-controller.win.patch
new file mode 100644
index 00000000..9beebd73
--- /dev/null
+++ b/recipes/ros-jazzy-forward-command-controller/patch/ros-jazzy-forward-command-controller.win.patch
@@ -0,0 +1,22 @@
+diff --git a/forward_command_controller/CMakeLists.txt b/forward_command_controller/CMakeLists.txt
+index bf027866d6..f7610c5f85 100644
+--- a/forward_command_controller/CMakeLists.txt
++++ b/forward_command_controller/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.16)
+-project(forward_command_controller LANGUAGES CXX)
++project(forward_command_controller)
+
+ if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
+ add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable
+@@ -7,6 +7,10 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
+ -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)
++
+ set(THIS_PACKAGE_INCLUDE_DEPENDS
+ controller_interface
+ generate_parameter_library
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..487a8e16
--- /dev/null
+++ b/recipes/ros-jazzy-forward-command-controller/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-forward-command-controller
+ version: 4.18.0
+source:
+ git: https://github.com/ros2-gbp/ros2_controllers-release.git
+ tag: release/jazzy/forward_command_controller/4.18.0-1
+ target_directory: ros-jazzy-forward-command-controller/src/work
+ patches:
+ - patch/ros-jazzy-forward-command-controller.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* 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.6.* 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..c6d8ae97
--- /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.3.9
+source:
+ git: https://github.com/ros2-gbp/generate_parameter_library-release.git
+ tag: release/jazzy/generate_parameter_library_py/0.3.9-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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* jazzy_*
+ - setuptools
+ - typeguard
+ run:
+ - jinja2
+ - python
+ - pyyaml
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* 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..4747bfbb
--- /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.3.9
+source:
+ git: https://github.com/ros2-gbp/generate_parameter_library-release.git
+ tag: release/jazzy/generate_parameter_library/0.3.9-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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* 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..7d9d728e
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..bfdc2f65
--- /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.1
+source:
+ git: https://github.com/ros2-gbp/geometric_shapes-release.git
+ tag: release/jazzy/geometric_shapes/2.3.1-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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - 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.6.* 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.6.* 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/patch/ros-jazzy-gripper-controllers.patch b/recipes/ros-jazzy-gripper-controllers/patch/ros-jazzy-gripper-controllers.patch
new file mode 100644
index 00000000..30d61283
--- /dev/null
+++ b/recipes/ros-jazzy-gripper-controllers/patch/ros-jazzy-gripper-controllers.patch
@@ -0,0 +1,16 @@
+diff --git a/gripper_controllers/CMakeLists.txt b/gripper_controllers/CMakeLists.txt
+index 4ffdc76168..05174402d0 100644
+--- a/gripper_controllers/CMakeLists.txt
++++ b/gripper_controllers/CMakeLists.txt
+@@ -1,11 +1,6 @@
+ cmake_minimum_required(VERSION 3.16)
+ project(gripper_controllers)
+
+-if(APPLE OR WIN32)
+- message(WARNING "gripper controllers are not available on OSX or Windows")
+- return()
+-endif()
+-
+ if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
+ add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable
+ -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct
diff --git a/recipes/ros-jazzy-gripper-controllers/recipe.yaml b/recipes/ros-jazzy-gripper-controllers/recipe.yaml
new file mode 100644
index 00000000..3a437680
--- /dev/null
+++ b/recipes/ros-jazzy-gripper-controllers/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-gripper-controllers
+ version: 4.18.0
+source:
+ git: https://github.com/ros2-gbp/ros2_controllers-release.git
+ tag: release/jazzy/gripper_controllers/4.18.0-1
+ target_directory: ros-jazzy-gripper-controllers/src/work
+ patches:
+ - patch/ros-jazzy-gripper-controllers.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* 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.6.* 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..ac61bf4e
--- /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.23.0
+source:
+ git: https://github.com/ros2-gbp/ros2_control-release.git
+ tag: release/jazzy/hardware_interface_testing/4.23.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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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.win.patch b/recipes/ros-jazzy-hardware-interface/patch/ros-jazzy-hardware-interface.win.patch
new file mode 100644
index 00000000..cd3251c0
--- /dev/null
+++ b/recipes/ros-jazzy-hardware-interface/patch/ros-jazzy-hardware-interface.win.patch
@@ -0,0 +1,8 @@
+diff --git a/hardware_interface/CMakeLists.txt b/hardware_interface/CMakeLists.txt
+index b4e0f6cab0..50120726bb 100644
+--- a/hardware_interface/CMakeLists.txt
++++ b/hardware_interface/CMakeLists.txt
+@@ -57,3 +57,4 @@ target_include_directories(mock_components PUBLIC
++target_link_libraries(mock_components PUBLIC hardware_interface)
+ ament_target_dependencies(mock_components PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS})
+
diff --git a/recipes/ros-jazzy-hardware-interface/recipe.yaml b/recipes/ros-jazzy-hardware-interface/recipe.yaml
new file mode 100644
index 00000000..cb17901f
--- /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.23.0
+source:
+ git: https://github.com/ros2-gbp/ros2_control-release.git
+ tag: release/jazzy/hardware_interface/4.23.0-1
+ target_directory: ros-jazzy-hardware-interface/src/work
+ patches:
+ - patch/ros-jazzy-hardware-interface.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* 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.6.* 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..5e0f70e8
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ament-lint-auto
+ - ros-jazzy-ament-lint-common
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-camera-calibration-parsers
+ - ros-jazzy-camera-info-manager
+ - ros-jazzy-image-transport
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..8dfe71f4
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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/patch/ros-jazzy-image-proc.win.patch b/recipes/ros-jazzy-image-proc/patch/ros-jazzy-image-proc.win.patch
new file mode 100644
index 00000000..57d4c3a7
--- /dev/null
+++ b/recipes/ros-jazzy-image-proc/patch/ros-jazzy-image-proc.win.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4570eb7..54bfe64 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ if(NOT CMAKE_CXX_STANDARD)
+ set(CMAKE_CXX_STANDARD 14)
+ endif()
+
++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
++
+ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ add_compile_options(-Wall -Wextra -Wpedantic)
+ endif()
diff --git a/recipes/ros-jazzy-image-proc/recipe.yaml b/recipes/ros-jazzy-image-proc/recipe.yaml
new file mode 100644
index 00000000..47c188f1
--- /dev/null
+++ b/recipes/ros-jazzy-image-proc/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-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
+ - patch/ros-jazzy-image-proc.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - 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.6.* 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.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
diff --git a/recipes/ros-jazzy-image-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/patch/ros-jazzy-image-publisher.win.patch b/recipes/ros-jazzy-image-publisher/patch/ros-jazzy-image-publisher.win.patch
new file mode 100644
index 00000000..b3bd9e07
--- /dev/null
+++ b/recipes/ros-jazzy-image-publisher/patch/ros-jazzy-image-publisher.win.patch
@@ -0,0 +1,25 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index cb41c81..88460ba 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,6 +1,8 @@
+ cmake_minimum_required(VERSION 3.5)
+ project(image_publisher)
+
++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
++
+ # Default to C++14
+ if(NOT CMAKE_CXX_STANDARD)
+ set(CMAKE_CXX_STANDARD 14)
+
+diff --git a/src/image_publisher.cpp b/src/image_publisher.cpp
+index 667e7209c..2f75459c1 100644
+--- a/src/image_publisher.cpp
++++ b/src/image_publisher.cpp
+@@ -34,3 +34,6 @@
++#ifndef _USE_MATH_DEFINES
++#define _USE_MATH_DEFINES
++#endif
+ #include
+ #include
+ #include
diff --git a/recipes/ros-jazzy-image-publisher/recipe.yaml b/recipes/ros-jazzy-image-publisher/recipe.yaml
new file mode 100644
index 00000000..dbbbcaba
--- /dev/null
+++ b/recipes/ros-jazzy-image-publisher/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-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
+ patches:
+ - patch/ros-jazzy-image-publisher.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake-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.6.* 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.6.* 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/patch/ros-jazzy-image-rotate.win.patch b/recipes/ros-jazzy-image-rotate/patch/ros-jazzy-image-rotate.win.patch
new file mode 100644
index 00000000..823e1560
--- /dev/null
+++ b/recipes/ros-jazzy-image-rotate/patch/ros-jazzy-image-rotate.win.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 49c3b94..8445833 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ if(NOT CMAKE_CXX_STANDARD)
+ set(CMAKE_CXX_STANDARD 14)
+ endif()
+
++add_compile_definitions(_USE_MATH_DEFINES)
++
+ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ add_compile_options(-Wall -Wextra -Wpedantic)
+ endif()
diff --git a/recipes/ros-jazzy-image-rotate/recipe.yaml b/recipes/ros-jazzy-image-rotate/recipe.yaml
new file mode 100644
index 00000000..58775176
--- /dev/null
+++ b/recipes/ros-jazzy-image-rotate/recipe.yaml
@@ -0,0 +1,125 @@
+# 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
+ patches:
+ - patch/ros-jazzy-image-rotate.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - 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.6.* 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.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
diff --git a/recipes/ros-jazzy-image-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/patch/ros-jazzy-image-view.win.patch b/recipes/ros-jazzy-image-view/patch/ros-jazzy-image-view.win.patch
new file mode 100644
index 00000000..0625c017
--- /dev/null
+++ b/recipes/ros-jazzy-image-view/patch/ros-jazzy-image-view.win.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 27231ef..0b0246f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,6 +5,8 @@ if(NOT CMAKE_CXX_STANDARD)
+ set(CMAKE_CXX_STANDARD 14)
+ endif()
+
++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
++
+ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ add_compile_options(-Wall -Wextra -Wpedantic)
+ endif()
diff --git a/recipes/ros-jazzy-image-view/recipe.yaml b/recipes/ros-jazzy-image-view/recipe.yaml
new file mode 100644
index 00000000..959c2863
--- /dev/null
+++ b/recipes/ros-jazzy-image-view/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-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
+ patches:
+ - patch/ros-jazzy-image-view.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake-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.6.* 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.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
diff --git a/recipes/ros-jazzy-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..4c36c918
--- /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.23.0
+source:
+ git: https://github.com/ros2-gbp/ros2_control-release.git
+ tag: release/jazzy/joint_limits/4.23.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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..b669ac37
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - setuptools
+ run:
+ - python
+ - ros-jazzy-joint-state-publisher
+ - ros-jazzy-python-qt-binding
+ - ros-jazzy-rclpy
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..9320dd4a
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - 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.6.* jazzy_*
+ - setuptools
+ run:
+ - python
+ - ros-jazzy-rclpy
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-sensor-msgs
+ - ros-jazzy-std-msgs
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-laser-filters.win.patch b/recipes/ros-jazzy-laser-filters/patch/ros-jazzy-laser-filters.win.patch
new file mode 100644
index 00000000..d68ae200
--- /dev/null
+++ b/recipes/ros-jazzy-laser-filters/patch/ros-jazzy-laser-filters.win.patch
@@ -0,0 +1,11 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3bb5bfd..b9f334b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -23,1 +23,6 @@ ament_auto_add_library(laser_scan_filters SHARED src/laser_scan_filters.cpp)
++find_package(Boost REQUIRED COMPONENTS thread)
++target_link_libraries(laser_scan_filters Boost::thread)
++set_target_properties(laser_scan_filters PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
++set_target_properties(laser_filter_chains PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS 1)
+
diff --git a/recipes/ros-jazzy-laser-filters/recipe.yaml b/recipes/ros-jazzy-laser-filters/recipe.yaml
new file mode 100644
index 00000000..76735c29
--- /dev/null
+++ b/recipes/ros-jazzy-laser-filters/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-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
+ patches:
+ - patch/ros-jazzy-laser-filters.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake-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.6.* 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.6.* 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..c4281258
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - pytest
+ - python
+ - ros-jazzy-ament-copyright
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - setuptools
+ run:
+ - python
+ - pyyaml
+ - ros-jazzy-ament-index-python
+ - ros-jazzy-rclpy
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-xacro
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..43e90731
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != 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.6.* 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.6.* 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/patch/ros-jazzy-moveit-common.win.patch b/recipes/ros-jazzy-moveit-common/patch/ros-jazzy-moveit-common.win.patch
new file mode 100644
index 00000000..e099f2d9
--- /dev/null
+++ b/recipes/ros-jazzy-moveit-common/patch/ros-jazzy-moveit-common.win.patch
@@ -0,0 +1,13 @@
+diff --git a/cmake/moveit_package.cmake b/cmake/moveit_package.cmake
+index 1fed492e2d..7d14b5b477 100644
+--- a/cmake/moveit_package.cmake
++++ b/cmake/moveit_package.cmake
+@@ -33,7 +33,7 @@ macro(moveit_package)
+ ament_package_xml()
+
+ # Enable backward_ros on every moveit package
+- find_package(backward_ros QUIET)
++ # find_package(backward_ros QUIET)
+
+ if(NOT "${CMAKE_CXX_STANDARD}")
+ set(CMAKE_CXX_STANDARD 17)
diff --git a/recipes/ros-jazzy-moveit-common/recipe.yaml b/recipes/ros-jazzy-moveit-common/recipe.yaml
new file mode 100644
index 00000000..3b54addd
--- /dev/null
+++ b/recipes/ros-jazzy-moveit-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-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
+ patches:
+ - patch/ros-jazzy-moveit-common.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-backward-ros
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-backward-ros
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..83de6fa4
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - setuptools
+ run:
+ - 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_*
+ - 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/patch/ros-jazzy-moveit-core.win.patch b/recipes/ros-jazzy-moveit-core/patch/ros-jazzy-moveit-core.win.patch
new file mode 100644
index 00000000..f4c5488b
--- /dev/null
+++ b/recipes/ros-jazzy-moveit-core/patch/ros-jazzy-moveit-core.win.patch
@@ -0,0 +1,10 @@
+diff --git a/moveit_core/online_signal_smoothing/src/acceleration_filter.cpp b/moveit_core/online_signal_smoothing/src/acceleration_filter.cpp
+index 3e6b3de049..3bafe55098 100644
+--- a/moveit_core/online_signal_smoothing/src/acceleration_filter.cpp
++++ b/moveit_core/online_signal_smoothing/src/acceleration_filter.cpp
+@@ -224,3 +224,3 @@ double jointLimitAccelerationScalingFactor(const Eigen::VectorXd& accelerations,
+- min_scaling_factor = std::min(min_scaling_factor, joint_scaling_factor);
++ min_scaling_factor = (std::min)(min_scaling_factor, joint_scaling_factor);
+ }
+ ++idx;
+ }
diff --git a/recipes/ros-jazzy-moveit-core/recipe.yaml b/recipes/ros-jazzy-moveit-core/recipe.yaml
new file mode 100644
index 00000000..7c1f344d
--- /dev/null
+++ b/recipes/ros-jazzy-moveit-core/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-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
+ - patch/ros-jazzy-moveit-core.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - assimp
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - bullet
+ - 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.6.* 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.6.* 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..f2c434e0
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* 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..efd28c64
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_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.6.* 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.6.* 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..c410119b
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - 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.6.* 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.6.* 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..a6e4d778
--- /dev/null
+++ b/recipes/ros-jazzy-moveit-planners-ompl/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-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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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-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.6.* jazzy_*
+ run:
+ - 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_*
+ - 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/patch/ros-jazzy-moveit-planners-stomp.win.patch b/recipes/ros-jazzy-moveit-planners-stomp/patch/ros-jazzy-moveit-planners-stomp.win.patch
new file mode 100644
index 00000000..42de8099
--- /dev/null
+++ b/recipes/ros-jazzy-moveit-planners-stomp/patch/ros-jazzy-moveit-planners-stomp.win.patch
@@ -0,0 +1,13 @@
+diff --git a/moveit_planners/stomp/include/stomp_moveit/cost_functions.hpp b/moveit_planners/stomp/include/stomp_moveit/cost_functions.hpp
+index b910cd3393..97350bec21 100644
+--- a/moveit_planners/stomp/include/stomp_moveit/cost_functions.hpp
++++ b/moveit_planners/stomp/include/stomp_moveit/cost_functions.hpp
+@@ -168,7 +168,7 @@ CostFn getCostFunctionFromStateValidator(const StateValidatorFn& state_validator
+ const long kernel_start = mu - static_cast(sigma) * 4;
+ const long kernel_end = mu + static_cast(sigma) * 4;
+ const long bounded_kernel_start = std::max(0l, kernel_start);
+- const long bounded_kernel_end = std::min(values.cols() - 1, kernel_end);
++ const long bounded_kernel_end = std::min(static_cast(values.cols()) - 1, kernel_end);
+ for (auto j = bounded_kernel_start; j <= bounded_kernel_end; ++j)
+ {
+ costs(j) = std::exp(-std::pow(j - mu, 2) / (2 * std::pow(sigma, 2))) / (sigma * std::sqrt(2 * M_PI));
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..55020636
--- /dev/null
+++ b/recipes/ros-jazzy-moveit-planners-stomp/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-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
+ patches:
+ - patch/ros-jazzy-moveit-planners-stomp.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* 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.6.* 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..f51a7860
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-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_*
+ - 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..7537675a
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-moveit-simple-controller-manager
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..a85083c7
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* 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..0b141db9
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-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_*
+ - 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..1aace845
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* 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..1d4edbcd
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-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.6.* 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..d2755eaf
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* 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..3b2470ce
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - 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.6.* 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.6.* 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..72f27485
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-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_*
+ - 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..2bca4a22
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-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_*
+ - 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..a8cbd5a6
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-xacro
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-moveit-ros-benchmarks.win.patch b/recipes/ros-jazzy-moveit-ros-benchmarks/patch/ros-jazzy-moveit-ros-benchmarks.win.patch
new file mode 100644
index 00000000..ac75eeb8
--- /dev/null
+++ b/recipes/ros-jazzy-moveit-ros-benchmarks/patch/ros-jazzy-moveit-ros-benchmarks.win.patch
@@ -0,0 +1,12 @@
+diff --git a/moveit_ros/benchmarks/CMakeLists.txt b/moveit_ros/benchmarks/CMakeLists.txt
+index 58538a70b9..7b60f0a220 100644
+--- a/moveit_ros/benchmarks/CMakeLists.txt
++++ b/moveit_ros/benchmarks/CMakeLists.txt
+@@ -34,6 +34,7 @@ set_target_properties(moveit_ros_benchmarks
+ if(WIN32)
+ set(EXTRA_LIB ws2_32.lib)
+ endif()
++target_compile_features(moveit_ros_benchmarks PRIVATE cxx_std_20)
+ ament_target_dependencies(moveit_ros_benchmarks ${THIS_PACKAGE_INCLUDE_DEPENDS})
+ target_link_libraries(moveit_ros_benchmarks ${EXTRA_LIB})
+
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..a794339f
--- /dev/null
+++ b/recipes/ros-jazzy-moveit-ros-benchmarks/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-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
+ patches:
+ - patch/ros-jazzy-moveit-ros-benchmarks.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - 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.6.* 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.6.* 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..b5370765
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* 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..2ab2f6c7
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* 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..f887de4d
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* 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..9b2e4d0d
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* 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..b8725d55
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..8a1cdb8b
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ 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.6.* 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.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-moveit-ros-warehouse.win.patch b/recipes/ros-jazzy-moveit-ros-warehouse/patch/ros-jazzy-moveit-ros-warehouse.win.patch
new file mode 100644
index 00000000..d515f792
--- /dev/null
+++ b/recipes/ros-jazzy-moveit-ros-warehouse/patch/ros-jazzy-moveit-ros-warehouse.win.patch
@@ -0,0 +1,13 @@
+diff --git a/moveit_ros/warehouse/CMakeLists.txt b/moveit_ros/warehouse/CMakeLists.txt
+index 825f6b11c7..e68e1d866b 100644
+--- a/moveit_ros/warehouse/CMakeLists.txt
++++ b/moveit_ros/warehouse/CMakeLists.txt
+@@ -56,7 +56,7 @@ target_link_libraries(moveit_warehouse_broadcast moveit_warehouse)
+ add_executable(moveit_save_to_warehouse src/save_to_warehouse.cpp)
+ ament_target_dependencies(moveit_save_to_warehouse
+ ${THIS_PACKAGE_INCLUDE_DEPENDS})
+-target_link_libraries(moveit_save_to_warehouse moveit_warehouse fmt)
++target_link_libraries(moveit_save_to_warehouse moveit_warehouse fmt::fmt)
+
+ add_executable(moveit_warehouse_import_from_text src/import_from_text.cpp)
+ ament_target_dependencies(moveit_warehouse_import_from_text
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..26bd5106
--- /dev/null
+++ b/recipes/ros-jazzy-moveit-ros-warehouse/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-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
+ patches:
+ - patch/ros-jazzy-moveit-ros-warehouse.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - 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.6.* 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.6.* 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..ec281bbc
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-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_*
+ - 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..a9780987
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
diff --git a/recipes/ros-jazzy-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..eeae1ceb
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ 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.6.* jazzy_*
+ - if: linux
+ then:
+ - libgl-devel
+ - libopengl-devel
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
+ run:
+ - python
+ - qt-main
+ - ros-jazzy-ament-index-cpp
+ - ros-jazzy-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_*
+ - 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..fed0e99f
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
diff --git a/recipes/ros-jazzy-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..e3bb676f
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
diff --git a/recipes/ros-jazzy-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..ee62e96b
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
diff --git a/recipes/ros-jazzy-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..c2607346
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-moveit-simple-controller-manager.win.patch b/recipes/ros-jazzy-moveit-simple-controller-manager/patch/ros-jazzy-moveit-simple-controller-manager.win.patch
new file mode 100644
index 00000000..4b5abffd
--- /dev/null
+++ b/recipes/ros-jazzy-moveit-simple-controller-manager/patch/ros-jazzy-moveit-simple-controller-manager.win.patch
@@ -0,0 +1,13 @@
+diff --git a/include/moveit_simple_controller_manager/action_based_controller_handle.hpp b/include/moveit_simple_controller_manager/action_based_controller_handle.hpp
+index cce6cc991a..7087a88949 100644
+--- a/include/moveit_simple_controller_manager/action_based_controller_handle.hpp
++++ b/include/moveit_simple_controller_manager/action_based_controller_handle.hpp
+@@ -145,7 +145,7 @@ class ActionBasedControllerHandle : public ActionBasedControllerHandleBase
+ do
+ {
+ status = result_future.wait_for(50ms);
+- if ((status == std::future_status::timeout) and ((node_->now() - start) > timeout))
++ if ((status == std::future_status::timeout) && ((node_->now() - start) > timeout))
+ {
+ RCLCPP_WARN(logger_, "waitForExecution timed out");
+ return false;
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..75055c5f
--- /dev/null
+++ b/recipes/ros-jazzy-moveit-simple-controller-manager/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-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
+ patches:
+ - patch/ros-jazzy-moveit-simple-controller-manager.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* 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.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
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..c036ec6e
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - 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.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
diff --git a/recipes/ros-jazzy-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..2a850055
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - 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.6.* 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.6.* 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..be725913
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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/patch/ros-jazzy-nav2-amcl.win.patch b/recipes/ros-jazzy-nav2-amcl/patch/ros-jazzy-nav2-amcl.win.patch
new file mode 100644
index 00000000..9d736676
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-amcl/patch/ros-jazzy-nav2-amcl.win.patch
@@ -0,0 +1,15 @@
+diff --git a/nav2_amcl/src/pf/CMakeLists.txt b/nav2_amcl/src/pf/CMakeLists.txt
+index 3b4b2fa5ca1..8dc2ccb5719 100644
+--- a/nav2_amcl/src/pf/CMakeLists.txt
++++ b/nav2_amcl/src/pf/CMakeLists.txt
+@@ -15,7 +15,9 @@ target_include_directories(pf_lib PRIVATE ../include)
+ if(HAVE_DRAND48)
+ target_compile_definitions(pf_lib PRIVATE "HAVE_DRAND48")
+ endif()
+-target_link_libraries(pf_lib m)
++if(NOT WIN32)
++ target_link_libraries(pf_lib m)
++endif()
+
+ install(TARGETS
+ pf_lib
diff --git a/recipes/ros-jazzy-nav2-amcl/recipe.yaml b/recipes/ros-jazzy-nav2-amcl/recipe.yaml
new file mode 100644
index 00000000..ba29d094
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-amcl/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-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
+ patches:
+ - patch/ros-jazzy-nav2-amcl.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* 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.6.* 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/patch/ros-jazzy-nav2-behavior-tree.win.patch b/recipes/ros-jazzy-nav2-behavior-tree/patch/ros-jazzy-nav2-behavior-tree.win.patch
new file mode 100644
index 00000000..a861167d
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-behavior-tree/patch/ros-jazzy-nav2-behavior-tree.win.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9de075152..ade316733 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -20,8 +20,6 @@ find_package(nav2_util REQUIRED)
+
+ nav2_package()
+
+-add_compile_options(-Wno-shadow) # Delete after https://github.com/BehaviorTree/BehaviorTree.CPP/issues/811 is released
+-
+ include_directories(
+ include
+ )
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..554a6563
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-behavior-tree/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-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
+ patches:
+ - patch/ros-jazzy-nav2-behavior-tree.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* 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.6.* 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..9eeb7dd6
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..719d8688
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..c1a839e5
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..7e824506
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - 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.6.* 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.6.* 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/patch/ros-jazzy-nav2-constrained-smoother.win.patch b/recipes/ros-jazzy-nav2-constrained-smoother/patch/ros-jazzy-nav2-constrained-smoother.win.patch
new file mode 100644
index 00000000..85328bdb
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-constrained-smoother/patch/ros-jazzy-nav2-constrained-smoother.win.patch
@@ -0,0 +1,78 @@
+diff --git a/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother.hpp b/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother.hpp
+index a0d5dfa115e..af9801d8995 100644
+--- a/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother.hpp
++++ b/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother.hpp
+@@ -142,9 +142,9 @@ class Smoother
+ std::vector & optimized)
+ {
+ // Create costmap grid
+- costmap_grid_ = std::make_shared>(
++ costmap_grid_ = std::make_shared>(
+ costmap->getCharMap(), 0, costmap->getSizeInCellsY(), 0, costmap->getSizeInCellsX());
+- auto costmap_interpolator = std::make_shared>>(
++ auto costmap_interpolator = std::make_shared>>(
+ *costmap_grid_);
+
+ // Create residual blocks
+@@ -394,7 +394,7 @@ class Smoother
+
+ bool debug_;
+ ceres::Solver::Options options_;
+- std::shared_ptr> costmap_grid_;
++ std::shared_ptr> costmap_grid_;
+ };
+
+ } // namespace nav2_constrained_smoother
+diff --git a/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother_cost_function.hpp b/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother_cost_function.hpp
+index 7253119721c..2cdd691cfab 100644
+--- a/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother_cost_function.hpp
++++ b/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother_cost_function.hpp
+@@ -57,7 +57,7 @@ class SmootherCostFunction
+ double next_to_last_length_ratio,
+ bool reversing,
+ const nav2_costmap_2d::Costmap2D * costmap,
+- const std::shared_ptr>> & costmap_interpolator,
++ const std::shared_ptr>> & costmap_interpolator,
+ const SmootherParams & params,
+ double costmap_weight)
+ : original_pos_(original_pos),
+@@ -244,7 +244,7 @@ class SmootherCostFunction
+ double costmap_weight_;
+ Eigen::Vector2d costmap_origin_;
+ double costmap_resolution_;
+- std::shared_ptr>> costmap_interpolator_;
++ std::shared_ptr>> costmap_interpolator_;
+ };
+
+ } // namespace nav2_constrained_smoother
+diff --git a/nav2_constrained_smoother/test/test_smoother_cost_function.cpp b/nav2_constrained_smoother/test/test_smoother_cost_function.cpp
+index 104b949c4be..79c9b064a16 100644
+--- a/nav2_constrained_smoother/test/test_smoother_cost_function.cpp
++++ b/nav2_constrained_smoother/test/test_smoother_cost_function.cpp
+@@ -33,7 +33,7 @@ class TestableSmootherCostFunction : nav2_constrained_smoother::SmootherCostFunc
+ double next_to_last_length_ratio,
+ bool reversing,
+ const nav2_costmap_2d::Costmap2D * costmap,
+- const std::shared_ptr>> & costmap_interpolator,
++ const std::shared_ptr>> & costmap_interpolator,
+ const nav2_constrained_smoother::SmootherParams & params,
+ double costmap_weight)
+ : SmootherCostFunction(
+@@ -68,7 +68,7 @@ TEST_F(Test, testingCurvatureResidual)
+ nav2_costmap_2d::Costmap2D costmap;
+ TestableSmootherCostFunction fn(
+ Eigen::Vector2d(1.0, 0.0), 1.0, false,
+- &costmap, std::shared_ptr>>(),
++ &costmap, std::shared_ptr>>(),
+ nav2_constrained_smoother::SmootherParams(), 0.0
+ );
+
+@@ -81,7 +81,7 @@ TEST_F(Test, testingCurvatureResidual)
+ params_no_min_turning_radius.max_curvature = 1.0f / 0.0;
+ TestableSmootherCostFunction fn_no_min_turning_radius(
+ Eigen::Vector2d(1.0, 0.0), 1.0, false,
+- &costmap, std::shared_ptr>>(),
++ &costmap, std::shared_ptr>>(),
+ params_no_min_turning_radius, 0.0
+ );
+ EXPECT_EQ(fn_no_min_turning_radius.getCurvatureResidual(1.0, pt, pt_other, pt_other), 0.0);
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..ac283807
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-constrained-smoother/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-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
+ patches:
+ - patch/ros-jazzy-nav2-constrained-smoother.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - ${{ '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.6.* 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.6.* 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..8f53b598
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..aa3c856e
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..41536be8
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..155b92b7
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - 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.6.* 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.6.* 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..49500a5b
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..3cd85ec1
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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/patch/ros-jazzy-nav2-map-server.win.patch b/recipes/ros-jazzy-nav2-map-server/patch/ros-jazzy-nav2-map-server.win.patch
new file mode 100644
index 00000000..c6e1b2b5
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-map-server/patch/ros-jazzy-nav2-map-server.win.patch
@@ -0,0 +1,13 @@
+diff --git a/src/map_io.cpp b/src/map_io.cpp
+index b26b09be38..251985f487 100644
+--- a/src/map_io.cpp
++++ b/src/map_io.cpp
+@@ -86,7 +86,7 @@ char * dirname(char * path)
+ /* This assignment is ill-designed but the XPG specs require to
+ return a string containing "." in any case no directory part is
+ found and so a static and constant string is required. */
+- path = reinterpret_cast(dot);
++ path = (char *)dot;
+ }
+
+ return path;
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..02d65a5c
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-map-server/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-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
+ patches:
+ - patch/ros-jazzy-nav2-map-server.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - 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.6.* 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.6.* 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..4da6b83d
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-mppi-controller/recipe.yaml
@@ -0,0 +1,125 @@
+# 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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ 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
+ - 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.6.* jazzy_*
+ - xsimd
+ - xtensor ==0.24.7
+ run:
+ - benchmark
+ - 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
+ - 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/patch/ros-jazzy-nav2-msgs.win.patch b/recipes/ros-jazzy-nav2-msgs/patch/ros-jazzy-nav2-msgs.win.patch
new file mode 100644
index 00000000..6be22fc7
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-msgs/patch/ros-jazzy-nav2-msgs.win.patch
@@ -0,0 +1,17 @@
+diff --git a/nav2_msgs/CMakeLists.txt b/nav2_msgs/CMakeLists.txt
+index a9f93b5ecbc..1e546801f52 100644
+--- a/nav2_msgs/CMakeLists.txt
++++ b/nav2_msgs/CMakeLists.txt
+@@ -13,8 +13,10 @@ find_package(action_msgs REQUIRED)
+
+ nav2_package()
+
+-# TODO(jwallace42): This is a work around for https://github.com/ros2/rosidl_typesupport_fastrtps/issues/28
+-add_compile_options(-Wno-error=deprecated)
++if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
++ # TODO(jwallace42): This is a work around for https://github.com/ros2/rosidl_typesupport_fastrtps/issues/28
++ add_compile_options(-Wno-error=deprecated)
++endif()
+
+ rosidl_generate_interfaces(${PROJECT_NAME}
+ "msg/CollisionMonitorState.msg"
diff --git a/recipes/ros-jazzy-nav2-msgs/recipe.yaml b/recipes/ros-jazzy-nav2-msgs/recipe.yaml
new file mode 100644
index 00000000..33a4e04c
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-msgs/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-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
+ patches:
+ - patch/ros-jazzy-nav2-msgs.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-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.6.* 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.6.* 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..904fac4a
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..b34ef01e
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..af0160e3
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..62868d57
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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/patch/ros-jazzy-nav2-rviz-plugins.win.patch b/recipes/ros-jazzy-nav2-rviz-plugins/patch/ros-jazzy-nav2-rviz-plugins.win.patch
new file mode 100644
index 00000000..7f5bbc4a
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-rviz-plugins/patch/ros-jazzy-nav2-rviz-plugins.win.patch
@@ -0,0 +1,34 @@
+diff --git a/nav2_rviz_plugins/include/nav2_rviz_plugins/goal_tool.hpp b/nav2_rviz_plugins/include/nav2_rviz_plugins/goal_tool.hpp
+index 8451fe5294..0d94b8c7f0 100644
+--- a/nav2_rviz_plugins/include/nav2_rviz_plugins/goal_tool.hpp
++++ b/nav2_rviz_plugins/include/nav2_rviz_plugins/goal_tool.hpp
+@@ -20,7 +20,6 @@
+ #include
+
+ #include "rviz_default_plugins/tools/pose/pose_tool.hpp"
+-#include "rviz_default_plugins/visibility_control.hpp"
+
+ namespace rviz_common
+ {
+@@ -36,7 +35,7 @@ class StringProperty;
+ namespace nav2_rviz_plugins
+ {
+
+-class RVIZ_DEFAULT_PLUGINS_PUBLIC GoalTool : public rviz_default_plugins::tools::PoseTool
++class GoalTool : public rviz_default_plugins::tools::PoseTool
+ {
+ Q_OBJECT
+
+diff --git a/nav2_rviz_plugins/include/nav2_rviz_plugins/costmap_cost_tool.hpp b/nav2_rviz_plugins/include/nav2_rviz_plugins/costmap_cost_tool.hpp
+index a14a9f98b5..6ad61996ac 100644
+--- a/nav2_rviz_plugins/include/nav2_rviz_plugins/costmap_cost_tool.hpp
++++ b/nav2_rviz_plugins/include/nav2_rviz_plugins/costmap_cost_tool.hpp
+@@ -20,7 +20,8 @@
+ #include
+ #include
+ #include
+-#include
++#include
++#include
+ #include
+
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..d5b2b06f
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-rviz-plugins/recipe.yaml
@@ -0,0 +1,142 @@
+# 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
+ - patch/ros-jazzy-nav2-rviz-plugins.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ - if: build_platform != target_platform
+ then:
+ - qt-main
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - 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.6.* jazzy_*
+ - if: linux
+ then:
+ - libgl-devel
+ - libopengl-devel
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
+ run:
+ - python
+ - qt-main
+ - ros-jazzy-geometry-msgs
+ - ros-jazzy-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_*
+ - 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..b6efc8a3
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - pytest
+ - python
+ - ros-jazzy-ament-copyright
+ - ros-jazzy-ament-flake8
+ - ros-jazzy-ament-pep257
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - setuptools
+ run:
+ - python
+ - ros-jazzy-action-msgs
+ - ros-jazzy-geometry-msgs
+ - ros-jazzy-lifecycle-msgs
+ - ros-jazzy-nav2-msgs
+ - ros-jazzy-rclpy
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-nav2-smac-planner.win.patch b/recipes/ros-jazzy-nav2-smac-planner/patch/ros-jazzy-nav2-smac-planner.win.patch
new file mode 100644
index 00000000..7adfbd8c
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-smac-planner/patch/ros-jazzy-nav2-smac-planner.win.patch
@@ -0,0 +1,35 @@
+diff --git a/nav2_smac_planner/CMakeLists.txt b/nav2_smac_planner/CMakeLists.txt
+index d9da9fd147..64c744c311 100644
+--- a/nav2_smac_planner/CMakeLists.txt
++++ b/nav2_smac_planner/CMakeLists.txt
+@@ -23,6 +23,9 @@ find_package(eigen3_cmake_module REQUIRED)
+ find_package(Eigen3 REQUIRED)
+ find_package(angles REQUIRED)
+ find_package(ompl REQUIRED)
++find_package(ode REQUIRED)
++list(REMOVE_ITEM OMPL_LIBRARIES "ode_double")
++list(APPEND OMPL_LIBRARIES "ODE::ODE")
+
+ if(NOT CMAKE_CXX_STANDARD)
+ set(CMAKE_CXX_STANDARD 17)
+
+diff --git a/nav2_smac_planner/include/nav2_smac_planner/a_star.hpp b/nav2_smac_planner/include/nav2_smac_planner/a_star.hpp
+index 8b127960cc..a5dbbc262e 100644
+--- a/nav2_smac_planner/include/nav2_smac_planner/a_star.hpp
++++ b/nav2_smac_planner/include/nav2_smac_planner/a_star.hpp
+@@ -26,7 +26,6 @@
+ #include "nav2_costmap_2d/costmap_2d.hpp"
+ #include "nav2_core/planner_exceptions.hpp"
+
+-#include "nav2_smac_planner/thirdparty/robin_hood.h"
+ #include "nav2_smac_planner/analytic_expansion.hpp"
+ #include "nav2_smac_planner/node_2d.hpp"
+ #include "nav2_smac_planner/node_hybrid.hpp"
+@@ -47,7 +46,7 @@ class AStarAlgorithm
+ {
+ public:
+ typedef NodeT * NodePtr;
+- typedef robin_hood::unordered_node_map Graph;
++ typedef std::unordered_map Graph;
+ typedef std::vector NodeVector;
+ typedef std::pair> NodeElement;
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..8e83940f
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-smac-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-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
+ patches:
+ - patch/ros-jazzy-nav2-smac-planner.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ - ${{ '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.6.* 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.6.* 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..4645119f
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..48c103ac
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..94add3ac
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* 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..8f602d36
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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..c5e978a5
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-rclcpp
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-nav2-waypoint-follower.win.patch b/recipes/ros-jazzy-nav2-waypoint-follower/patch/ros-jazzy-nav2-waypoint-follower.win.patch
new file mode 100644
index 00000000..d5922032
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-waypoint-follower/patch/ros-jazzy-nav2-waypoint-follower.win.patch
@@ -0,0 +1,13 @@
+diff --git a/nav2_waypoint_follower/plugins/photo_at_waypoint.cpp b/nav2_waypoint_follower/plugins/photo_at_waypoint.cpp
+index ff878f4d39..77ff7f20aa 100644
+--- a/nav2_waypoint_follower/plugins/photo_at_waypoint.cpp
++++ b/nav2_waypoint_follower/plugins/photo_at_waypoint.cpp
+@@ -119,7 +119,7 @@ bool PhotoAtWaypoint::processAtWaypoint(
+ std::lock_guard guard(global_mutex_);
+ cv::Mat curr_frame_mat;
+ deepCopyMsg2Mat(curr_frame_msg_, curr_frame_mat);
+- cv::imwrite(full_path_image_path.c_str(), curr_frame_mat);
++ cv::imwrite(full_path_image_path.string().c_str(), curr_frame_mat);
+ RCLCPP_INFO(
+ logger_,
+ "Photo has been taken successfully at waypoint %i", curr_waypoint_index);
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..ab38dc48
--- /dev/null
+++ b/recipes/ros-jazzy-nav2-waypoint-follower/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-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
+ patches:
+ - patch/ros-jazzy-nav2-waypoint-follower.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* 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.6.* 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..34a01e82
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-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_*
+ - 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..d5e48458
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - 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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-builtin-interfaces
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rosidl-default-runtime
+ - ros-jazzy-std-msgs
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..82c9f12f
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_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.6.* 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.6.* 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..f2fa8697
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - 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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-geometry-msgs
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rosidl-default-runtime
+ - ros-jazzy-std-msgs
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..09d0bd5f
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* jazzy_*
+ run:
+ - eigen
+ - flann
+ - libboost-devel
+ - libboost-python-devel
+ - python
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-opennav-docking-bt.win.patch b/recipes/ros-jazzy-opennav-docking-bt/patch/ros-jazzy-opennav-docking-bt.win.patch
new file mode 100644
index 00000000..e2dfe927
--- /dev/null
+++ b/recipes/ros-jazzy-opennav-docking-bt/patch/ros-jazzy-opennav-docking-bt.win.patch
@@ -0,0 +1,16 @@
+diff --git a/CMakeLists.txt b/opennav_docking_bt.txt
+index fe81417..8047e34 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -16,7 +16,10 @@ find_package(behaviortree_cpp REQUIRED)
+
+ # potentially replace with nav2_common, nav2_package()
+ set(CMAKE_CXX_STANDARD 17)
+-add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wdeprecated -fPIC -Wshadow -Wnull-dereference)
++if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
++ add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wdeprecated -fPIC -Wshadow -Wnull-dereference)
++endif()
++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+ include_directories(
+ include
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..871cb854
--- /dev/null
+++ b/recipes/ros-jazzy-opennav-docking-bt/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-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
+ patches:
+ - patch/ros-jazzy-opennav-docking-bt.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* 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.6.* 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..f4059e8b
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* 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.6.* 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/patch/ros-jazzy-opennav-docking.win.patch b/recipes/ros-jazzy-opennav-docking/patch/ros-jazzy-opennav-docking.win.patch
new file mode 100644
index 00000000..7fbaa467
--- /dev/null
+++ b/recipes/ros-jazzy-opennav-docking/patch/ros-jazzy-opennav-docking.win.patch
@@ -0,0 +1,17 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 27505c7..ed660c0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -26,7 +26,11 @@ find_package(opennav_docking_core REQUIRED)
+
+ # potentially replace with nav2_common, nav2_package()
+ set(CMAKE_CXX_STANDARD 17)
+-add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wdeprecated -fPIC -Wshadow -Wnull-dereference)
++
++if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
++ add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wdeprecated -fPIC -Wshadow -Wnull-dereference)
++endif()
++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+ include_directories(
+ include
diff --git a/recipes/ros-jazzy-opennav-docking/recipe.yaml b/recipes/ros-jazzy-opennav-docking/recipe.yaml
new file mode 100644
index 00000000..1378527d
--- /dev/null
+++ b/recipes/ros-jazzy-opennav-docking/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-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
+ patches:
+ - patch/ros-jazzy-opennav-docking.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* 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.6.* 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..8201926c
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ament-lint-auto
+ - ros-jazzy-ament-lint-common
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..fc0180ce
--- /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.3.9
+source:
+ git: https://github.com/ros2-gbp/generate_parameter_library-release.git
+ tag: release/jazzy/parameter_traits/0.3.9-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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* 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..1631caa1
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* 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.6.* 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..34ba4236
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ament-lint-common
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rosidl-default-generators
+ - ros-jazzy-sensor-msgs
+ - ros-jazzy-std-msgs
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rosidl-default-runtime
+ - ros-jazzy-sensor-msgs
+ - ros-jazzy-std-msgs
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-pcl-ros.win.patch b/recipes/ros-jazzy-pcl-ros/patch/ros-jazzy-pcl-ros.win.patch
new file mode 100644
index 00000000..9cf614f3
--- /dev/null
+++ b/recipes/ros-jazzy-pcl-ros/patch/ros-jazzy-pcl-ros.win.patch
@@ -0,0 +1,12 @@
+diff --git a/pcl_ros/CMakeLists.txt b/pcl_ros/CMakeLists.txt
+index b45e67f5..c3562dc8 100644
+--- a/pcl_ros/CMakeLists.txt
++++ b/pcl_ros/CMakeLists.txt
+@@ -7,6 +7,7 @@ endif()
+ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ add_compile_options(-Wall -Wextra -Wpedantic -fPIC)
+ endif()
++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+ ## Find system dependencies
+ find_package(Eigen3 REQUIRED)
diff --git a/recipes/ros-jazzy-pcl-ros/recipe.yaml b/recipes/ros-jazzy-pcl-ros/recipe.yaml
new file mode 100644
index 00000000..fd676b00
--- /dev/null
+++ b/recipes/ros-jazzy-pcl-ros/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-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
+ patches:
+ - patch/ros-jazzy-pcl-ros.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - 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.6.* 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.6.* 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-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..4e66df45
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-pcl-conversions
+ - ros-jazzy-pcl-msgs
+ - ros-jazzy-pcl-ros
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..470293b7
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-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_*
+ - 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..79a96c80
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - 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.6.* 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.6.* 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/patch/ros-jazzy-pilz-industrial-motion-planner.win.patch b/recipes/ros-jazzy-pilz-industrial-motion-planner/patch/ros-jazzy-pilz-industrial-motion-planner.win.patch
new file mode 100644
index 00000000..791a162e
--- /dev/null
+++ b/recipes/ros-jazzy-pilz-industrial-motion-planner/patch/ros-jazzy-pilz-industrial-motion-planner.win.patch
@@ -0,0 +1,36 @@
+diff --git a/moveit_planners/pilz_industrial_motion_planner/include/joint_limits_copy/joint_limits_rosparam.hpp b/moveit_planners/pilz_industrial_motion_planner/include/joint_limits_copy/joint_limits_rosparam.hpp
+index 89bd99f1da..b135d1c3d3 100644
+--- a/moveit_planners/pilz_industrial_motion_planner/include/joint_limits_copy/joint_limits_rosparam.hpp
++++ b/moveit_planners/pilz_industrial_motion_planner/include/joint_limits_copy/joint_limits_rosparam.hpp
+@@ -32,7 +32,7 @@ namespace
+ template
+ void declareParameterTemplate(const rclcpp::Node::SharedPtr& node, const std::string& name, T default_value)
+ {
+- if (not node->has_parameter(name))
++ if (!node->has_parameter(name))
+ {
+ node->declare_parameter(name, default_value);
+ }
+
+diff --git a/moveit_planners/pilz_industrial_motion_planner/src/trajectory_functions.cpp b/moveit_planners/pilz_industrial_motion_planner/src/trajectory_functions.cpp
+index c1fccdf3bd..01a7f11b59 100644
+--- a/moveit_planners/pilz_industrial_motion_planner/src/trajectory_functions.cpp
++++ b/moveit_planners/pilz_industrial_motion_planner/src/trajectory_functions.cpp
+@@ -117,7 +117,7 @@ bool pilz_industrial_motion_planner::computePoseIK(const planning_scene::Plannin
+ const double timeout)
+ {
+ Eigen::Isometry3d pose_eigen;
+- tf2::convert(pose, pose_eigen);
++ tf2::fromMsg(pose, pose_eigen);
+ return computePoseIK(scene, group_name, link_name, pose_eigen, frame_id, seed, solution, check_self_collision,
+ timeout);
+ }
+@@ -591,7 +591,7 @@ bool pilz_industrial_motion_planner::isStateColliding(const planning_scene::Plan
+ void normalizeQuaternion(geometry_msgs::msg::Quaternion& quat)
+ {
+ tf2::Quaternion q;
+- tf2::convert(quat, q);
++ tf2::fromMsg(quat, q);
+ quat = tf2::toMsg(q.normalized());
+ }
+
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..b149ae76
--- /dev/null
+++ b/recipes/ros-jazzy-pilz-industrial-motion-planner/recipe.yaml
@@ -0,0 +1,133 @@
+# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json
+
+package:
+ name: ros-jazzy-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
+ - patch/ros-jazzy-pilz-industrial-motion-planner.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - 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.6.* 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.6.* 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/patch/ros-jazzy-position-controllers.win.patch b/recipes/ros-jazzy-position-controllers/patch/ros-jazzy-position-controllers.win.patch
new file mode 100644
index 00000000..535e5a7f
--- /dev/null
+++ b/recipes/ros-jazzy-position-controllers/patch/ros-jazzy-position-controllers.win.patch
@@ -0,0 +1,22 @@
+diff --git a/position_controllers/CMakeLists.txt b/position_controllers/CMakeLists.txt
+index e76b76555e..71ffd0eeba 100644
+--- a/position_controllers/CMakeLists.txt
++++ b/position_controllers/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ cmake_minimum_required(VERSION 3.16)
+-project(position_controllers LANGUAGES CXX)
++project(position_controllers)
+
+ if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
+ add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable
+@@ -7,6 +7,10 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
+ -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)
++
+ set(THIS_PACKAGE_INCLUDE_DEPENDS
+ forward_command_controller
+ pluginlib
diff --git a/recipes/ros-jazzy-position-controllers/recipe.yaml b/recipes/ros-jazzy-position-controllers/recipe.yaml
new file mode 100644
index 00000000..8cc469b1
--- /dev/null
+++ b/recipes/ros-jazzy-position-controllers/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-position-controllers
+ version: 4.18.0
+source:
+ git: https://github.com/ros2-gbp/ros2_controllers-release.git
+ tag: release/jazzy/position_controllers/4.18.0-1
+ target_directory: ros-jazzy-position-controllers/src/work
+ patches:
+ - patch/ros-jazzy-position-controllers.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* 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.6.* 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..15fa00c5
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ 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.6.* jazzy_*
+ - pybind11
+ run:
+ - python
+ - python-orocos-kdl
+ - ros-jazzy-orocos-kdl-vendor
+ - ros-jazzy-pybind11-vendor
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..ac2352e8
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* jazzy_*
+ run:
+ - libboost
+ - libboost-devel
+ - python
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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.win.patch b/recipes/ros-jazzy-realtime-tools/patch/ros-jazzy-realtime-tools.win.patch
new file mode 100644
index 00000000..8c47df7a
--- /dev/null
+++ b/recipes/ros-jazzy-realtime-tools/patch/ros-jazzy-realtime-tools.win.patch
@@ -0,0 +1,29 @@
+diff --git a/include/realtime_tools/realtime_helpers.hpp b/include/realtime_tools/realtime_helpers.hpp
+index ef486a49..6fea1fa2 100644
+--- a/include/realtime_tools/realtime_helpers.hpp
++++ b/include/realtime_tools/realtime_helpers.hpp
+@@ -38,5 +38,8 @@
+-#include
+-using NATIVE_THREAD_HANDLE = HANDLE;
++// Here we directly use void* instead of including windows.h
++// and using HANDLE macro to avoid polluting all the downstream
++// compilation units that include the public header realtime_helpers.hpp
++// with problematic macros like MIN, MAX or ERROR
++using NATIVE_THREAD_HANDLE = void*;
+ #else
+ using NATIVE_THREAD_HANDLE = pthread_t;
+ #endif
+
+
+diff --git a/src/realtime_helpers.cpp b/src/realtime_helpers.cpp
+index e55894ce..bbabf0bc 100644
+--- a/src/realtime_helpers.cpp
++++ b/src/realtime_helpers.cpp
+@@ -31,4 +31,6 @@
+-#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
++#ifdef _WIN32
++#include
++#else
+ #include
+ #include
+ #include
diff --git a/recipes/ros-jazzy-realtime-tools/recipe.yaml b/recipes/ros-jazzy-realtime-tools/recipe.yaml
new file mode 100644
index 00000000..8b7a5340
--- /dev/null
+++ b/recipes/ros-jazzy-realtime-tools/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-realtime-tools
+ version: 3.1.0
+source:
+ git: https://github.com/ros2-gbp/realtime_tools-release.git
+ tag: release/jazzy/realtime_tools/3.1.0-1
+ target_directory: ros-jazzy-realtime-tools/src/work
+ patches:
+ - patch/ros-jazzy-realtime-tools.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-rclcpp
+ - ros-jazzy-rclcpp-action
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-robot-localization.win.patch b/recipes/ros-jazzy-robot-localization/patch/ros-jazzy-robot-localization.win.patch
new file mode 100644
index 00000000..478e6e5e
--- /dev/null
+++ b/recipes/ros-jazzy-robot-localization/patch/ros-jazzy-robot-localization.win.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0da52adc..35b5b185 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -100,6 +100,8 @@ target_link_libraries(${library_name} PRIVATE
+ ${GeographicLib_LIBRARIES}
+ yaml-cpp::yaml-cpp
+ )
++target_compile_definitions(${library_name} PRIVATE _USE_MATH_DEFINES)
++set_target_properties(${library_name} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+ add_executable(
+ ekf_node
diff --git a/recipes/ros-jazzy-robot-localization/recipe.yaml b/recipes/ros-jazzy-robot-localization/recipe.yaml
new file mode 100644
index 00000000..765cb72b
--- /dev/null
+++ b/recipes/ros-jazzy-robot-localization/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-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
+ patches:
+ - patch/ros-jazzy-robot-localization.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - 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.6.* 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.6.* 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..e481251d
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..26f2cd49
--- /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: 3
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake-core
+ - ros-jazzy-ament-package
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..2fc1f0b3
--- /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.23.0
+source:
+ git: https://github.com/ros2-gbp/ros2_control-release.git
+ tag: release/jazzy/ros2_control_test_assets/4.23.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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* 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/patch/ros-jazzy-rsl.win.patch b/recipes/ros-jazzy-rsl/patch/ros-jazzy-rsl.win.patch
new file mode 100644
index 00000000..80c72407
--- /dev/null
+++ b/recipes/ros-jazzy-rsl/patch/ros-jazzy-rsl.win.patch
@@ -0,0 +1,26 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6d47b08..1b0c4f0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -30,6 +37,21 @@ target_link_libraries(rsl PUBLIC
+ tl_expected::tl_expected
+ )
+
++# There is no explicit export of symbols in the library either via
++# hand-written ***_export.h headers or generate_export_header CMake macro,
++# as the header-only functions in this library are quite limited in number,
++# it is perfectly ok to export all of them (as done in *nix) with the
++# WINDOWS_EXPORT_ALL_SYMBOLS property
++if(MSVC)
++ set_target_properties(rsl PROPERTIES
++ WINDOWS_EXPORT_ALL_SYMBOLS TRUE
++ )
++ # On Windows, also ensure that all .dll libraries are placed in the
++ # same build directory so they can be found by the loader (there is
++ # no rpath on Windows)
++ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}")
++endif()
++
+ add_subdirectory(docs)
+
+ option(RSL_BUILD_TESTING "Build tests" OFF)
diff --git a/recipes/ros-jazzy-rsl/recipe.yaml b/recipes/ros-jazzy-rsl/recipe.yaml
new file mode 100644
index 00000000..b6d8da82
--- /dev/null
+++ b/recipes/ros-jazzy-rsl/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-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
+ - patch/ros-jazzy-rsl.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ - 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.6.* 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.6.* 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..5d2e11b5
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ament-lint-common
+ - ros-jazzy-builtin-interfaces
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rosidl-default-generators
+ - ros-jazzy-std-msgs
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rosidl-default-runtime
+ - ros-jazzy-std-msgs
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..f5c7722a
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-rviz-common.win.patch b/recipes/ros-jazzy-rviz-common/patch/ros-jazzy-rviz-common.win.patch
new file mode 100644
index 00000000..36ac65a8
--- /dev/null
+++ b/recipes/ros-jazzy-rviz-common/patch/ros-jazzy-rviz-common.win.patch
@@ -0,0 +1,21 @@
+diff --git a/include/rviz_common/tool_manager.hpp b/include/rviz_common/tool_manager.hpp
+index cb1711706..a70622342 100644
+--- a/include/rviz_common/tool_manager.hpp
++++ b/include/rviz_common/tool_manager.hpp
+@@ -40,6 +40,7 @@
+
+ #include "rviz_common/factory/pluginlib_factory.hpp"
+ #include "rviz_common/tool.hpp"
++#include "rviz_common/visibility_control.hpp"
+
+ class QKeyEvent;
+
+@@ -53,7 +54,7 @@ class PropertyTreeModel;
+
+ } // namespace properties
+
+-class ToolManager : public QObject
++class RVIZ_COMMON_PUBLIC ToolManager : public QObject
+ {
+ Q_OBJECT
+
diff --git a/recipes/ros-jazzy-rviz-common/recipe.yaml b/recipes/ros-jazzy-rviz-common/recipe.yaml
new file mode 100644
index 00000000..aa232358
--- /dev/null
+++ b/recipes/ros-jazzy-rviz-common/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-rviz-common
+ version: 14.1.6
+source:
+ git: https://github.com/ros2-gbp/rviz-release.git
+ tag: release/jazzy/rviz_common/14.1.6-1
+ target_directory: ros-jazzy-rviz-common/src/work
+ patches:
+ - patch/ros-jazzy-rviz-common.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 3
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ - if: build_platform != target_platform
+ then:
+ - qt-main
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - qt-main
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ament-cmake-cppcheck
+ - ros-jazzy-ament-cmake-cpplint
+ - ros-jazzy-ament-cmake-gmock
+ - ros-jazzy-ament-cmake-gtest
+ - ros-jazzy-ament-cmake-lint-cmake
+ - ros-jazzy-ament-cmake-uncrustify
+ - ros-jazzy-ament-cmake-xmllint
+ - ros-jazzy-ament-lint-auto
+ - ros-jazzy-geometry-msgs
+ - ros-jazzy-message-filters
+ - ros-jazzy-pluginlib
+ - ros-jazzy-rclcpp
+ - ros-jazzy-resource-retriever
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rviz-ogre-vendor
+ - ros-jazzy-rviz-rendering
+ - ros-jazzy-sensor-msgs
+ - ros-jazzy-std-msgs
+ - ros-jazzy-std-srvs
+ - ros-jazzy-tf2
+ - ros-jazzy-tf2-ros
+ - ros-jazzy-tinyxml2-vendor
+ - ros-jazzy-urdf
+ - ros-jazzy-yaml-cpp-vendor
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: linux
+ then:
+ - libgl-devel
+ - libopengl-devel
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
+ run:
+ - python
+ - qt-main
+ - ros-jazzy-geometry-msgs
+ - ros-jazzy-message-filters
+ - ros-jazzy-pluginlib
+ - ros-jazzy-rclcpp
+ - ros-jazzy-resource-retriever
+ - ros-jazzy-ros-workspace
+ - ros-jazzy-rviz-ogre-vendor
+ - ros-jazzy-rviz-rendering
+ - ros-jazzy-sensor-msgs
+ - ros-jazzy-std-msgs
+ - ros-jazzy-std-srvs
+ - ros-jazzy-tf2
+ - ros-jazzy-tf2-ros
+ - ros-jazzy-tinyxml2-vendor
+ - ros-jazzy-urdf
+ - ros-jazzy-yaml-cpp-vendor
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
+ - if: unix
+ then:
+ - xorg-libx11
+ - xorg-libxext
diff --git a/recipes/ros-jazzy-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/patch/ros-jazzy-sbg-driver.win.patch b/recipes/ros-jazzy-sbg-driver/patch/ros-jazzy-sbg-driver.win.patch
new file mode 100644
index 00000000..25251e93
--- /dev/null
+++ b/recipes/ros-jazzy-sbg-driver/patch/ros-jazzy-sbg-driver.win.patch
@@ -0,0 +1,21 @@
+diff --git a/src/sbg_utm.cpp b/src/sbg_utm.cpp
+index b49e84c..e0791e7 100644
+--- a/src/sbg_utm.cpp
++++ b/src/sbg_utm.cpp
+@@ -1,2 +1,4 @@
++#define _USE_MATH_DEFINES
++
+ // File header
+
+diff --git a/src/message_wrapper.cpp b/src/message_wrapper.cpp
+index d0c0b6d..2a646b9 100644
+--- a/src/message_wrapper.cpp
++++ b/src/message_wrapper.cpp
+@@ -19,3 +19,7 @@
++#ifndef M_SQRT2
++#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
++#endif
++
+ /*!
+ * Class to wrap the SBG logs into ROS messages.
+ */
diff --git a/recipes/ros-jazzy-sbg-driver/recipe.yaml b/recipes/ros-jazzy-sbg-driver/recipe.yaml
new file mode 100644
index 00000000..effb6f04
--- /dev/null
+++ b/recipes/ros-jazzy-sbg-driver/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-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
+ patches:
+ - patch/ros-jazzy-sbg-driver.win.patch
+
+build:
+ script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
+ number: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - 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.6.* 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.6.* jazzy_*
+ - 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..e68ec7e1
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - 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.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-diagnostic-msgs
+ - ros-jazzy-diagnostic-updater
+ - ros-jazzy-rclcpp
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ - if: osx and x86_64
+ then:
+ - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
diff --git a/recipes/ros-jazzy-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..958ceafa
--- /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: 1
+ post_process:
+ - files:
+ - '*.pc'
+ regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
+ replacement: $$(CONDA_BUILD_SYSROOT_S)
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/sysroot)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+ - files:
+ - '*.cmake'
+ regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
+ replacement: $$ENV{CONDA_BUILD_SYSROOT}
+about:
+ homepage: https://www.ros.org/
+ license: BSD-3-Clause
+ summary: |
+ Robot Operating System
+
+extra:
+ recipe-maintainers:
+ - ros-forge
+
+requirements:
+ build:
+ - ${{ compiler('cxx') }}
+ - ${{ compiler('c') }}
+ - ${{ stdlib('c') }}
+ - ninja
+ - python
+ - setuptools
+ - git
+ - if: unix
+ then:
+ - patch
+ - make
+ - coreutils
+ - if: win
+ then:
+ - m2-patch
+ - if: osx
+ then:
+ - tapi
+ - if: build_platform != target_platform
+ then:
+ - pkg-config
+ - cmake
+ - cython
+ - if: build_platform != target_platform
+ then:
+ - python
+ - cross-python_${{ target_platform }}
+ - numpy
+ host:
+ - if: build_platform == target_platform
+ then:
+ - pkg-config
+ - numpy
+ - pip
+ - python
+ - ros-jazzy-ament-cmake
+ - ros-jazzy-ros-environment
+ - ros-jazzy-ros-workspace
+ - ros2-distro-mutex 0.6.* jazzy_*
+ run:
+ - python
+ - ros-jazzy-ros-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_*
+ - 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/patch/ros-jazzy-slam-toolbox.win.patch b/recipes/ros-jazzy-slam-toolbox/patch/ros-jazzy-slam-toolbox.win.patch
new file mode 100644
index 00000000..7e2ee07c
--- /dev/null
+++ b/recipes/ros-jazzy-slam-toolbox/patch/ros-jazzy-slam-toolbox.win.patch
@@ -0,0 +1,206 @@
+diff --git a/lib/karto_sdk/CMakeLists.txt b/lib/karto_sdk/CMakeLists.txt
+index a620bfd2e..196aab5d7 100644
+--- a/lib/karto_sdk/CMakeLists.txt
++++ b/lib/karto_sdk/CMakeLists.txt
+@@ -5,7 +5,9 @@ if(NOT CMAKE_CXX_STANDARD)
+ set(CMAKE_CXX_STANDARD 17)
+ endif()
+ set(CMAKE_BUILD_TYPE Release) #None, Debug, Release, RelWithDebInfo, MinSizeRel
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-backtrace-limit=0")
++if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-backtrace-limit=0")
++endif()
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
+
+ find_package(ament_cmake REQUIRED)
+@@ -29,6 +31,7 @@ add_definitions(${EIGEN3_DEFINITIONS})
+
+ include_directories(include ${EIGEN3_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
+ add_library(kartoSlamToolbox SHARED src/Karto.cpp src/Mapper.cpp)
++target_compile_definitions(kartoSlamToolbox PRIVATE KARTO_DYNAMIC)
+ ament_target_dependencies(kartoSlamToolbox ${dependencies})
+ target_link_libraries(kartoSlamToolbox ${Boost_LIBRARIES} TBB::tbb)
+
+diff --git a/lib/karto_sdk/src/Mapper.cpp b/lib/karto_sdk/src/Mapper.cpp
+index 83e2af2ca..19d056dfb 100644
+--- a/lib/karto_sdk/src/Mapper.cpp
++++ b/lib/karto_sdk/src/Mapper.cpp
+@@ -405,7 +405,7 @@ void MapperSensorManager::SetRunningScanBufferSize(kt_int32u rScanBufferSize)
+ m_RunningBufferMaximumSize = rScanBufferSize;
+
+ std::vector names = GetSensorNames();
+- for (uint i = 0; i != names.size(); i++) {
++ for (unsigned int i = 0; i != names.size(); i++) {
+ GetScanManager(names[i])->SetRunningScanBufferSize(rScanBufferSize);
+ }
+ }
+@@ -415,7 +415,7 @@ void MapperSensorManager::SetRunningScanBufferMaximumDistance(kt_double rScanBuf
+ m_RunningBufferMaximumDistance = rScanBufferMaxDistance;
+
+ std::vector names = GetSensorNames();
+- for (uint i = 0; i != names.size(); i++) {
++ for (unsigned int i = 0; i != names.size(); i++) {
+ GetScanManager(names[i])->SetRunningScanBufferMaximumDistance(rScanBufferMaxDistance);
+ }
+ }
+@@ -1868,7 +1868,7 @@ std::vector *> MapperGraph::FindNearByVertices(
+
+ std::vector *> rtn_vertices;
+ rtn_vertices.reserve(ret_matches.size());
+- for (uint i = 0; i != ret_matches.size(); i++) {
++ for (unsigned int i = 0; i != ret_matches.size(); i++) {
+ rtn_vertices.push_back(vertices_to_search[ret_matches[i].first]);
+ }
+ return rtn_vertices;
+@@ -2952,7 +2952,7 @@ void Mapper::ClearLocalizationBuffer()
+ }
+
+ std::vector names = m_pMapperSensorManager->GetSensorNames();
+- for (uint i = 0; i != names.size(); i++)
++ for (unsigned int i = 0; i != names.size(); i++)
+ {
+ m_pMapperSensorManager->ClearRunningScans(names[i]);
+ m_pMapperSensorManager->ClearLastScan(names[i]);
+
+diff --git a/rviz_plugin/slam_toolbox_rviz_plugin.hpp b/rviz_plugin/slam_toolbox_rviz_plugin.hpp
+index dafa5d0b7..905d515d6 100644
+--- a/rviz_plugin/slam_toolbox_rviz_plugin.hpp
++++ b/rviz_plugin/slam_toolbox_rviz_plugin.hpp
+@@ -32,6 +32,7 @@
+ #include
+ #include
+ #include
++#undef NO_ERROR
+ // STL
+ #include
+ #include
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3880aa742..9157ce35e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -147,6 +147,11 @@ rosidl_get_typesupport_target(cpp_typesupport_target ${PROJECT_NAME} "rosidl_typ
+ target_link_libraries(ceres_solver_plugin "${cpp_typesupport_target}")
+ pluginlib_export_plugin_description_file(slam_toolbox solver_plugins.xml)
+
++if(MSVC)
++ add_compile_definitions(_USE_MATH_DEFINES)
++ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
++endif()
++
+ #### Tool lib for mapping
+ add_library(toolbox_common src/slam_toolbox_common.cpp src/map_saver.cpp src/loop_closure_assistant.cpp src/laser_utils.cpp src/slam_mapper.cpp)
+ ament_target_dependencies(toolbox_common
+@@ -155,26 +159,43 @@ ament_target_dependencies(toolbox_common
+ target_link_libraries(toolbox_common kartoSlamToolbox ${Boost_LIBRARIES})
+ rosidl_get_typesupport_target(cpp_typesupport_target ${PROJECT_NAME} "rosidl_typesupport_cpp")
+ target_link_libraries(toolbox_common "${cpp_typesupport_target}")
++set_target_properties(toolbox_common PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+ #### Mapping executibles
+ add_library(async_slam_toolbox src/slam_toolbox_async.cpp)
++set_target_properties(async_slam_toolbox PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
+ target_link_libraries(async_slam_toolbox toolbox_common kartoSlamToolbox ${Boost_LIBRARIES})
+ add_executable(async_slam_toolbox_node src/slam_toolbox_async_node.cpp)
++if(MSVC)
++ target_compile_options(async_slam_toolbox_node PRIVATE "/F 40000000")
++endif()
+ target_link_libraries(async_slam_toolbox_node async_slam_toolbox)
+
+ add_library(sync_slam_toolbox src/slam_toolbox_sync.cpp)
++set_target_properties(sync_slam_toolbox PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
+ target_link_libraries(sync_slam_toolbox toolbox_common kartoSlamToolbox ${Boost_LIBRARIES})
+ add_executable(sync_slam_toolbox_node src/slam_toolbox_sync_node.cpp)
++if(MSVC)
++ target_compile_options(sync_slam_toolbox_node PRIVATE "/F 40000000")
++endif()
+ target_link_libraries(sync_slam_toolbox_node sync_slam_toolbox)
+
+ add_library(localization_slam_toolbox src/slam_toolbox_localization.cpp)
++set_target_properties(localization_slam_toolbox PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
+ target_link_libraries(localization_slam_toolbox toolbox_common kartoSlamToolbox ${Boost_LIBRARIES})
+ add_executable(localization_slam_toolbox_node src/slam_toolbox_localization_node.cpp)
++if(MSVC)
++ target_compile_options(localization_slam_toolbox_node PRIVATE "/F 40000000")
++endif()
+ target_link_libraries(localization_slam_toolbox_node localization_slam_toolbox)
+
+ add_library(lifelong_slam_toolbox src/experimental/slam_toolbox_lifelong.cpp)
++set_target_properties(lifelong_slam_toolbox PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
+ target_link_libraries(lifelong_slam_toolbox toolbox_common kartoSlamToolbox ${Boost_LIBRARIES})
+ add_executable(lifelong_slam_toolbox_node src/experimental/slam_toolbox_lifelong_node.cpp)
++if(MSVC)
++ target_compile_options(lifelong_slam_toolbox_node PRIVATE "/F 40000000")
++endif()
+ target_link_libraries(lifelong_slam_toolbox_node lifelong_slam_toolbox)
+
+ add_library(map_and_localization_slam_toolbox src/experimental/slam_toolbox_map_and_localization.cpp)
+diff --git a/include/slam_toolbox/slam_toolbox_common.hpp b/include/slam_toolbox/slam_toolbox_common.hpp
+index 96bd049d9..521a0830c 100644
+--- a/include/slam_toolbox/slam_toolbox_common.hpp
++++ b/include/slam_toolbox/slam_toolbox_common.hpp
+@@ -19,7 +19,9 @@
+ #ifndef SLAM_TOOLBOX__SLAM_TOOLBOX_COMMON_HPP_
+ #define SLAM_TOOLBOX__SLAM_TOOLBOX_COMMON_HPP_
+
++#ifndef _WIN32
+ #include
++#endif
+ #include
+ #include
+ #include