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 +diff --git a/src/slam_toolbox_common.cpp b/src/slam_toolbox_common.cpp +index 916a20788..18c2fa2d1 100644 +--- a/src/slam_toolbox_common.cpp ++++ b/src/slam_toolbox_common.cpp +@@ -52,6 +52,11 @@ SlamToolbox::SlamToolbox(rclcpp::NodeOptions options) + this->declare_parameter( + "stack_size_to_use", rclcpp::ParameterType::PARAMETER_INTEGER, descriptor); + if (this->get_parameter("stack_size_to_use", stack_size)) { ++#ifdef _WIN32 ++ if (stack_size != 40'000'000) { ++ RCLCPP_WARN(get_logger(), "Can't dynamically change stack size on Windows to %i. Node using stack size 40000000", (int)stack_size); ++ } ++#else + RCLCPP_INFO(get_logger(), "Node using stack size %i", (int)stack_size); + const rlim_t max_stack_size = stack_size; + struct rlimit stack_limit; +@@ -60,6 +65,7 @@ SlamToolbox::SlamToolbox(rclcpp::NodeOptions options) + stack_limit.rlim_cur = stack_size; + } + setrlimit(RLIMIT_STACK, &stack_limit); ++#endif + } + } + // server side never times out from lifecycle manager + +diff --git a/include/slam_toolbox/merge_maps_kinematic.hpp b/include/slam_toolbox/merge_maps_kinematic.hpp +index 92102e499..680ef1927 100644 +--- a/include/slam_toolbox/merge_maps_kinematic.hpp ++++ b/include/slam_toolbox/merge_maps_kinematic.hpp +@@ -21,7 +21,9 @@ + + #include + #include ++#ifndef _WIN32 + #include ++#endif + #include + #include + #include +diff --git a/src/merge_maps_kinematic.cpp b/src/merge_maps_kinematic.cpp +index bd0ce0fa9..31b2a8991 100644 +--- a/src/merge_maps_kinematic.cpp ++++ b/src/merge_maps_kinematic.cpp +@@ -101,7 +101,11 @@ bool MergeMapsKinematic::addSubmapCallback( + "/map_" + std::to_string(num_submaps_), rclcpp::QoS(1))); + sstmS_.push_back(this->create_publisher( + "/map_metadata_" + std::to_string(num_submaps_), rclcpp::QoS(1))); ++#ifdef _WIN32 ++ Sleep(1000); ++#else + sleep(1.0); ++#endif + + nav_msgs::srv::GetMap::Response map; + nav_msgs::msg::OccupancyGrid & og = map.map; diff --git a/recipes/ros-jazzy-slam-toolbox/recipe.yaml b/recipes/ros-jazzy-slam-toolbox/recipe.yaml new file mode 100644 index 00000000..6ee63cd9 --- /dev/null +++ b/recipes/ros-jazzy-slam-toolbox/recipe.yaml @@ -0,0 +1,174 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-slam-toolbox + version: 2.8.2 +source: + git: https://github.com/SteveMacenski/slam_toolbox-release.git + tag: release/jazzy/slam_toolbox/2.8.2-1 + target_directory: ros-jazzy-slam-toolbox/src/work + patches: + - patch/ros-jazzy-slam-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 + - ${{ 'qt-main' if (build_platform != target_platform) }} + - if: build_platform != target_platform + then: + - qt-main + host: + - blas-devel + - if: build_platform == target_platform + then: + - pkg-config + - ceres-solver + - eigen + - libboost-devel + - libboost-python-devel + - liblapack + - numpy + - pip + - python + - qt-main + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-cpplint + - ros-jazzy-ament-cmake-flake8 + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-uncrustify + - ros-jazzy-ament-lint-auto + - ros-jazzy-bond + - ros-jazzy-bondcpp + - ros-jazzy-builtin-interfaces + - ros-jazzy-interactive-markers + - ros-jazzy-launch + - ros-jazzy-launch-testing + - ros-jazzy-lifecycle-msgs + - ros-jazzy-message-filters + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rviz-common + - ros-jazzy-rviz-default-plugins + - ros-jazzy-rviz-ogre-vendor + - ros-jazzy-rviz-rendering + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-tf2-sensor-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - suitesparse + - tbb + - tbb-devel + - if: linux + then: + - libgl-devel + - libopengl-devel + - if: unix + then: + - xorg-libx11 + - xorg-libxext + run: + - ceres-solver + - eigen + - libboost-devel + - libboost-python-devel + - liblapack + - python + - qt-main + - ros-jazzy-bond + - ros-jazzy-bondcpp + - ros-jazzy-builtin-interfaces + - ros-jazzy-interactive-markers + - ros-jazzy-lifecycle-msgs + - ros-jazzy-message-filters + - ros-jazzy-nav-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-lifecycle + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rviz-common + - ros-jazzy-rviz-default-plugins + - ros-jazzy-rviz-ogre-vendor + - ros-jazzy-rviz-rendering + - ros-jazzy-sensor-msgs + - ros-jazzy-std-msgs + - ros-jazzy-std-srvs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros-jazzy-tf2-sensor-msgs + - ros-jazzy-visualization-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - suitesparse + - tbb + - tbb-devel + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} + - if: unix + then: + - xorg-libx11 + - xorg-libxext diff --git a/recipes/ros-jazzy-smclib/bld_ament_cmake.bat b/recipes/ros-jazzy-smclib/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-smclib/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-smclib/build_ament_cmake.sh b/recipes/ros-jazzy-smclib/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-smclib/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-smclib/patch/ros-jazzy-smclib.win.patch b/recipes/ros-jazzy-smclib/patch/ros-jazzy-smclib.win.patch new file mode 100644 index 00000000..a9704153 --- /dev/null +++ b/recipes/ros-jazzy-smclib/patch/ros-jazzy-smclib.win.patch @@ -0,0 +1,12 @@ +diff --git a/smclib/include/smclib/statemap.hpp b/smclib/include/smclib/statemap.hpp +index e338652..ee25d08 100644 +--- a/smclib/include/smclib/statemap.hpp ++++ b/smclib/include/smclib/statemap.hpp +@@ -52,7 +52,6 @@ + #endif // SMC_NO_EXCEPTIONS + #include + #elif defined(WIN32) +-#include + #if defined(SMC_NO_EXCEPTIONS) + #include + #endif // SMC_NO_EXCEPTIONS diff --git a/recipes/ros-jazzy-smclib/recipe.yaml b/recipes/ros-jazzy-smclib/recipe.yaml new file mode 100644 index 00000000..9739863c --- /dev/null +++ b/recipes/ros-jazzy-smclib/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-smclib + version: 4.1.0 +source: + git: https://github.com/ros2-gbp/bond_core-release.git + tag: release/jazzy/smclib/4.1.0-1 + target_directory: ros-jazzy-smclib/src/work + patches: + - patch/ros-jazzy-smclib.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-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - 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-srdfdom/bld_ament_cmake.bat b/recipes/ros-jazzy-srdfdom/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-srdfdom/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-srdfdom/build_ament_cmake.sh b/recipes/ros-jazzy-srdfdom/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-srdfdom/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-srdfdom/recipe.yaml b/recipes/ros-jazzy-srdfdom/recipe.yaml new file mode 100644 index 00000000..1b64e2cc --- /dev/null +++ b/recipes/ros-jazzy-srdfdom/recipe.yaml @@ -0,0 +1,100 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-srdfdom + version: 2.0.5 +source: + git: https://github.com/ros2-gbp/srdfdom-release.git + tag: release/jazzy/srdfdom/2.0.5-1 + target_directory: ros-jazzy-srdfdom/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - console_bridge + - libboost-devel + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-cmake + - ros-jazzy-console-bridge-vendor + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-tinyxml2-vendor + - ros-jazzy-urdf + - ros-jazzy-urdfdom-headers + - ros2-distro-mutex 0.6.* jazzy_* + run: + - console_bridge + - python + - ros-jazzy-console-bridge-vendor + - ros-jazzy-ros-workspace + - ros-jazzy-tinyxml2-vendor + - ros-jazzy-urdf + - ros-jazzy-urdfdom-py + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-stereo-image-proc/bld_ament_cmake.bat b/recipes/ros-jazzy-stereo-image-proc/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-stereo-image-proc/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-stereo-image-proc/build_ament_cmake.sh b/recipes/ros-jazzy-stereo-image-proc/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-stereo-image-proc/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-stereo-image-proc/recipe.yaml b/recipes/ros-jazzy-stereo-image-proc/recipe.yaml new file mode 100644 index 00000000..68ee2bb0 --- /dev/null +++ b/recipes/ros-jazzy-stereo-image-proc/recipe.yaml @@ -0,0 +1,114 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-stereo-image-proc + version: 5.0.6 +source: + git: https://github.com/ros2-gbp/image_pipeline-release.git + tag: release/jazzy/stereo_image_proc/5.0.6-1 + target_directory: ros-jazzy-stereo-image-proc/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - libopencv + - numpy + - pip + - py-opencv + - python + - ros-jazzy-ament-cmake-auto + - ros-jazzy-ament-cmake-pytest + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-cv-bridge + - ros-jazzy-image-geometry + - ros-jazzy-image-proc + - ros-jazzy-image-transport + - ros-jazzy-launch + - ros-jazzy-launch-ros + - ros-jazzy-launch-testing + - ros-jazzy-launch-testing-ament-cmake + - ros-jazzy-message-filters + - ros-jazzy-python-cmake-module + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rclpy + - ros-jazzy-ros-environment + - ros-jazzy-ros-testing + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-stereo-msgs + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-cv-bridge + - ros-jazzy-image-geometry + - ros-jazzy-image-proc + - ros-jazzy-image-transport + - ros-jazzy-message-filters + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-workspace + - ros-jazzy-sensor-msgs + - ros-jazzy-stereo-msgs + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-stomp/bld_catkin.bat b/recipes/ros-jazzy-stomp/bld_catkin.bat new file mode 100755 index 00000000..854efe1b --- /dev/null +++ b/recipes/ros-jazzy-stomp/bld_catkin.bat @@ -0,0 +1,81 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin +:: if ROS (1) is build as shared library . However, some packages are not +:: passing compilation flags from CMake to other build systems (such as qmake), +:: so we enable it explicitly via the CL environment variable, see +:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170 +set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1 + +set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1" +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: create catkin cookie to make it is a catkin workspace + type NUL > %LIBRARY_PREFIX%\.catkin + :: keep the workspace activation scripts (e.g., local_setup.bat) + set CATKIN_BUILD_BINARY_PACKAGE_ARGS= +) + +rd /s /q build +mkdir build +pushd build + +set SKIP_TESTING=ON + +cmake ^ + -G "Ninja" ^ + --compile-no-warning-as-error ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^ + -DBUILD_SHARED_LIBS=ON ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBoost_USE_STATIC_LIBS=OFF ^ + %CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^ + -DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-eigenpy" ( + cmake --build . --config Release --target all --parallel 1 + if errorlevel 1 exit 1 +) else ( + cmake --build . --config Release --target all + if errorlevel 1 exit 1 +) + +if "%SKIP_TESTING%" == "OFF" ( + cmake --build . --config Release --target run_tests + if errorlevel 1 exit 1 +) + +cmake --build . --config Release --target install +if errorlevel 1 exit 1 + +if "%PKG_NAME%" == "ros-jazzy-catkin" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + ) +) + +if "%PKG_NAME%" == "ros-jazzy-ros-workspace" ( + :: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d. + :: This will allow them to be run on environment activation. + for %%F in (activate deactivate) DO ( + if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d + copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat + copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1 + ) +) diff --git a/recipes/ros-jazzy-stomp/build_catkin.sh b/recipes/ros-jazzy-stomp/build_catkin.sh new file mode 100755 index 00000000..5395dd85 --- /dev/null +++ b/recipes/ros-jazzy-stomp/build_catkin.sh @@ -0,0 +1,138 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +CATKIN_BUILD_BINARY_PACKAGE="ON" + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # create catkin cookie to make it is a catkin workspace + touch $PREFIX/.catkin + # keep the workspace activation scripts (e.g., local_setup.bat) + CATKIN_BUILD_BINARY_PACKAGE="OFF" +fi + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python $ROS_PYTHON_VERSION" +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") +echo "Using site-package dir ${FIXED_SP_DIR}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true + # way around bad CPU type issues + # rm $PREFIX/bin/doxygen || echo "doxygen not found" + # rm $PREFIX/bin/dia || echo "dia not found" + # rm $PREFIX/bin/dot || echo "dot not found" +fi + +# NOTE: there might be undefined references occurring +# in the Boost.system library, depending on the C++ versions +# used to compile Boost. We can avoid them by forcing the use of +# the header-only version of the library. +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; + # I am too scared to turn this on for now ... + # export LDFLAGS="$LDFLAGS -lrt"; + # Some qt stuff uses g++ directly - fix these use cases + ln -s $GXX $BUILD_PREFIX/bin/g++ +fi + +export SKIP_TESTING=ON + +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then + GENERATOR="Unix Makefiles" +else + GENERATOR="Ninja" +fi + +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ + -DCMAKE_FIND_FRAMEWORK=LAST \ + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ + -DBUILD_SHARED_LIBS=ON \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + -G "$GENERATOR" \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target all + +if [[ "$SKIP_TESTING" == "OFF" ]]; then + cmake --build . --config Release --target run_tests +fi + +cmake --build . --config Release --target install + +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" + do + mkdir -p "${PREFIX}/etc/conda/activate.d" + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" + done +fi + +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. + # This will allow them to be run on environment activation. + for CHANGE in "activate" "deactivate" + do + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" + done +fi diff --git a/recipes/ros-jazzy-stomp/recipe.yaml b/recipes/ros-jazzy-stomp/recipe.yaml new file mode 100644 index 00000000..742f11ea --- /dev/null +++ b/recipes/ros-jazzy-stomp/recipe.yaml @@ -0,0 +1,89 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-stomp + version: 0.1.2 +source: + git: https://github.com/ros2-gbp/stomp-release.git + tag: release/jazzy/stomp/0.1.2-4 + target_directory: ros-jazzy-stomp/src/work + +build: + script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix else '%RECIPE_DIR%\\bld_catkin.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - console_bridge + - eigen + - gtest + - numpy + - pip + - python + - ros-jazzy-ros-environment + - ros-jazzy-ros-industrial-cmake-boilerplate + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - console_bridge + - 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-tcb-span/bld_ament_cmake.bat b/recipes/ros-jazzy-tcb-span/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tcb-span/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tcb-span/build_ament_cmake.sh b/recipes/ros-jazzy-tcb-span/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tcb-span/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tcb-span/recipe.yaml b/recipes/ros-jazzy-tcb-span/recipe.yaml new file mode 100644 index 00000000..50b40847 --- /dev/null +++ b/recipes/ros-jazzy-tcb-span/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tcb-span + version: 1.0.2 +source: + git: https://github.com/ros2-gbp/cpp_polyfills-release.git + tag: release/jazzy/tcb_span/1.0.2-5 + target_directory: ros-jazzy-tcb-span/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tl-expected/bld_ament_cmake.bat b/recipes/ros-jazzy-tl-expected/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tl-expected/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tl-expected/build_ament_cmake.sh b/recipes/ros-jazzy-tl-expected/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tl-expected/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tl-expected/recipe.yaml b/recipes/ros-jazzy-tl-expected/recipe.yaml new file mode 100644 index 00000000..f45123d0 --- /dev/null +++ b/recipes/ros-jazzy-tl-expected/recipe.yaml @@ -0,0 +1,84 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tl-expected + version: 1.0.2 +source: + git: https://github.com/ros2-gbp/cpp_polyfills-release.git + tag: release/jazzy/tl_expected/1.0.2-5 + target_directory: ros-jazzy-tl-expected/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - 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-topic-tools-interfaces/bld_ament_cmake.bat b/recipes/ros-jazzy-topic-tools-interfaces/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-topic-tools-interfaces/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-topic-tools-interfaces/build_ament_cmake.sh b/recipes/ros-jazzy-topic-tools-interfaces/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-topic-tools-interfaces/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-topic-tools-interfaces/recipe.yaml b/recipes/ros-jazzy-topic-tools-interfaces/recipe.yaml new file mode 100644 index 00000000..f9dce66c --- /dev/null +++ b/recipes/ros-jazzy-topic-tools-interfaces/recipe.yaml @@ -0,0 +1,90 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-topic-tools-interfaces + version: 1.3.2 +source: + git: https://github.com/ros2-gbp/topic_tools-release.git + tag: release/jazzy/topic_tools_interfaces/1.3.2-1 + target_directory: ros-jazzy-topic-tools-interfaces/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-builtin-interfaces + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-runtime + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-topic-tools/bld_ament_cmake.bat b/recipes/ros-jazzy-topic-tools/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-topic-tools/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-topic-tools/build_ament_cmake.sh b/recipes/ros-jazzy-topic-tools/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-topic-tools/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-topic-tools/recipe.yaml b/recipes/ros-jazzy-topic-tools/recipe.yaml new file mode 100644 index 00000000..06c4214b --- /dev/null +++ b/recipes/ros-jazzy-topic-tools/recipe.yaml @@ -0,0 +1,100 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-topic-tools + version: 1.3.2 +source: + git: https://github.com/ros2-gbp/topic_tools-release.git + tag: release/jazzy/topic_tools/1.3.2-1 + target_directory: ros-jazzy-topic-tools/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-gtest + - ros-jazzy-ament-cmake-python + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-rosidl-default-generators + - ros-jazzy-rosidl-runtime-py + - ros-jazzy-std-msgs + - ros-jazzy-topic-tools-interfaces + - ros2-distro-mutex 0.6.* jazzy_* + run: + - python + - ros-jazzy-rclcpp + - ros-jazzy-rclcpp-components + - ros-jazzy-rclpy + - ros-jazzy-ros-workspace + - ros-jazzy-ros2cli + - ros-jazzy-rosidl-runtime-py + - ros-jazzy-topic-tools-interfaces + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/recipes/ros-jazzy-tracetools-image-pipeline/bld_ament_cmake.bat b/recipes/ros-jazzy-tracetools-image-pipeline/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-tracetools-image-pipeline/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-tracetools-image-pipeline/build_ament_cmake.sh b/recipes/ros-jazzy-tracetools-image-pipeline/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-tracetools-image-pipeline/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-tracetools-image-pipeline/recipe.yaml b/recipes/ros-jazzy-tracetools-image-pipeline/recipe.yaml new file mode 100644 index 00000000..cf5f2657 --- /dev/null +++ b/recipes/ros-jazzy-tracetools-image-pipeline/recipe.yaml @@ -0,0 +1,87 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-tracetools-image-pipeline + version: 5.0.6 +source: + git: https://github.com/ros2-gbp/image_pipeline-release.git + tag: release/jazzy/tracetools_image_pipeline/5.0.6-1 + target_directory: ros-jazzy-tracetools-image-pipeline/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - numpy + - pip + - pkg-config + - python + - ros-jazzy-ament-cmake-ros + - ros-jazzy-ament-lint-auto + - ros-jazzy-ament-lint-common + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros2-distro-mutex 0.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-vision-opencv/bld_ament_cmake.bat b/recipes/ros-jazzy-vision-opencv/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-vision-opencv/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-vision-opencv/build_ament_cmake.sh b/recipes/ros-jazzy-vision-opencv/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-vision-opencv/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-vision-opencv/recipe.yaml b/recipes/ros-jazzy-vision-opencv/recipe.yaml new file mode 100644 index 00000000..660052b3 --- /dev/null +++ b/recipes/ros-jazzy-vision-opencv/recipe.yaml @@ -0,0 +1,86 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-vision-opencv + version: 4.1.0 +source: + git: https://github.com/ros2-gbp/vision_opencv-release.git + tag: release/jazzy/vision_opencv/4.1.0-1 + target_directory: ros-jazzy-vision-opencv/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - 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-cv-bridge + - ros-jazzy-image-geometry + - 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-warehouse-ros/bld_ament_cmake.bat b/recipes/ros-jazzy-warehouse-ros/bld_ament_cmake.bat new file mode 100755 index 00000000..823afff1 --- /dev/null +++ b/recipes/ros-jazzy-warehouse-ros/bld_ament_cmake.bat @@ -0,0 +1,52 @@ +:: Generated by vinca http://github.com/RoboStack/vinca. +:: DO NOT EDIT! +setlocal EnableDelayedExpansion + +set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%" + +:: MSVC is preferred. +set CC=cl.exe +set CXX=cl.exe + +rd /s /q build +mkdir build +pushd build + +:: set "CMAKE_GENERATOR=Ninja" +:: We use the Visual Studio generator as a workaround for +:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467 +:: Once those are solved, we can switch back to use Ninja +set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%" + +:: PYTHON_INSTALL_DIR should be a relative path, see +:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX, +:: but it is not trivial to do this in Command Prompt scripting, so let's do it via +:: python + +:: This line is scary, but it basically assigns the output of the command inside (` and `) +:: to the variable specified after DO SET +:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...` +FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i + +cmake ^ + -G "%CMAKE_GENERATOR%" ^ + -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ + -DPYTHON_EXECUTABLE=%PYTHON% ^ + -DPython_EXECUTABLE=%PYTHON% ^ + -DPython3_EXECUTABLE=%PYTHON% ^ + -DSETUPTOOLS_DEB_LAYOUT=OFF ^ + -DBUILD_SHARED_LIBS=ON ^ + -DBUILD_TESTING=OFF ^ + -DCMAKE_OBJECT_PATH_MAX=255 ^ + --compile-no-warning-as-error ^ + -DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^ + %SRC_DIR%\%PKG_NAME%\src\work +if errorlevel 1 exit 1 + +:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja, +:: see the comment before setting the CMAKE_GENERATOR env variable +cmake --build . --config Release --parallel %CPU_COUNT% --target install +if errorlevel 1 exit 1 diff --git a/recipes/ros-jazzy-warehouse-ros/build_ament_cmake.sh b/recipes/ros-jazzy-warehouse-ros/build_ament_cmake.sh new file mode 100755 index 00000000..34df1a72 --- /dev/null +++ b/recipes/ros-jazzy-warehouse-ros/build_ament_cmake.sh @@ -0,0 +1,84 @@ +# Generated by vinca http://github.com/RoboStack/vinca. +# DO NOT EDIT! + +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using site_packages: $PYTHON_INSTALL_DIR" + +cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $SRC_DIR/$PKG_NAME/src/work + +cmake --build . --config Release --target install diff --git a/recipes/ros-jazzy-warehouse-ros/recipe.yaml b/recipes/ros-jazzy-warehouse-ros/recipe.yaml new file mode 100644 index 00000000..b8f53fb9 --- /dev/null +++ b/recipes/ros-jazzy-warehouse-ros/recipe.yaml @@ -0,0 +1,106 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json + +package: + name: ros-jazzy-warehouse-ros + version: 2.0.5 +source: + git: https://github.com/ros2-gbp/warehouse_ros-release.git + tag: release/jazzy/warehouse_ros/2.0.5-1 + target_directory: ros-jazzy-warehouse-ros/src/work + +build: + script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix else '%RECIPE_DIR%\\bld_ament_cmake.bat' }} + number: 1 + post_process: + - files: + - '*.pc' + regex: (?:-L|-I)?"?([^;\s]+/sysroot/) + replacement: $$(CONDA_BUILD_SYSROOT_S) + - files: + - '*.cmake' + regex: ([^;\s"]+/sysroot) + replacement: $$ENV{CONDA_BUILD_SYSROOT} + - files: + - '*.cmake' + regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk) + replacement: $$ENV{CONDA_BUILD_SYSROOT} +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +extra: + recipe-maintainers: + - ros-forge + +requirements: + build: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - ${{ stdlib('c') }} + - ninja + - python + - setuptools + - git + - if: unix + then: + - patch + - make + - coreutils + - if: win + then: + - m2-patch + - if: osx + then: + - tapi + - if: build_platform != target_platform + then: + - pkg-config + - cmake + - cython + - if: build_platform != target_platform + then: + - python + - cross-python_${{ target_platform }} + - numpy + host: + - if: build_platform == target_platform + then: + - pkg-config + - libboost-devel + - libboost-python-devel + - numpy + - openssl + - pip + - python + - ros-jazzy-ament-cmake + - ros-jazzy-ament-cmake-copyright + - ros-jazzy-ament-lint-auto + - ros-jazzy-geometry-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-environment + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.6.* jazzy_* + run: + - libboost-devel + - libboost-python-devel + - openssl + - python + - ros-jazzy-geometry-msgs + - ros-jazzy-pluginlib + - ros-jazzy-rclcpp + - ros-jazzy-ros-workspace + - ros-jazzy-std-msgs + - ros-jazzy-tf2 + - ros-jazzy-tf2-geometry-msgs + - ros-jazzy-tf2-ros + - ros2-distro-mutex 0.6.* jazzy_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/vinca.yaml b/vinca.yaml new file mode 100644 index 00000000..131f4356 --- /dev/null +++ b/vinca.yaml @@ -0,0 +1,78 @@ +ros_distro: jazzy + +# mapping for package keys +conda_index: + - robostack.yaml + - packages-ignore.yaml + +# Reminder for next full rebuild, the next build number should be 4 +build_number: 1 + +mutex_package: ros2-distro-mutex 0.6.* jazzy_* + +skip_all_deps: false + +# If full rebuild, the build number of the existing package has +# to match the selected build number for skipping +full_rebuild: true + +packages_skip_by_deps: + - cartographer + - urdfdom + - urdfdom_py + - urdfdom_headers + - rttest + - tlsf + - tlsf_cpp + - pendulum_control + +packages_remove_from_deps: + - cartographer + - rttest + - tlsf + - tlsf_cpp + - pendulum_control + +skip_existing: + # - output + - https://conda.anaconda.org/robostack-jazzy/ + +packages_select_by_deps: + - ament_cmake_core + - ament_cmake_catch2 + + - desktop + - ros_base + - ros_environment + - ros_workspace + - dev_tools + - diagnostics + - teleop + - robot + - perception + - navigation2 + - simulation + - desktop_full + + - moveit + - moveit-planners-chomp + + - ros_gz + - slam_toolbox + - turtlebot3 + + # Skip for now + # - plotjuggler-ros + + - apriltag_ros + + - ackermann-msgs + # velodyne packages are not supported on Windows + # - velodyne + - sbg_driver + # Commented out as in the next rebuild on Windows we will switch to use the conda-forge version + #- gtsam + +patch_dir: patch +rosdistro_snapshot: rosdistro_snapshot.yaml + diff --git a/vinca_ab9d5091c9.json b/vinca_ab9d5091c9.json new file mode 100644 index 00000000..37fa343f --- /dev/null +++ b/vinca_ab9d5091c9.json @@ -0,0 +1 @@ +{"packages":{},"packages.conda":{"ros-jazzy-ament-package-0.16.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["importlib-metadata","importlib_resources","python","ros2-distro-mutex 0.6.* jazzy_*","setuptools","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449555439,"md5":"383d9b96f8ed921ca7df1c05c3960861","name":"ros-jazzy-ament-package","requires":[],"size":35611,"version":"0.16.3","binstar":{"package_id":"6674a0880ec0a9de7a21416c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a092f13560ccf974fae825e030a754345b6e2908961250adae3d5828562f9b7a"},"ros2-distro-mutex-0.6.0-jazzy_0.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"jazzy_0","build_number":0,"constrains":["libboost 1.86.*","libboost-devel 1.86.*","pcl 1.14.1.*","gazebo 11.*","libprotobuf 5.28.2.*"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449444825,"md5":"3fdb6099189dea8b5b10f961abfd24d9","name":"ros2-distro-mutex","requires":[],"depends":[],"size":2395,"version":"0.6.0","binstar":{"package_id":"6674a08a15fc1c937921416b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bdeee6bad20c49bde4f13218ea0eb472a6575e8ef0cfcc71dec8dcb55a97a3ec"},"ros-jazzy-ament-cmake-core-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["catkin_pkg","cmake","python","ros-jazzy-ament-package","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449604132,"md5":"6a413cd9da60b1efc12f7ea900fb659e","name":"ros-jazzy-ament-cmake-core","requires":[],"size":40677,"version":"2.5.3","binstar":{"package_id":"6674a0d7b557d1c73d6af053","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2ace8bd095f7303b5d3fb87445060acc13c3fe948a645a3ac03f7f49b6c5fd58"},"ros-jazzy-ros-environment-4.2.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449661805,"md5":"bf1f40c36990c208b6b0bf0fc7840517","name":"ros-jazzy-ros-environment","requires":[],"size":16598,"version":"4.2.1","binstar":{"package_id":"6674a0d952b92cb4069dbd24","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"be134bbc5b421cb599a02d0ec509fc5e213ed77f15327d6b32c6a19a4800a7dc"},"ros-jazzy-ros-workspace-1.0.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449637593,"md5":"7b6e78635700702c532cec5a5e883952","name":"ros-jazzy-ros-workspace","requires":[],"size":32462,"version":"1.0.3","binstar":{"package_id":"6674a0dbdd9abcfdfb9dbd24","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e5828787640804b039bef6512691d7e7421b935963ff7fdaaaf70db3506a9af5"},"ros-jazzy-iceoryx-hoofs-2.0.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449819305,"md5":"9c0448f54e83568beb7b190230b29b9f","name":"ros-jazzy-iceoryx-hoofs","requires":[],"size":756479,"version":"2.0.6","binstar":{"package_id":"6674a1224ef4ab0e17883dd8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8153529a9a767e20518a4148b11e2ac283cbe2a35fe18e16b24f64e33c629f94"},"ros-jazzy-urdfdom-headers-1.1.2-h9490d1a_0.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"h9490d1a_0","build_number":0,"depends":["urdfdom_headers ==1.1.2","python 3.11.* *_cpython"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449445008,"md5":"b85a8b725384ca9f76a4abf91b18f6a9","name":"ros-jazzy-urdfdom-headers","requires":[],"size":1851,"version":"1.1.2","binstar":{"package_id":"6674a123ff4752325d57944d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"57f85c5a6a80958d18c2ef4ee0560ecc48715e462ff96f8a05bd2e57c9bfbdde"},"ros-jazzy-ament-cmake-include-directories-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449922190,"md5":"511af65f072fc0d76b2f47925efa4c61","name":"ros-jazzy-ament-cmake-include-directories","requires":[],"size":17454,"version":"2.5.3","binstar":{"package_id":"6674a1307aab843f03579449","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c18d5159af04a1d3eb6de618d7521bc669e4ee374e22230170ebdb3d8c2622f0"},"ros-jazzy-ament-cmake-export-definitions-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450022323,"md5":"91808497e9078552b4dc0e98bdb83a89","name":"ros-jazzy-ament-cmake-export-definitions","requires":[],"size":17581,"version":"2.5.3","binstar":{"package_id":"6674a13266b718689c44de6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2926d4d91fc16abcc6028c4c4a0d0194a6d2e457e089a7c572d9e8e6b39a243d"},"ros-jazzy-ament-cmake-libraries-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449900042,"md5":"89a3d8376a64c9b6e9c0e9ef249bcd35","name":"ros-jazzy-ament-cmake-libraries","requires":[],"size":17073,"version":"2.5.3","binstar":{"package_id":"6674a133bf586e21d26af053","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e547e0801befab7187eec7d5bb108802b788e5441c743f6c3432f57d91673e81"},"ros-jazzy-ament-cmake-export-include-directories-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450002633,"md5":"2ff8a9255b70c73c699e76d98dd09023","name":"ros-jazzy-ament-cmake-export-include-directories","requires":[],"size":17971,"version":"2.5.3","binstar":{"package_id":"6674a1348eba59d71d44de6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8524ec7f9bb70645636fffc94be8201bbb7a871a8bc79d97fde44e276871345b"},"ros-jazzy-ament-cmake-python-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449842035,"md5":"dedb9c8086743ae1892c6fc4fae27046","name":"ros-jazzy-ament-cmake-python","requires":[],"size":19725,"version":"2.5.3","binstar":{"package_id":"6674a134fda12eef0045c4f3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c37d970762410891e9a97f2f46755ecaa6dfa13ad5571a0fbe125aaf57a03c9d"},"ros-jazzy-ament-cmake-export-libraries-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449879954,"md5":"2055f2b270631dc74a0ccf8914ed851f","name":"ros-jazzy-ament-cmake-export-libraries","requires":[],"size":19526,"version":"2.5.3","binstar":{"package_id":"6674a135751ba5b24b21416e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4de87ce8e52a186d4a9a5a0a3aad3813cb371f23fec8a0f12227f7b8598c16a8"},"ros-jazzy-ament-lint-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449793361,"md5":"8ffe5e7c03eea349dbd360873771bd1b","name":"ros-jazzy-ament-lint","requires":[],"size":14082,"version":"0.17.1","binstar":{"package_id":"6674a1357f5cc3d27f45c4f6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a6cf30a3c30a46d3f7752393d9856f5b180dfb3a485c331cbaa51cdc474e7fd3"},"ros-jazzy-gtest-vendor-1.14.9000-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449879625,"md5":"aa193df418992f918eaf9edfa39f7103","name":"ros-jazzy-gtest-vendor","requires":[],"size":206767,"version":"1.14.9000","binstar":{"package_id":"6674a136b5589307ae1922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e21885426466724c2e8fdfcdc70c04777099543bae204d949c32572f73bfff5d"},"ros-jazzy-ament-cmake-export-link-flags-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449980916,"md5":"1cbd6c890ae8b47a39ce5d9996431220","name":"ros-jazzy-ament-cmake-export-link-flags","requires":[],"size":17478,"version":"2.5.3","binstar":{"package_id":"6674a137a34cc3f166a7ce6b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e3388628858f4fc83040e924e1cfe932fb4caaa49375218e39e48161a858b218"},"ros-jazzy-ament-cmake-version-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449960277,"md5":"c76f30e7f356778cd873f970e1e827e2","name":"ros-jazzy-ament-cmake-version","requires":[],"size":17335,"version":"2.5.3","binstar":{"package_id":"6674a13adbc9a5ddb5579449","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5835c776285553360b041b9a1d157ccca17a49a08f17d68be69525f8be5e14b6"},"ros-jazzy-ament-pycodestyle-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["pycodestyle","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449793351,"md5":"2d8f4a0fd37830fbd09745fabb6eef42","name":"ros-jazzy-ament-pycodestyle","requires":[],"size":27620,"version":"0.17.1","binstar":{"package_id":"6674a143f1e91f8ddc6af055","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"24fb7667b395c8969c8a418823e0482486f98be749e4cf042a6f9e84484f3d8b"},"ros-jazzy-google-benchmark-vendor-0.5.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["benchmark","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449861705,"md5":"3f5fa393cb180f3a7ed7fa33295ed6f8","name":"ros-jazzy-google-benchmark-vendor","requires":[],"size":13230,"version":"0.5.0","binstar":{"package_id":"6674a145d25c322a2e1922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a10ee8ba97b344d1e24d40b63aa07e3972d1a9376c3511dd1bdf6d0d5dc91319"},"ros-jazzy-osrf-pycommon-2.1.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["importlib-metadata","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449841809,"md5":"705951de328ffc5c16824088a9f829e1","name":"ros-jazzy-osrf-pycommon","requires":[],"size":60500,"version":"2.1.5","binstar":{"package_id":"6674a14ad8010e9cee1922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4194fdb49eb90de908320610841a163a7f293293769f142ebdc79865cb8b79f7"},"ros-jazzy-osrf-testing-tools-cpp-2.0.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449886265,"md5":"2519d7d2206794c3fbc5e2c79f20971f","name":"ros-jazzy-osrf-testing-tools-cpp","requires":[],"size":5099814,"version":"2.0.0","binstar":{"package_id":"6674a14c1aea3d65a045c4f5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"16be8ae2540863fddf08edf87f2b68d666c91f250730c7dd0e65af9e0c1c47ee"},"ros-jazzy-test-interface-files-0.11.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449919852,"md5":"8030b78dadd2bbff721da115c673af23","name":"ros-jazzy-test-interface-files","requires":[],"size":19362,"version":"0.11.0","binstar":{"package_id":"6674a14e3ca8a6ae9e883dd8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5a43234c27003a44f4dcccd2b123905f307330c993836332f04cff84b8bfa7f3"},"ros-jazzy-ament-cmake-export-dependencies-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-libraries","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450200900,"md5":"6765d2cbe10f2fa4048e67c337a61d5a","name":"ros-jazzy-ament-cmake-export-dependencies","requires":[],"size":18508,"version":"2.5.3","binstar":{"package_id":"6674a1a7d6a022a9b921416b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"055acb4eccb17a01979ae7534b627593dafe56792b218cd2cc918c3d548f0fed"},"ros-jazzy-ament-cmake-export-targets-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-export-libraries","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450243179,"md5":"8b99ac07e0c077bacf3b86639da65660","name":"ros-jazzy-ament-cmake-export-targets","requires":[],"size":18322,"version":"2.5.3","binstar":{"package_id":"6674a1a8c42c2ed11157944c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"56f4645c5cdc78545738f1e751b46859b91b7d5f268863e47b2d9a7a0274c864"},"ros-jazzy-ament-cmake-target-dependencies-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-include-directories","ros-jazzy-ament-cmake-libraries","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450222207,"md5":"fac4926cedf9a4a59eaf0e1a3847246a","name":"ros-jazzy-ament-cmake-target-dependencies","requires":[],"size":19152,"version":"2.5.3","binstar":{"package_id":"6674a1a9b557d1c73d6af055","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0a41a20378bfc1193f60f6d6231fcea0d219875bdd2ad031671eb3784b335192"},"ros-jazzy-ament-cmake-test-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450167612,"md5":"4238ae8ad9f21750b9f2ebe09906046a","name":"ros-jazzy-ament-cmake-test","requires":[],"size":32139,"version":"2.5.3","binstar":{"package_id":"6674a1aa83e518de36a7ce6c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e8a3606872e1db160798c3a45e823b80640ca339daeb495485761dfc4fa23987"},"ros-jazzy-ament-flake8-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["flake8","flake8-builtins","flake8-comprehensions","flake8-docstrings","flake8-import-order","flake8-quotes","python","ros-jazzy-ament-lint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450119778,"md5":"b196c22598930a00fed98ca0c3ba875f","name":"ros-jazzy-ament-flake8","requires":[],"size":33532,"version":"0.17.1","binstar":{"package_id":"6674a1ac189b62b6cff4ab97","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a86d078fa547b73e17dbd8493a41471094944b564aa4a85a354ecdd051a5e2ee"},"ros-jazzy-ament-cmake-export-interfaces-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-export-libraries","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450148540,"md5":"58dc6cea9c571b791fb7a23e56097255","name":"ros-jazzy-ament-cmake-export-interfaces","requires":[],"size":18157,"version":"2.5.3","binstar":{"package_id":"6674a1c372cb57ea62f4ab97","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"79bd194dbd58bc6e7efe255de706c8c6853faf378ab118be16c65110a5545770"},"ros-jazzy-gmock-vendor-1.14.9000-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-gtest-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450208306,"md5":"ccc82694d53949cddd5d2a6af1360aa2","name":"ros-jazzy-gmock-vendor","requires":[],"size":120010,"version":"1.14.9000","binstar":{"package_id":"6674a1c589a9c37693883dd8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3e65b87afcec12e16a00612a948a53744f8ba40977c0234bd1438241411df9d3"},"ros-jazzy-iceoryx-posh-2.0.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-iceoryx-hoofs","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450228977,"md5":"44f2c1d794458a5ab2153c006b3657c2","name":"ros-jazzy-iceoryx-posh","requires":[],"size":2174399,"version":"2.0.6","binstar":{"package_id":"6674a1c772ad0f0ae5a7ce6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ef682156a299101d7055c7baa77566d2ae1f08dcde73993fdaa123ab8012c51c"},"ros-jazzy-ament-cmake-google-benchmark-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-google-benchmark-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450500227,"md5":"1c57e4095a69b285707678de55a49f3d","name":"ros-jazzy-ament-cmake-google-benchmark","requires":[],"size":27333,"version":"2.5.3","binstar":{"package_id":"6674a213aba19321c6f4ab96","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"805bf70c2cff996a8047b6c42c45fb892e552a5ab86487e3383a6ab6b4cb8e3f"},"ros-jazzy-ament-cmake-pytest-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["pytest","python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-test","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450426504,"md5":"5a76959a5c91539692eef46b41134783","name":"ros-jazzy-ament-cmake-pytest","requires":[],"size":20216,"version":"2.5.3","binstar":{"package_id":"6674a21417bbcfe6d5579449","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"69f6a96c955fdfe1a78000c85fda091f945bc5b347d8e5278316c7f1e7b8f6ff"},"ros-jazzy-iceoryx-binding-c-2.0.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450525751,"md5":"fff1bb76dd224e3a082f08c13a436988","name":"ros-jazzy-iceoryx-binding-c","requires":[],"size":223895,"version":"2.0.6","binstar":{"package_id":"6674a21572cb57ea62f4ab99","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"09384faeedbf433a06b50820eefba96ec992e259a4faf19ba6900c443432a68d"},"ros-jazzy-ament-cmake-gtest-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["gtest","python","ros-jazzy-ament-cmake-test","ros-jazzy-gtest-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","gtest >=1.15.2,<1.15.3.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450488653,"md5":"f1c0d1ccda0f0d608c5d3904dd238115","name":"ros-jazzy-ament-cmake-gtest","requires":[],"size":20162,"version":"2.5.3","binstar":{"package_id":"6674a21d86c5f0ddff44de71","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a29a358b07837cbc242199d056b21df1acb33952f6adf5b5b9b477162f805b3f"},"ros-jazzy-ament-cmake-vendor-package-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["git","python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-export-dependencies","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vcstool","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450530661,"md5":"232d2a0ff0a4bd1677a29f6a0d014e0b","name":"ros-jazzy-ament-cmake-vendor-package","requires":[],"size":23418,"version":"2.5.3","binstar":{"package_id":"6674a21ede26c9d519883dd8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"551dddbf06e4977a975940e33563cd7b3570f0d195b321c8d2eb763aa68e9100"},"ros-jazzy-ament-lint-auto-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-test","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450574267,"md5":"82c8d318b8a3c7c2a63047709d1c7630","name":"ros-jazzy-ament-lint-auto","requires":[],"size":17506,"version":"0.17.1","binstar":{"package_id":"6674a21f52b92cb4069dbd2a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"63f9d3800d0dc7b02a85dee8b5da4ef0c8eafa1ca5466cba06bf825eda66a762"},"ros-jazzy-ament-mypy-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["mypy","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450554377,"md5":"1231034c1b74af1cc996c07631fdfe07","name":"ros-jazzy-ament-mypy","requires":[],"size":31929,"version":"0.17.1","binstar":{"package_id":"6674a2204161a5e24dc62372","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"89d4bce10811791fe04aa30c724280d749ee75577d8b78ac30b6a1f9ea9cfe7c"},"ros-jazzy-ament-pep257-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["pydocstyle","python","ros-jazzy-ament-lint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450427172,"md5":"55e60c3d7b96f07e157c81563d81634c","name":"ros-jazzy-ament-pep257","requires":[],"size":31863,"version":"0.17.1","binstar":{"package_id":"6674a221de26c9d519883dda","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8a8b76a8f54233f8b5ecef1acc4c3c6e7283da801c3988fd73349336435314ce"},"ros-jazzy-ament-cmake-gen-version-h-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450852990,"md5":"93a61f0ceb8e2f725de0054fcf20cdc1","name":"ros-jazzy-ament-cmake-gen-version-h","requires":[],"size":20295,"version":"2.5.3","binstar":{"package_id":"6674a28d7eb3630506c62372","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"46a9fa71b95ac8be9ac7797549ce624051dff4d046735b008296b3ff49edd097"},"ros-jazzy-ament-cmake-gmock-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["gmock","python","ros-jazzy-ament-cmake-gtest","ros-jazzy-ament-cmake-test","ros-jazzy-gmock-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451083961,"md5":"c625b43dd85693573f8f05a4a6daeb1f","name":"ros-jazzy-ament-cmake-gmock","requires":[],"size":20408,"version":"2.5.3","binstar":{"package_id":"6674a290c650598af657944a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bc717ae57421264b65352cf150c7df4462b6f003953b3cb9761360c28c42449c"},"ros-jazzy-ament-copyright-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["importlib-metadata","python","ros-jazzy-ament-lint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736450782251,"md5":"9e0351ee7c871a53c443720dcd72d066","name":"ros-jazzy-ament-copyright","requires":[],"size":71483,"version":"0.17.1","binstar":{"package_id":"6674a291a2d10e383ff4ab9d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5dd7fea9d4628c9831ea925a314ab5c9a6ebaa23a0bde94ea7ccd91991878bf8"},"ros-jazzy-cyclonedds-0.10.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["openssl","python","ros-jazzy-iceoryx-binding-c","ros-jazzy-iceoryx-hoofs","ros-jazzy-iceoryx-posh","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","openssl >=3.4.0,<4.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451104783,"md5":"13cc767a8679cd7f160f60a39411ca4d","name":"ros-jazzy-cyclonedds","requires":[],"size":1090195,"version":"0.10.5","binstar":{"package_id":"6674a293cc5a7c2475f4ab97","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"42301b7b73dbd46da7752a5975b6036c6cc7bee7e4ede742fdac5ba772797f41"},"ros-jazzy-ament-clang-format-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["clang-format","python","pyyaml","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451374463,"md5":"81d1e3e202095187a8d182bb2ddf209e","name":"ros-jazzy-ament-clang-format","requires":[],"size":35570,"version":"0.17.1","binstar":{"package_id":"6674a2dcee500a2b2d1922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9913b43850aeb14432ea95d9191db1682255e879450c596fe06a4d9ff30cf2cb"},"ros-jazzy-ament-index-python-1.8.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451299652,"md5":"0fc5a9e226773cd5c136d236336f1512","name":"ros-jazzy-ament-index-python","requires":[],"size":34401,"version":"1.8.1","binstar":{"package_id":"6674a2de3ebd9bb417c12e4b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"435251669bfd617bbb61222d017528dd34082824a271a200c4c8f44cf73708c9"},"ros-jazzy-domain-coordinator-0.12.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451355655,"md5":"ec38cf1b07441fe9f272ef1a9ac9b36a","name":"ros-jazzy-domain-coordinator","requires":[],"size":17610,"version":"0.12.0","binstar":{"package_id":"6674a2df1940d61b8344de70","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e98339d6e47778a79786eef054925ba79181403d6e1b49de7948a05c1aa73a46"},"ros-jazzy-ament-cmake-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["cmake","python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-export-definitions","ros-jazzy-ament-cmake-export-dependencies","ros-jazzy-ament-cmake-export-include-directories","ros-jazzy-ament-cmake-export-interfaces","ros-jazzy-ament-cmake-export-libraries","ros-jazzy-ament-cmake-export-link-flags","ros-jazzy-ament-cmake-export-targets","ros-jazzy-ament-cmake-gen-version-h","ros-jazzy-ament-cmake-libraries","ros-jazzy-ament-cmake-python","ros-jazzy-ament-cmake-target-dependencies","ros-jazzy-ament-cmake-test","ros-jazzy-ament-cmake-version","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451327423,"md5":"bda5a2b039e918ed8727d38979af27fd","name":"ros-jazzy-ament-cmake","requires":[],"size":18752,"version":"2.5.3","binstar":{"package_id":"6674a2eda2d10e383ff4ab9f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c34c772b7669c1836cb7f020503cecc2b733ea53332d7a5857dbc9068fc59ac5"},"ros-jazzy-ament-cppcheck-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["cppcheck","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451411304,"md5":"73324aa5abff5963c1c63af1b36fdc97","name":"ros-jazzy-ament-cppcheck","requires":[],"size":34960,"version":"0.17.1","binstar":{"package_id":"6674a2ee7aab843f03579451","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e3be27b47661a84e2ef94dd257b02351c8c533d72d6d5ed8358df6bca8c3d0be"},"ros-jazzy-ament-cpplint-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451387825,"md5":"66401188ae5eea12b57fd666602728cb","name":"ros-jazzy-ament-cpplint","requires":[],"size":185262,"version":"0.17.1","binstar":{"package_id":"6674a2eff3b3829c06f4ab96","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2ab8343c640c5b08426f6ee3d54bffeef29c56708a84676bf5ca863f1fcddc40"},"ros-jazzy-ament-lint-cmake-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451276158,"md5":"7e6755abd5ddebd199e77eed67e3c5af","name":"ros-jazzy-ament-lint-cmake","requires":[],"size":45297,"version":"0.17.1","binstar":{"package_id":"6674a2f1e9156fea239d9855","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bcacdbb1aee067fd3cd0a422a6cb31ec0bd515b6e0a5b827a095359e16761013"},"ros-jazzy-ament-xmllint-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["libxml2","python","ros-jazzy-ament-lint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451364927,"md5":"67d499de4c5b4264cd68d7cb9a1aa0df","name":"ros-jazzy-ament-xmllint","requires":[],"size":32964,"version":"0.17.1","binstar":{"package_id":"6674a2f2c88619e4bd9d9855","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"45e07fe0d2439c2c4371edc70ca9f326ce2284eb09bb966b329bedf6d9205131"},"ros-jazzy-pybind11-vendor-3.1.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["pybind11","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451601722,"md5":"705ed8378f0e88ebb31c5a8b1b63395e","name":"ros-jazzy-pybind11-vendor","requires":[],"size":18620,"version":"3.1.2","binstar":{"package_id":"6674a343ea2199b4dff4ab97","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d45286c67d92fc2f9d9318d1308343170bb09fbdd09ab77421b1f9a0833f5030"},"ros-jazzy-rpyutils-0.4.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451533958,"md5":"48179eaeb90092f36e4a54414e040bee","name":"ros-jazzy-rpyutils","requires":[],"size":18892,"version":"0.4.1","binstar":{"package_id":"6674a3449d4c1e9d4f44de6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"05a404b9869ce70e51a0115aad1e32edfcaade7c31071f40987044cd2c4b98ad"},"ros-jazzy-tinyxml2-vendor-0.9.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","tinyxml2","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","tinyxml2 >=10.0.0,<11.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451666090,"md5":"1681e70c3e6c762bd8a3274cdd64b3df","name":"ros-jazzy-tinyxml2-vendor","requires":[],"size":19479,"version":"0.9.1","binstar":{"package_id":"6674a349598bb36cab57944c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f0d6b64dd8b21c9b9b61e43db8f86c78c62c0353c38ba23411747f0d5aa69cc2"},"ros-jazzy-ament-cmake-auto-2.5.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ament-cmake-gmock","ros-jazzy-ament-cmake-gtest","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451506229,"md5":"f574823a4ebfcd341f13cfe926cba577","name":"ros-jazzy-ament-cmake-auto","requires":[],"size":22591,"version":"2.5.3","binstar":{"package_id":"6674a34992c307f5a7a7ce6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e02fea908e0943a0de6080b039a6b75a6b4bc8e2ea571e648d5e5c5a4d69d2ef"},"ros-jazzy-yaml-cpp-vendor-9.0.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","yaml-cpp","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","yaml-cpp >=0.8.0,<0.9.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451692999,"md5":"d45ed66753071abe52a401275926be38","name":"ros-jazzy-yaml-cpp-vendor","requires":[],"size":18606,"version":"9.0.1","binstar":{"package_id":"6674a34abfe0729017c62374","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8a150174d01daeea3549511c88d4b313c38f2b16f16c6bd057b1a58520db15a0"},"ros-jazzy-liblz4-vendor-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["lz4","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451543799,"md5":"eaf3384872ed9d4ae19067aed6a2c4b1","name":"ros-jazzy-liblz4-vendor","requires":[],"size":19502,"version":"0.26.6","binstar":{"package_id":"6674a34bb60870276744de75","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"188ccdecf2013b7405980dceca6c68b4819537685e0a874ef653083c1dbe5464"},"ros-jazzy-zstd-vendor-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","zstd","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","zstd >=1.5.6,<1.6.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451723740,"md5":"456c393a92645a2264ee442127352a7b","name":"ros-jazzy-zstd-vendor","requires":[],"size":19302,"version":"0.26.6","binstar":{"package_id":"6674a34dc42c2ed11157944f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"edbcc5b4d031fc9c155a35399c7cbe4f3253eb334b9172e2535f6563320f1750"},"ros-jazzy-sqlite3-vendor-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","sqlite","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","libsqlite >=3.47.2,<4.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451615056,"md5":"a75e0db100f52d37fc396c88937a2a85","name":"ros-jazzy-sqlite3-vendor","requires":[],"size":19949,"version":"0.26.6","binstar":{"package_id":"6674a34ffce8b5e8a96af057","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"43053a61acf0db0e827a43331873f3ff41bec9c069a66f7f9cdeb703f6fa7ac0"},"ros-jazzy-ament-cmake-lint-cmake-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-lint-cmake","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451503317,"md5":"8d2622a2f169761eee63dc7c5c88a9a9","name":"ros-jazzy-ament-cmake-lint-cmake","requires":[],"size":17841,"version":"0.17.1","binstar":{"package_id":"6674a379b5589307ae1922c7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fdbd382de3bdac942759aaa0df0de31dfcf146def9e2eb84777a12f6985f8101"},"ros-jazzy-fastcdr-2.2.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451744069,"md5":"6f08ac8f2b5ffbfe470379fd410320ce","name":"ros-jazzy-fastcdr","requires":[],"size":92401,"version":"2.2.5","binstar":{"package_id":"6674a37cbedcf6d9e79d9859","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6f8bd9dfef26a84e80ec3a92a61317507bf1e2d74f395f10666f45439add8c30"},"ros-jazzy-launch-3.4.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["importlib-metadata","lark-parser","python","pyyaml","ros-jazzy-ament-index-python","ros-jazzy-osrf-pycommon","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451698238,"md5":"85ff76cfd50c99468b6b8b3dea25cd75","name":"ros-jazzy-launch","requires":[],"size":235375,"version":"3.4.3","binstar":{"package_id":"6674a37ff1e91f8ddc6af059","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f6b19232a61695e706fe23f0fa05718e995d39ed0776794d26ada3ab619284a4"},"ros-jazzy-rosidl-cli-4.6.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["argcomplete","importlib-metadata","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451722451,"md5":"0cad6709ad44255d9239ae95d758d5b7","name":"ros-jazzy-rosidl-cli","requires":[],"size":43640,"version":"4.6.5","binstar":{"package_id":"6674a38184d8e3c9b344de79","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7c3aeb15c7db3178b9f460a18dcf924f97a5407fbd31b0736fe7f1a5e048831b"},"ros-jazzy-uncrustify-vendor-3.0.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","uncrustify","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","uncrustify >=0.74.0,<0.75.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451563744,"md5":"2b3378be8966d9bdb725b11a006e0cdf","name":"ros-jazzy-uncrustify-vendor","requires":[],"size":455831,"version":"3.0.0","binstar":{"package_id":"6674a38358ad9e4bfa9d9857","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"653fdd28fbb739e79ab9b70e7ec0fd7caa5aaf15abfc67143b1c1fa00b9c66fc"},"ros-jazzy-ament-cmake-copyright-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-copyright","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451951729,"md5":"0b5f5bd042215a1ea66edcdde8aea35d","name":"ros-jazzy-ament-cmake-copyright","requires":[],"size":18183,"version":"0.17.1","binstar":{"package_id":"6674a3f11940d61b8344de72","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d4bccebed9b9c66a3c20cd93dd6f524eeaafde318b89e0e6c7fa82d9f90a8a97"},"ros-jazzy-ament-uncrustify-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-uncrustify-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452065931,"md5":"ccb1e815f667bd31c7cbef810a1c6fbe","name":"ros-jazzy-ament-uncrustify","requires":[],"size":75042,"version":"0.17.1","binstar":{"package_id":"6674a3f2b5589307ae1922c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"07c6de04bd63eea6058e38ffd1dda4593c89cbce1a2d182e675508ae1b243983"},"ros-jazzy-launch-xml-3.4.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-launch","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452116469,"md5":"4026925f6223b07c132c52fb07e0de79","name":"ros-jazzy-launch-xml","requires":[],"size":22579,"version":"3.4.3","binstar":{"package_id":"6674a3f4bcb5ffd4511922bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"670f97b4d222f27906bfd648c9b96e264943e3f0c29f13d127923186c5331235"},"ros-jazzy-launch-yaml-3.4.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-launch","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452093708,"md5":"0733dae683a8448f636f393ce8fd0f28","name":"ros-jazzy-launch-yaml","requires":[],"size":23198,"version":"3.4.3","binstar":{"package_id":"6674a3f58eba59d71d44de71","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2941cb29a2ae2672f0ff993af0aff81de6ba70cd7e2361848835e83b5fb07094"},"ros-jazzy-mcap-vendor-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-liblz4-vendor","ros-jazzy-ros-workspace","ros-jazzy-zstd-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452135468,"md5":"aa43490b90f48810be0dcccf35e0f356","name":"ros-jazzy-mcap-vendor","requires":[],"size":163496,"version":"0.26.6","binstar":{"package_id":"6674a3f7b4d9bfd6ec579457","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"679f56ed4003d8a8c0efa7e99acafbf527cb7cf65850f87851b427e3b155cc55"},"ros-jazzy-ament-cmake-clang-format-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-clang-format","ros-jazzy-ament-cmake-test","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452466070,"md5":"e13bc4a704972e443f68863b28fe8d5c","name":"ros-jazzy-ament-cmake-clang-format","requires":[],"size":18857,"version":"0.17.1","binstar":{"package_id":"6674a446c88619e4bd9d985a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"90a9a52da5bee2382e84181ae66be2985ad8e3af50ffdf87d68fd83c234caa8a"},"ros-jazzy-ament-cmake-cppcheck-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-test","ros-jazzy-ament-cppcheck","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452331235,"md5":"de84c3bb05118ad55afb1de2f6a3dd93","name":"ros-jazzy-ament-cmake-cppcheck","requires":[],"size":19799,"version":"0.17.1","binstar":{"package_id":"6674a447c168245e946af059","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a7c75197c415e4a0ae611d51e5e79e3da7ec29f82020c51aaaf5bfeddfbbfc41"},"ros-jazzy-eigen3-cmake-module-0.3.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452433862,"md5":"6401cb4dd2e0fc810a2ede97ec2d3ab5","name":"ros-jazzy-eigen3-cmake-module","requires":[],"size":19005,"version":"0.3.0","binstar":{"package_id":"6674a4489005ffd21cc62370","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"50b0c611b9351df3c2c8d6e5ab40972796d03db523c9b26d4175d6dca4d0b4ad"},"ros-jazzy-launch-testing-3.4.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["pytest","python","ros-jazzy-ament-index-python","ros-jazzy-launch","ros-jazzy-launch-xml","ros-jazzy-launch-yaml","ros-jazzy-osrf-pycommon","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452407406,"md5":"16f46ddb7223f2fe8f43e0b0a8e903c3","name":"ros-jazzy-launch-testing","requires":[],"size":123698,"version":"3.4.3","binstar":{"package_id":"6674a44a8c7b2f8b2ca7ce72","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f989a9a626f3298aeeec4a5bc28116f7113bf333b282291ac097064a427266e5"},"ros-jazzy-ament-cmake-cpplint-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-cpplint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452523589,"md5":"a5255821f8ba0d6f2a7c22ba4813fa0d","name":"ros-jazzy-ament-cmake-cpplint","requires":[],"size":18801,"version":"0.17.1","binstar":{"package_id":"6674a44d526ed064dbc62376","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3b9f0ba31a0bc21f0c552ef85c383ff92aa745471edd9b9379b80e7a7ce03277"},"ros-jazzy-ament-cmake-flake8-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-flake8","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452499591,"md5":"e013cd5724e9e1d3d996d5486acae13b","name":"ros-jazzy-ament-cmake-flake8","requires":[],"size":19881,"version":"0.17.1","binstar":{"package_id":"6674a44fe339ff3360579449","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"99a36454e459ab9b8405bef09d63107d84ac221fc4a83597826334a5e9acf687"},"ros-jazzy-ament-cmake-pep257-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-pep257","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452477005,"md5":"ec3e418b16d75a5a51c9c656ca7fd737","name":"ros-jazzy-ament-cmake-pep257","requires":[],"size":18593,"version":"0.17.1","binstar":{"package_id":"6674a450cc5a7c2475f4ab99","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"eb450dcee9e804aa6e5b3a614ac81d0598bbe7f093e209c169771823a2e687f2"},"ros-jazzy-ament-cmake-uncrustify-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-uncrustify","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452451445,"md5":"fe9db13862969ab135594267f91a435c","name":"ros-jazzy-ament-cmake-uncrustify","requires":[],"size":19199,"version":"0.17.1","binstar":{"package_id":"6674a451dbc9a5ddb557944c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b9bfc4a08e199c0fbc60c6871b42c500971f3f9da14e3d35b3d86537ad4945a8"},"ros-jazzy-ament-cmake-xmllint-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ament-xmllint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452378774,"md5":"f397afb1bf493069b4380adc02b554e6","name":"ros-jazzy-ament-cmake-xmllint","requires":[],"size":18376,"version":"0.17.1","binstar":{"package_id":"6674a452bb59b798ed1922c1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"107512c1581c1105b1539622437c357033fbdd04ae6680b61273ba3c1e713e43"},"ros-jazzy-ament-lint-common-0.17.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-copyright","ros-jazzy-ament-cmake-core","ros-jazzy-ament-cmake-cppcheck","ros-jazzy-ament-cmake-cpplint","ros-jazzy-ament-cmake-flake8","ros-jazzy-ament-cmake-lint-cmake","ros-jazzy-ament-cmake-pep257","ros-jazzy-ament-cmake-uncrustify","ros-jazzy-ament-cmake-xmllint","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452627473,"md5":"23ced00b4554432cb2a3d8f7e5e2fd65","name":"ros-jazzy-ament-lint-common","requires":[],"size":17798,"version":"0.17.1","binstar":{"package_id":"6674a48ff976b474bef4aba0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1b61f0e253f87af4fd7302e2f0a181afbae88c29216718c24b26ee2e86983682"},"ros-jazzy-foonathan-memory-vendor-1.3.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["cmake","foonathan-memory","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","foonathan-memory >=0.7.3,<0.7.4.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452691551,"md5":"5e8fb011689c531ddb45de2104cd135a","name":"ros-jazzy-foonathan-memory-vendor","requires":[],"size":16208,"version":"1.3.1","binstar":{"package_id":"6674a491c42c2ed111579458","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4cb1eab9ca6eea199cdb922a34ef480ba96280649ccb986bdebb0dd43659cf5b"},"ros-jazzy-ament-index-cpp-1.8.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453309501,"md5":"c4dcf0ca892ded19f6e87fc1160949b7","name":"ros-jazzy-ament-index-cpp","requires":[],"size":48314,"version":"1.8.1","binstar":{"package_id":"6674a4dc1940d61b8344de74","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b6311a766b0e7dd15e82b919c4a01e392433135588a1c39c84151aa34b497581"},"ros-jazzy-keyboard-handler-0.3.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453406018,"md5":"90b02b6d5315983639e583d3762e1703","name":"ros-jazzy-keyboard-handler","requires":[],"size":50869,"version":"0.3.1","binstar":{"package_id":"6674a4ddbfe0729017c62376","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6698633ff6380dc5088078998c092b83b7221b168c47ddd40e338c1fbc8e7531"},"ros-jazzy-orocos-kdl-vendor-0.5.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["eigen","orocos-kdl","python","ros-jazzy-eigen3-cmake-module","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","orocos-kdl >=1.5.1,<1.6.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453579640,"md5":"f4141f90681b26468b60bd6c821548b6","name":"ros-jazzy-orocos-kdl-vendor","requires":[],"size":23081,"version":"0.5.1","binstar":{"package_id":"6674a4deb5589307ae1922cf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"65f520c51113a7d1e57854289eebb66e33ac1c6d9feaf88f4fbe002fc9941648"},"ros-jazzy-spdlog-vendor-1.6.1-np126py311h1c95eb5_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h1c95eb5_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","spdlog","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","spdlog >=1.14.1,<1.15.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453414996,"md5":"1bf39af4378aa02d086c2313bd77de7f","name":"ros-jazzy-spdlog-vendor","requires":[],"size":22273,"version":"1.6.1","binstar":{"package_id":"6674a4e0ea8f365444c62374","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6879b1040c11e61644f23c61ccd7c31260cdd020bbea899bdf0eebcd41f22725"},"ros-jazzy-ament-cmake-ros-0.12.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ament-cmake-gmock","ros-jazzy-ament-cmake-gtest","ros-jazzy-ament-cmake-pytest","ros-jazzy-domain-coordinator","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453413001,"md5":"79008811637a5f2e0dd37fd30d104067","name":"ros-jazzy-ament-cmake-ros","requires":[],"size":26445,"version":"0.12.0","binstar":{"package_id":"6674a554d25c322a2e1922c1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"51ae4a8e96d80a36ee83444e9dcf7a2d08b1a25bd4996ee8f20ac39d471c67fc"},"ros-jazzy-mimick-vendor-0.6.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453363163,"md5":"d2f2f81ae2bd3224185d0b8a20a0a404","name":"ros-jazzy-mimick-vendor","requires":[],"size":53058,"version":"0.6.2","binstar":{"package_id":"6674a555d25c322a2e1922c3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"781e9ea7059c9c33f1735d45f669624b88bf31fc2d5d7db67fb3ac444fcd51fc"},"ros-jazzy-performance-test-fixture-0.2.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-google-benchmark","ros-jazzy-google-benchmark-vendor","ros-jazzy-osrf-testing-tools-cpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453328670,"md5":"1d4420f7f5246e3ae9b302d5e34675f9","name":"ros-jazzy-performance-test-fixture","requires":[],"size":35551,"version":"0.2.1","binstar":{"package_id":"6674a557d25c322a2e1922c5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9b0bf411497ba26e91931ec2852408fd4a00677a5dc876691df8caf19f8edf5a"},"ros-jazzy-python-cmake-module-0.11.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453235151,"md5":"8b097ac658ee3024c241d54253898690","name":"ros-jazzy-python-cmake-module","requires":[],"size":22936,"version":"0.11.1","binstar":{"package_id":"6674a559ea2199b4dff4ab9b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b65f6c5bab3fc1de83b770a98c8c99e38d65ba1fe61cb392c0c90f761bcf05d0"},"ros-jazzy-rosidl-adapter-4.6.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["empy","python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros-jazzy-rosidl-cli","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453299102,"md5":"861a396b0d1e03dd7fd206f2fdd40940","name":"ros-jazzy-rosidl-adapter","requires":[],"size":60528,"version":"4.6.5","binstar":{"package_id":"6674a55bea2199b4dff4ab9d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f5ee40fb2d4d95103b21ea37bff38524a5ca35fbba75e9ef2c65356246c73820"},"ros-jazzy-fastrtps-cmake-module-3.6.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453466373,"md5":"562a4043abfd1e146fe906939d719131","name":"ros-jazzy-fastrtps-cmake-module","requires":[],"size":22549,"version":"3.6.1","binstar":{"package_id":"66751ecca31ee1457760efa8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"59b166d32e35c7e4819f99349429f5096786621cbe35c7cf02bd3c6c121b0b03"},"ros-jazzy-launch-testing-ament-cmake-3.4.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-launch-testing","ros-jazzy-python-cmake-module","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454132952,"md5":"a37601963fae5d8cbf7924501409d533","name":"ros-jazzy-launch-testing-ament-cmake","requires":[],"size":22465,"version":"3.4.3","binstar":{"package_id":"66751ece6b847cafe64ef2b0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"24b7bd6976817d4878f387830299a0ded30213104b875e2b2fbf84ff00dd69e8"},"ros-jazzy-rosidl-parser-4.6.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["lark-parser","python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-adapter","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454277363,"md5":"23e39a16f8586f4e2753c4250375d99e","name":"ros-jazzy-rosidl-parser","requires":[],"size":56943,"version":"4.6.5","binstar":{"package_id":"66751ed4f4ee0bdb121f4589","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"75e11ee02341201a71e4e122619ddf8eeba3f77ba6f8e4bdeb8d55d0027559da"},"ros-jazzy-rosidl-typesupport-interface-4.6.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453235146,"md5":"d8601a58b06a75ce8fe62b95718a3db3","name":"ros-jazzy-rosidl-typesupport-interface","requires":[],"size":24429,"version":"4.6.5","binstar":{"package_id":"66751ed536bdc0d98eb325f5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a70503bae3f221f46e16695989b83c1afd4342fa307a6a926fd000bd75d4e114"},"ros-jazzy-console-bridge-vendor-1.7.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["console_bridge","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","console_bridge >=1.0.2,<1.1.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454369515,"md5":"aee57d42af7995f0d9cadcfabf191cb9","name":"ros-jazzy-console-bridge-vendor","requires":[],"size":25169,"version":"1.7.1","binstar":{"package_id":"66751f27a116811e5e8312ce","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5dbfaaa862e7dd8d7f8bd85b33499b550c0529bf0d3725d240974de81dfc1285"},"ros-jazzy-urdf-parser-plugin-2.10.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-urdfdom-headers","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454188136,"md5":"7a25b3216908fbdbddc75b8913fa8323","name":"ros-jazzy-urdf-parser-plugin","requires":[],"size":27137,"version":"2.10.0","binstar":{"package_id":"66751f28bb9bcc31bda376b8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c4401165d8365c453e7d7ea7ebd4452e8046e193ac4953c23f8b0a5e3322a49b"},"ros-jazzy-fastrtps-2.14.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["openssl","python","ros-jazzy-fastcdr","ros-jazzy-foonathan-memory-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","tinyxml2","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","tinyxml2 >=10.0.0,<11.0a0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","openssl >=3.4.0,<4.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453495501,"md5":"1fc2ba608fbe677b2af0dbbfa9ceac77","name":"ros-jazzy-fastrtps","requires":[],"size":3082393,"version":"2.14.4","binstar":{"package_id":"667520521ae390792a55e120","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6c08efbd307e986d4e578b91847c0c737b7af8a9e462b30b31131455236bdb55"},"ros-jazzy-libyaml-vendor-1.6.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["pkg-config","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","yaml","yaml-cpp","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","yaml-cpp >=0.8.0,<0.9.0a0","yaml >=0.2.5,<0.3.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454337519,"md5":"22d925d2039c2bf91cabada4e1fd4260","name":"ros-jazzy-libyaml-vendor","requires":[],"size":24794,"version":"1.6.3","binstar":{"package_id":"6675205301afc569e3b325f9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7f5117b5c786a45bce56784467e88066a54917d3e3f95c10d00b38d7635edb27"},"ros-jazzy-rmw-implementation-cmake-7.3.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453973049,"md5":"8abde7018eb7326b8db8806d602f577a","name":"ros-jazzy-rmw-implementation-cmake","requires":[],"size":24545,"version":"7.3.1","binstar":{"package_id":"6675205401afc569e3b325fd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c88d67c5319999b8a08781bdc64bc801047a53b757dc0440395fe906f674340e"},"ros-jazzy-rti-connext-dds-cmake-module-0.22.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453947974,"md5":"39ea3e45456eee26fa2a8ee54e7fa7e5","name":"ros-jazzy-rti-connext-dds-cmake-module","requires":[],"size":26711,"version":"0.22.0","binstar":{"package_id":"66752055fcacfe3dc8a376b6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8c65ac92a2f06b0902846ee1df214dfb983a3fb53053bec921471d9144fe9a9e"},"ros-jazzy-tracetools-8.2.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454308650,"md5":"f5b07edb4d338252a73bb7c98b2e2f63","name":"ros-jazzy-tracetools","requires":[],"size":30085,"version":"8.2.3","binstar":{"package_id":"66752056a12613151f4ef2b3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d938c2aafabd607ca2aa68688c9fd257a16832be79aa84c4e361da575c0888ec"},"ros-jazzy-rcutils-6.7.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454660307,"md5":"36b0bef428287f1ee8e8c33ca4eca952","name":"ros-jazzy-rcutils","requires":[],"size":125388,"version":"6.7.2","binstar":{"package_id":"66755346ab8e4fb8a751162a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f9a1c74031cd248edee144ead99d6d168c951bea864959f6ef5aaef066173f5e"},"ros-jazzy-rosidl-generator-type-description-4.6.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-index-python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-cli","ros-jazzy-rosidl-parser","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454776094,"md5":"9b429562943f8afc7843f14afa56508d","name":"ros-jazzy-rosidl-generator-type-description","requires":[],"size":42436,"version":"4.6.5","binstar":{"package_id":"66755347c51310fb1549e819","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d48421217cf8a6cdf6d4f65ea5c111220834d280a18f44404ec47c095b340c7c"},"ros-jazzy-rosidl-pycommon-4.6.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-parser","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454755636,"md5":"68d94f8e05cd5c3757cafe7c15ac8b3a","name":"ros-jazzy-rosidl-pycommon","requires":[],"size":22845,"version":"4.6.5","binstar":{"package_id":"6675534819531b40f8fc97bc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d4f3c9b1c071f7d03a5637cc2999b88f01d331186a1d5146132850d8663e702d"},"ros-jazzy-urdfdom-4.0.1-h9490d1a_0.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"h9490d1a_0","build_number":0,"depends":["urdfdom ==4.0.1","python 3.11.* *_cpython"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449445190,"md5":"2cb0b39d8c64b9e51ee96b950d46ba48","name":"ros-jazzy-urdfdom","requires":[],"size":1807,"version":"4.0.1","binstar":{"package_id":"66755349942fb586b6f7dda3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"58434837c64f0b508afecf92a7fd164ecc228598a07ac87f708437471e0c7a58"},"ros-jazzy-rcpputils-2.11.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455250344,"md5":"64fd74758fedcb4da8225f04a9bbfa8e","name":"ros-jazzy-rcpputils","requires":[],"size":83323,"version":"2.11.1","binstar":{"package_id":"6675538f676399c626e81bb3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"24983192ffcb8c580b85325b64a984a4aa350b882d303df7957e931823a53768"},"ros-jazzy-rosidl-cmake-4.6.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["empy","python","ros-jazzy-ament-cmake","ros-jazzy-ros-workspace","ros-jazzy-rosidl-pycommon","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455226058,"md5":"1d9ee35b74db1f4c9c826a3e47ee98e5","name":"ros-jazzy-rosidl-cmake","requires":[],"size":30433,"version":"4.6.5","binstar":{"package_id":"667553906512ff23e2fc97bc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8d823d47d142773e34e10b9207c7e7a0a9efb6d2fa3f0c06648fcb59e7b75f7f"},"ros-jazzy-rosidl-runtime-c-4.6.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-typesupport-interface","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455130218,"md5":"5766ae56ef668683a979d02bf213b812","name":"ros-jazzy-rosidl-runtime-c","requires":[],"size":84782,"version":"4.6.5","binstar":{"package_id":"66755391efbad63bca80da64","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"89e8b4ad61e8757ff8cd5661c2afd1a50e041c5e5085eefb02450deef7e0acdb"},"ros-jazzy-class-loader-2.7.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["console_bridge","python","ros-jazzy-console-bridge-vendor","ros-jazzy-rcpputils","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","console_bridge >=1.0.2,<1.1.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455814735,"md5":"406bf3741b8d7a4dabaa0d1df44aff90","name":"ros-jazzy-class-loader","requires":[],"size":67873,"version":"2.7.0","binstar":{"package_id":"667553ef3603e75bcd80da64","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e500567c292466d7f0f66d664213a28eaa2246fcb7564e3b0a01cad42b30798f"},"ros-jazzy-rcl-logging-interface-3.1.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455785967,"md5":"438544fec945fc91b81237821153b49b","name":"ros-jazzy-rcl-logging-interface","requires":[],"size":33680,"version":"3.1.1","binstar":{"package_id":"667553f1a3a2cd9e2eba03f9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"27f8b4b84fd391f13052b4d9bbc2f79ad75221f73b36f541a46375157f763372"},"ros-jazzy-rosidl-dynamic-typesupport-0.1.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-c","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455757884,"md5":"8420655d49a61a4a20c4f2e181f9b9ad","name":"ros-jazzy-rosidl-dynamic-typesupport","requires":[],"size":64762,"version":"0.1.2","binstar":{"package_id":"667553f3f6fec850abba03f0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1ad1920d6aad1becdc3e2daa9252faddedc827de1fcfda047fba9cf08fdc6a8b"},"ros-jazzy-rosidl-generator-c-4.6.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-index-python","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-cli","ros-jazzy-rosidl-cmake","ros-jazzy-rosidl-generator-type-description","ros-jazzy-rosidl-parser","ros-jazzy-rosidl-pycommon","ros-jazzy-rosidl-typesupport-interface","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455729585,"md5":"bb94f8beb18cb13c382c35af7639cf3e","name":"ros-jazzy-rosidl-generator-c","requires":[],"size":48599,"version":"4.6.5","binstar":{"package_id":"667553f4b065f00167fc97bd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6d31589c1d77509f97053b99ceb80c2f91858e8f3ed7248ace6e6df15e0aced1"},"ros-jazzy-rosidl-runtime-cpp-4.6.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-c","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455656110,"md5":"c73c035fb64f0d986fb9e64434eb2675","name":"ros-jazzy-rosidl-runtime-cpp","requires":[],"size":36164,"version":"4.6.5","binstar":{"package_id":"667553f6b7dd65cd7bf7dd98","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"32b6a4a35575929525833d6c71ed0b06a73fd2f76881312583200fb428c4374f"},"ros-jazzy-pluginlib-5.4.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-class-loader","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-tinyxml2-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736456484202,"md5":"c7733ac8ab0b85531afca88ac382fbf9","name":"ros-jazzy-pluginlib","requires":[],"size":36663,"version":"5.4.2","binstar":{"package_id":"6675543033804386eeba03e9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"884ca1acb6c72502adfa1d2e5f2e19fa1e35bee1a441640c0c1ca3159a737af1"},"ros-jazzy-rcl-logging-spdlog-3.1.1-np126py311h1c95eb5_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h1c95eb5_1","build_number":1,"depends":["python","ros-jazzy-rcl-logging-interface","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-spdlog-vendor","ros2-distro-mutex 0.6.* jazzy_*","spdlog","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","spdlog >=1.14.1,<1.15.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736456621162,"md5":"caa5dd2bdd98c46f62c680bb60a0b87b","name":"ros-jazzy-rcl-logging-spdlog","requires":[],"size":45695,"version":"3.1.1","binstar":{"package_id":"6675545679a1e1da3ef7dd8f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e0d58ebf1ca578abf1a45accf43f8d42d635101c36b33963b342050b33085881"},"ros-jazzy-rmw-7.3.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-dynamic-typesupport","ros-jazzy-rosidl-runtime-c","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736456520267,"md5":"181f90126a916b76cefd72376d377810","name":"ros-jazzy-rmw","requires":[],"size":97184,"version":"7.3.1","binstar":{"package_id":"6675545733804386eeba03eb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7aaa61905f9f4fcf1f11ca682efa942138e9ab66182957e0033209e2426b8f6c"},"ros-jazzy-rosidl-dynamic-typesupport-fastrtps-0.1.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-fastcdr","ros-jazzy-fastrtps","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-dynamic-typesupport","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736456581522,"md5":"d3ee85f81b25e9b1894fb2fc2b18e715","name":"ros-jazzy-rosidl-dynamic-typesupport-fastrtps","requires":[],"size":79036,"version":"0.1.0","binstar":{"package_id":"6675545817cc4891dbba03f2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"718086e461e3cb0ec4df0f6725cac01ca06d33f9b56254d665910bc022799b23"},"ros-jazzy-rosidl-generator-cpp-4.6.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-index-python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-cli","ros-jazzy-rosidl-cmake","ros-jazzy-rosidl-generator-c","ros-jazzy-rosidl-generator-type-description","ros-jazzy-rosidl-parser","ros-jazzy-rosidl-pycommon","ros-jazzy-rosidl-runtime-cpp","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736456435553,"md5":"6a156b7f867ef06c4761f0387c9fe25b","name":"ros-jazzy-rosidl-generator-cpp","requires":[],"size":45353,"version":"4.6.5","binstar":{"package_id":"6675545ae15bbbf909ba03ea","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b05355e8d587ffa7329db8472bf2dbb00e7e1ae6baec1d4891581481e3edecf4"},"ros-jazzy-rosidl-typesupport-introspection-c-4.6.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ament-index-python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-cli","ros-jazzy-rosidl-cmake","ros-jazzy-rosidl-generator-c","ros-jazzy-rosidl-parser","ros-jazzy-rosidl-pycommon","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-typesupport-interface","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736456551660,"md5":"0314de59a6e7cf5ac3fbe339b77dde38","name":"ros-jazzy-rosidl-typesupport-introspection-c","requires":[],"size":46831,"version":"4.6.5","binstar":{"package_id":"6675545bc61e8fdedffc97bb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3f0ba91f341c6f5c1f0cb45ba153ec0c0ad83935a8747d9fb292c1e0d7a90367"},"ros-jazzy-rcl-yaml-param-parser-9.2.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-libyaml-vendor","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","yaml","yaml-cpp","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","yaml >=0.2.5,<0.3.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","yaml-cpp >=0.8.0,<0.9.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736457202645,"md5":"89c520fb006e6a7de7497b9f18fa2bf0","name":"ros-jazzy-rcl-yaml-param-parser","requires":[],"size":50909,"version":"9.2.4","binstar":{"package_id":"667554b228e9267efdfc97bc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2f82af9a0b26860c4e978350321a3d1eb6f95bbaca93808dc611e8beb3ba8630"},"ros-jazzy-rosidl-typesupport-fastrtps-cpp-3.6.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-ros","ros-jazzy-ament-index-python","ros-jazzy-fastcdr","ros-jazzy-fastrtps-cmake-module","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-rosidl-cli","ros-jazzy-rosidl-generator-c","ros-jazzy-rosidl-generator-cpp","ros-jazzy-rosidl-pycommon","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-runtime-cpp","ros-jazzy-rosidl-typesupport-interface","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736457065854,"md5":"e0ac763e1ef8bbf9ff66e173e4d3d2e9","name":"ros-jazzy-rosidl-typesupport-fastrtps-cpp","requires":[],"size":51799,"version":"3.6.1","binstar":{"package_id":"667554b4d66865331cba03f4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"094b4223b448efb6c8f9f7b375a28c3d88813e9772eca90d4b6263f55e6abcff"},"ros-jazzy-rosidl-typesupport-introspection-cpp-4.6.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ament-index-python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-cli","ros-jazzy-rosidl-cmake","ros-jazzy-rosidl-generator-c","ros-jazzy-rosidl-generator-cpp","ros-jazzy-rosidl-parser","ros-jazzy-rosidl-pycommon","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-runtime-cpp","ros-jazzy-rosidl-typesupport-interface","ros-jazzy-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736457168550,"md5":"fe54aac4011d75750550486fc4d51534","name":"ros-jazzy-rosidl-typesupport-introspection-cpp","requires":[],"size":46995,"version":"4.6.5","binstar":{"package_id":"667554b5b065f00167fc97c0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5a4685d1ed25e63b061efd50c0855b9bb691932105005cf311dfde6165c46047"},"ros-jazzy-urdf-2.10.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-pluginlib","ros-jazzy-ros-workspace","ros-jazzy-tinyxml2-vendor","ros-jazzy-urdf-parser-plugin","ros-jazzy-urdfdom","ros-jazzy-urdfdom-headers","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736457234759,"md5":"dae94b56e8fe06fa9c0814e316a57e1b","name":"ros-jazzy-urdf","requires":[],"size":121980,"version":"2.10.0","binstar":{"package_id":"667554b619531b40f8fc97c2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e8f2629ae28103668a3668878135c908341d9d734c041528f535ef5f669a8917"},"ros-jazzy-kdl-parser-2.11.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-orocos-kdl-vendor","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-urdf","ros-jazzy-urdfdom-headers","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736457687858,"md5":"aa67b8e75c77ebf688b1bb925d944d23","name":"ros-jazzy-kdl-parser","requires":[],"size":55342,"version":"2.11.0","binstar":{"package_id":"667554fd187a58b4e599719c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c9589d0819f74c1d72ff2eb9bd4bc099f36f95fd68693355931b215ecceb9e27"},"ros-jazzy-rosidl-typesupport-c-3.2.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-index-python","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-cli","ros-jazzy-rosidl-generator-c","ros-jazzy-rosidl-pycommon","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-typesupport-fastrtps-c","ros-jazzy-rosidl-typesupport-interface","ros-jazzy-rosidl-typesupport-introspection-c","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736457717543,"md5":"ef50a1cd4495d4e91d395f4b3980afff","name":"ros-jazzy-rosidl-typesupport-c","requires":[],"size":49348,"version":"3.2.2","binstar":{"package_id":"667554feb4b2a28e08fc97bc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"887f75d5344170b17439769dc4f5171ae074fd6c915284a32b20442ca6615a31"},"ros-jazzy-rosidl-typesupport-fastrtps-c-3.6.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-ros","ros-jazzy-ament-index-python","ros-jazzy-fastcdr","ros-jazzy-fastrtps-cmake-module","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-rosidl-cli","ros-jazzy-rosidl-generator-c","ros-jazzy-rosidl-pycommon","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-runtime-cpp","ros-jazzy-rosidl-typesupport-fastrtps-cpp","ros-jazzy-rosidl-typesupport-interface","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736457487186,"md5":"9968d3235b31f0b0e545abb57cb768c0","name":"ros-jazzy-rosidl-typesupport-fastrtps-c","requires":[],"size":50861,"version":"3.6.1","binstar":{"package_id":"667554fffba30a11b1a862c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d090948249088f687d8c38087a587fa2a0d64c77768f2075ea1ac90e5602472b"},"ros-jazzy-rosidl-core-generators-0.2.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros-jazzy-rosidl-cmake","ros-jazzy-rosidl-generator-c","ros-jazzy-rosidl-generator-cpp","ros-jazzy-rosidl-generator-py","ros-jazzy-rosidl-generator-type-description","ros-jazzy-rosidl-typesupport-c","ros-jazzy-rosidl-typesupport-cpp","ros-jazzy-rosidl-typesupport-fastrtps-c","ros-jazzy-rosidl-typesupport-fastrtps-cpp","ros-jazzy-rosidl-typesupport-introspection-c","ros-jazzy-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736457990584,"md5":"9484c2cc23faa6b65f9b0a026cc29746","name":"ros-jazzy-rosidl-core-generators","requires":[],"size":27573,"version":"0.2.0","binstar":{"package_id":"6675555445471806a199719c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ba509d061682f1e354b4b5b5603a10eba1efcdc1d1f2367679b3aee6cb60951f"},"ros-jazzy-rosidl-core-runtime-0.2.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-generator-py","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-runtime-cpp","ros-jazzy-rosidl-typesupport-c","ros-jazzy-rosidl-typesupport-cpp","ros-jazzy-rosidl-typesupport-fastrtps-c","ros-jazzy-rosidl-typesupport-fastrtps-cpp","ros-jazzy-rosidl-typesupport-introspection-c","ros-jazzy-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736457964438,"md5":"ab05708da908ef6c4e07b7388b34faf6","name":"ros-jazzy-rosidl-core-runtime","requires":[],"size":26596,"version":"0.2.0","binstar":{"package_id":"6675555628e9267efdfc97c2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f4a429efaabc85f1bf7481a4877f88a783be1455eead2f67cfc6328c2e67f9ad"},"ros-jazzy-rosidl-generator-py-0.22.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["numpy","python","ros-jazzy-ament-cmake","ros-jazzy-ament-cmake-cppcheck","ros-jazzy-ament-cmake-cpplint","ros-jazzy-ament-cmake-flake8","ros-jazzy-ament-cmake-pep257","ros-jazzy-ament-cmake-uncrustify","ros-jazzy-ament-index-python","ros-jazzy-python-cmake-module","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-rosidl-cli","ros-jazzy-rosidl-generator-c","ros-jazzy-rosidl-parser","ros-jazzy-rosidl-pycommon","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-typesupport-c","ros-jazzy-rosidl-typesupport-interface","ros-jazzy-rpyutils","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736457930408,"md5":"fc49655b3e432a798153d23fa39191f7","name":"ros-jazzy-rosidl-generator-py","requires":[],"size":56111,"version":"0.22.0","binstar":{"package_id":"66755558a402cb080399719c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0e6ab772772f32c4706d6335f34bac2db52208ab31c9425b38d29733bb2a2344"},"ros-jazzy-rosidl-typesupport-cpp-3.2.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-core","ros-jazzy-ament-index-python","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-cli","ros-jazzy-rosidl-generator-c","ros-jazzy-rosidl-generator-type-description","ros-jazzy-rosidl-pycommon","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-runtime-cpp","ros-jazzy-rosidl-typesupport-c","ros-jazzy-rosidl-typesupport-fastrtps-cpp","ros-jazzy-rosidl-typesupport-interface","ros-jazzy-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736457850707,"md5":"ad3290fb219ae3c03f7dceab22707d53","name":"ros-jazzy-rosidl-typesupport-cpp","requires":[],"size":48731,"version":"3.2.2","binstar":{"package_id":"6675555ecaf42f844e99719c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e4a8487c55b0790c3e44f4d5b4fca9f361000e8ad51c6c226fb757f17ebaaca8"},"ros-jazzy-builtin-interfaces-2.0.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-core-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736458175151,"md5":"23344bf6cd9d79f5c706a0a333691ba1","name":"ros-jazzy-builtin-interfaces","requires":[],"size":82519,"version":"2.0.2","binstar":{"package_id":"667555b35c2e9b2aa799719d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0b250a2ef0c1a907e0a556068dc9d2dbca6753030c5b3c32a74b793b139a7051"},"ros-jazzy-service-msgs-2.0.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-core-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736458330001,"md5":"1254725f74eb49d24ff841572ce51058","name":"ros-jazzy-service-msgs","requires":[],"size":83761,"version":"2.0.2","binstar":{"package_id":"667555b4436e0c3f8aa862cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"269501fc6c62b4d61664d23a9a2e349632738946862e8cfe474f02f48f37fa91"},"ros-jazzy-unique-identifier-msgs-2.5.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-core-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736458290670,"md5":"9eb1858b2d7f7f11c7267bea71bbd825","name":"ros-jazzy-unique-identifier-msgs","requires":[],"size":77335,"version":"2.5.0","binstar":{"package_id":"667555b5b065f00167fc97c4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b69e2dd669e76326304a87e161f7589a19ad6260f9f98074a8a28ff048114137"},"ros-jazzy-action-msgs-2.0.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-core-runtime","ros-jazzy-service-msgs","ros-jazzy-unique-identifier-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736458433256,"md5":"95c69e7f563ac0b9af080aadb2a60346","name":"ros-jazzy-action-msgs","requires":[],"size":151789,"version":"2.0.2","binstar":{"package_id":"6675561ca0563b60eb6e10c5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fc79c9d35664708f36a64c6f9667999f8f82e6bad07a4d850aa1767f19a2d39e"},"ros-jazzy-rosidl-default-generators-1.6.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-ament-cmake-core","ros-jazzy-ros-workspace","ros-jazzy-rosidl-core-generators","ros-jazzy-service-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736458615898,"md5":"37ecfab1a020bc93f22c229ab70665ca","name":"ros-jazzy-rosidl-default-generators","requires":[],"size":27756,"version":"1.6.0","binstar":{"package_id":"6675561db065f00167fc97c6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cbe3ad38a4dfb32bc9f9d4962db509fb3b8332de721101445c3a574348bf6e0e"},"ros-jazzy-rosidl-default-runtime-1.6.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-core-runtime","ros-jazzy-service-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736458589031,"md5":"b8576eb9865d1b4521f68eaa4144a77e","name":"ros-jazzy-rosidl-default-runtime","requires":[],"size":27164,"version":"1.6.0","binstar":{"package_id":"6675561e6512ff23e2fc97c3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"aedd6661776879aa2730a9337b9bbf5be5ce9bdedf64ada9e8d473ba8a3decf3"},"ros-jazzy-type-description-interfaces-2.0.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-core-runtime","ros-jazzy-service-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736458531100,"md5":"290a67aa1c32a8df46c9a4c04d836d32","name":"ros-jazzy-type-description-interfaces","requires":[],"size":220289,"version":"2.0.2","binstar":{"package_id":"6675561fedb927606aa862ca","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"53b3134a767db060a51858e8b9a9c34adac6bf3533b2d72ca942a08db8d0e525"},"ros-jazzy-ros2cli-test-interfaces-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459136315,"md5":"709bcdb98ca74001968f23eddf79c30b","name":"ros-jazzy-ros2cli-test-interfaces","requires":[],"size":236989,"version":"0.32.2","binstar":{"package_id":"66755669c78a5647646e10c6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"944ffc1e597f36dc80da37b6406c06e2b9903e3b06edb45fca63f439603c9ff7"},"ros-jazzy-rosbag2-interfaces-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736458933166,"md5":"d44b069891a1a06e61a87890956aad8f","name":"ros-jazzy-rosbag2-interfaces","requires":[],"size":386890,"version":"0.26.6","binstar":{"package_id":"6675572445471806a199719f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"22fda586a74642050673e947da7fdc8e400cac5d96f9ef038b18119313f97cd5"},"ros-jazzy-lifecycle-msgs-2.0.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736458949381,"md5":"c13d0803cf5927cac008150bb3d62c38","name":"ros-jazzy-lifecycle-msgs","requires":[],"size":250173,"version":"2.0.2","binstar":{"package_id":"6675572653861a06946e10ca","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"066e356ef50334822e3458493f179a11e255ae92390b9447349e78ae82c9378b"},"ros-jazzy-rosbag2-test-msgdefs-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736458807936,"md5":"1e89d601d1de8b6b46a5550a3636a7d9","name":"ros-jazzy-rosbag2-test-msgdefs","requires":[],"size":194081,"version":"0.26.6","binstar":{"package_id":"667557267c0a2c63af7e71f9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c749dedf56a3233b4cacded3fa8c51c5ca72704f65bc5fb47adf09e0b947e804"},"ros-jazzy-rosgraph-msgs-2.0.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736458831579,"md5":"93a565bad1c5aca44bade6015aaea1bc","name":"ros-jazzy-rosgraph-msgs","requires":[],"size":76461,"version":"2.0.2","binstar":{"package_id":"667557271a086940c67e71f7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ec99171923e467e61af58dc81a03116c37fb3553a1e2f3d8b206852af0d8a386"},"ros-jazzy-rcl-interfaces-2.0.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459025488,"md5":"eceddb375257ae5bcd57033298abb700","name":"ros-jazzy-rcl-interfaces","requires":[],"size":483963,"version":"2.0.2","binstar":{"package_id":"667557287435bd396ea862c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0f8139001e06f073e920dd312af0333b4303d6ce6b43e9a47224238f4ff48228"},"ros-jazzy-statistics-msgs-2.0.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459186174,"md5":"1aa161557c7501f242d5c8a018a06f57","name":"ros-jazzy-statistics-msgs","requires":[],"size":111819,"version":"2.0.2","binstar":{"package_id":"66755728aa2f1733d16e10cd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2701189f2265f5e56e05115bfc808fdf494331681f59e97a21fe3f9d51b5f448"},"ros-jazzy-std-srvs-5.3.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459003553,"md5":"fda6b857e8944ff094dd206304b2c714","name":"ros-jazzy-std-srvs","requires":[],"size":159854,"version":"5.3.5","binstar":{"package_id":"6675572945471806a19971a2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"46fee3f62b6e97d10f8295e6bd58d61153bd7bc1a3f80530e5fe8232e02f58c4"},"ros-jazzy-rmw-dds-common-3.1.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-runtime-cpp","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736458807974,"md5":"2a34491fd680167d4c3f890a636b8ab2","name":"ros-jazzy-rmw-dds-common","requires":[],"size":178999,"version":"3.1.0","binstar":{"package_id":"6675572a390e7254da9ce9eb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6dbeee3c793aa213e3efaca4594bac574397c53707a381c6049fea501ef1076c"},"ros-jazzy-std-msgs-5.3.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459107955,"md5":"cd3d10c215780f014343d85029f585bd","name":"ros-jazzy-std-msgs","requires":[],"size":296622,"version":"5.3.5","binstar":{"package_id":"6675572b7f7e33f8fd9ce9e8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"77c6528ad312f6170fdb6e73de20e67f39084a2ba62901709a8a583e3dfb1edc"},"ros-jazzy-test-msgs-2.0.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736458925199,"md5":"d5f91d30d4046c5faf5bdd9b6dc962f6","name":"ros-jazzy-test-msgs","requires":[],"size":696790,"version":"2.0.2","binstar":{"package_id":"6675572e1a086940c67e71f9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2dd0e6b7890367d854517ade20cfb5b0df43f2f39d4ebe17fce1b6497827949d"},"ros-jazzy-actionlib-msgs-5.3.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459540803,"md5":"06db8011a5ba23603b8b54e1f622bf42","name":"ros-jazzy-actionlib-msgs","requires":[],"size":113330,"version":"5.3.5","binstar":{"package_id":"66755780fa0cef19a46e10c6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3871073dee2136edefe501c60a1f5af6b61e15fbde2ce3843f0c6f8220c0cb74"},"ros-jazzy-rosidl-runtime-py-0.13.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["numpy","python","pyyaml","ros-jazzy-ros-workspace","ros-jazzy-rosidl-parser","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459462532,"md5":"fdf6debb57bc62b9e6a161c41d2dc0e0","name":"ros-jazzy-rosidl-runtime-py","requires":[],"size":41071,"version":"0.13.1","binstar":{"package_id":"66755782fba30a11b1a862cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c7ec247e7145f4067886d33d07e5151e05b72e1e222e1d998d4560552817b545"},"ros-jazzy-composition-interfaces-2.0.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rcl-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459576284,"md5":"615cf1f648e555748c6c65175b2c8906","name":"ros-jazzy-composition-interfaces","requires":[],"size":207642,"version":"2.0.2","binstar":{"package_id":"667557f1b0c2d2df46a862cc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"36029418efb7848afc2998c9f3e67d99d0bc8127abd2697e1095caa09c5c3fb3"},"ros-jazzy-geometry-msgs-5.3.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459626938,"md5":"9667925bb9de81b42b1d2f3a297a3512","name":"ros-jazzy-geometry-msgs","requires":[],"size":350588,"version":"5.3.5","binstar":{"package_id":"667557f2b065f00167fc97cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"aa7ea9f0da9c83f13c179f7c8cbe4227df0637501c266c338bc33db21b89306f"},"ros-jazzy-rmw-connextdds-common-0.22.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-fastcdr","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-rmw-dds-common","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-runtime-cpp","ros-jazzy-rosidl-typesupport-fastrtps-c","ros-jazzy-rosidl-typesupport-fastrtps-cpp","ros-jazzy-rosidl-typesupport-introspection-c","ros-jazzy-rosidl-typesupport-introspection-cpp","ros-jazzy-rti-connext-dds-cmake-module","ros-jazzy-tracetools","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459504073,"md5":"c680979aed83a6b4cd3bb401408b42ae","name":"ros-jazzy-rmw-connextdds-common","requires":[],"size":49019,"version":"0.22.0","binstar":{"package_id":"667557f35c2e9b2aa79971a6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1de2b0855c8a8468253fc70ab6e5fd184a548d65ad82e9d3598198be914015c5"},"ros-jazzy-rmw-cyclonedds-cpp-2.2.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-cyclonedds","ros-jazzy-iceoryx-binding-c","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-rmw-dds-common","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-typesupport-introspection-c","ros-jazzy-rosidl-typesupport-introspection-cpp","ros-jazzy-tracetools","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459533916,"md5":"dd78fd20acd0c564f72e79b909e53a78","name":"ros-jazzy-rmw-cyclonedds-cpp","requires":[],"size":177271,"version":"2.2.2","binstar":{"package_id":"667557f46512ff23e2fc97c8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"867a6582999d0627bcdb610bb0a23dbf04c71a4f3d33899c2d2e3f0b47767104"},"ros-jazzy-rmw-fastrtps-shared-cpp-8.4.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-fastcdr","ros-jazzy-fastrtps","ros-jazzy-fastrtps-cmake-module","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-rmw-dds-common","ros-jazzy-ros-workspace","ros-jazzy-rosidl-dynamic-typesupport","ros-jazzy-rosidl-typesupport-introspection-c","ros-jazzy-rosidl-typesupport-introspection-cpp","ros-jazzy-tracetools","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459361934,"md5":"273f41035231a55aaea9f352f8b97a60","name":"ros-jazzy-rmw-fastrtps-shared-cpp","requires":[],"size":247287,"version":"8.4.1","binstar":{"package_id":"667557f61c6d3f3276a862c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b4ced3597798eca389846b431546aa4393aa8919435b5bab102f1d308677b4e9"},"ros-jazzy-diagnostic-msgs-5.3.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460076182,"md5":"f3d7bb3f45bc21db483ff444781a6234","name":"ros-jazzy-diagnostic-msgs","requires":[],"size":196010,"version":"5.3.5","binstar":{"package_id":"667558917248a85a416e10c8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"66f82ee273888159aa1afaebb4779ad4e0281c3eb7c9ad357590d7da6ae76470"},"ros-jazzy-nav-msgs-5.3.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460174043,"md5":"4a7508618cc8da04ec5faba17a48a9ae","name":"ros-jazzy-nav-msgs","requires":[],"size":287608,"version":"5.3.5","binstar":{"package_id":"667558926512ff23e2fc97cd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d7c159239492698ad652a3ae8ac7e6fd15d1d0fb05f1417ec639652889261e1f"},"ros-jazzy-shape-msgs-5.3.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460127779,"md5":"e97fbc6a7b8a1f0a99e2d3606e58e0b3","name":"ros-jazzy-shape-msgs","requires":[],"size":126654,"version":"5.3.5","binstar":{"package_id":"6675589428e9267efdfc97c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"815b1e9e60ab8781053bee9a97d206c70af31ca8ae5dd509c7f22c894261cabb"},"ros-jazzy-tf2-msgs-0.36.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459861350,"md5":"7a2a0bb0919319e1a9937855ff00f138","name":"ros-jazzy-tf2-msgs","requires":[],"size":247511,"version":"0.36.7","binstar":{"package_id":"66755895fba30a11b1a862cf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b8e924dab45d2697111e24fb6d389f5c7e33dcd44871df422eb1e1a8af9ebb06"},"ros-jazzy-trajectory-msgs-5.3.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460212026,"md5":"aab9b770cde48f560ee6e636494712de","name":"ros-jazzy-trajectory-msgs","requires":[],"size":141188,"version":"5.3.5","binstar":{"package_id":"66755896edb927606aa862d0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d28218727b7ebaa75f9644b72ea489a1ed3ebbf43c2c78dda8ccdda18bc2ee16"},"ros-jazzy-rmw-connextdds-0.22.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-rmw-connextdds-common","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460070019,"md5":"61daf6f5779bcb88213e7501384656c8","name":"ros-jazzy-rmw-connextdds","requires":[],"size":27061,"version":"0.22.0","binstar":{"package_id":"667558b3b0c2d2df46a862ce","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ca4dd5a58597bb2c15b50931e0cf484b1927e00c19722a9990585527fe826177"},"ros-jazzy-rmw-fastrtps-cpp-8.4.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-fastcdr","ros-jazzy-fastrtps","ros-jazzy-fastrtps-cmake-module","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-rmw-dds-common","ros-jazzy-rmw-fastrtps-shared-cpp","ros-jazzy-ros-workspace","ros-jazzy-rosidl-dynamic-typesupport","ros-jazzy-rosidl-dynamic-typesupport-fastrtps","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-runtime-cpp","ros-jazzy-rosidl-typesupport-fastrtps-c","ros-jazzy-rosidl-typesupport-fastrtps-cpp","ros-jazzy-tracetools","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460004788,"md5":"862097fb81aecec02686305b5f8a4fbe","name":"ros-jazzy-rmw-fastrtps-cpp","requires":[],"size":149067,"version":"8.4.1","binstar":{"package_id":"667558b5329f4685506e10c8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0a65132bc5232d4ab70e5c3e9103e7f7c4c71a6c39a0a157c3ef5b3755511a62"},"ros-jazzy-rmw-fastrtps-dynamic-cpp-8.4.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-fastcdr","ros-jazzy-fastrtps","ros-jazzy-fastrtps-cmake-module","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-rmw-dds-common","ros-jazzy-rmw-fastrtps-shared-cpp","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-typesupport-introspection-c","ros-jazzy-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459840558,"md5":"127f2eaa584093f6ddaf3bc25af84e3e","name":"ros-jazzy-rmw-fastrtps-dynamic-cpp","requires":[],"size":176807,"version":"8.4.1","binstar":{"package_id":"667558b67248a85a416e10ca","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"314562d00d2ba37ce08cfeae1c91a0707145c07dd6a1ad4a42f8cde3c4612acc"},"ros-jazzy-sensor-msgs-5.3.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460099573,"md5":"00ca332f121ec44f16965f38fb454a02","name":"ros-jazzy-sensor-msgs","requires":[],"size":486511,"version":"5.3.5","binstar":{"package_id":"667558b728e9267efdfc97cc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3cfe83d2b2376757c3274a370f5b2e6cb9eff0462201d55f90da80a09cce5149"},"ros-jazzy-tf2-0.36.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-cpp","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460042304,"md5":"acb28933d41acd483f801734c4bf5d63","name":"ros-jazzy-tf2","requires":[],"size":133667,"version":"0.36.7","binstar":{"package_id":"667558b81c6d3f3276a862cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"437764e8529b04678f630db97344c3575c3b03b0f09edf703cbe9403a4f9df19"},"ros-jazzy-rmw-implementation-2.15.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-rmw-connextdds","ros-jazzy-rmw-cyclonedds-cpp","ros-jazzy-rmw-fastrtps-cpp","ros-jazzy-rmw-fastrtps-dynamic-cpp","ros-jazzy-rmw-implementation-cmake","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460410886,"md5":"ca30f2e0ce38697dd11ce9b9eb51a38e","name":"ros-jazzy-rmw-implementation","requires":[],"size":55281,"version":"2.15.4","binstar":{"package_id":"667559a01ce5d6200723b4eb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4107f1ad5e680b0d622ff0950c534f32d7ea71ec8dba992309e54f4f3ad8a2bc"},"ros-jazzy-sensor-msgs-py-5.3.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["numpy","python","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460644193,"md5":"61387f22211b615b87f9902ae46069e1","name":"ros-jazzy-sensor-msgs-py","requires":[],"size":28375,"version":"5.3.5","binstar":{"package_id":"667559a1ee29441898ec0013","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d5e968ffc5ca9ee57b7205bac3ecc664e7f9ae3969604d5b3bb60f140327c997"},"ros-jazzy-stereo-msgs-5.3.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460600135,"md5":"a63da30d0007f67504afd02144126ada","name":"ros-jazzy-stereo-msgs","requires":[],"size":86177,"version":"5.3.5","binstar":{"package_id":"667559a37248a85a416e10d0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"22ffbefec88a4e296a67263862f7d070741e8877f654018ff5a1890bc8ad47fa"},"ros-jazzy-tf2-eigen-kdl-0.36.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["eigen","python","ros-jazzy-orocos-kdl-vendor","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460410878,"md5":"1c48fc6a9cdd38aaccefa9577bec5906","name":"ros-jazzy-tf2-eigen-kdl","requires":[],"size":40384,"version":"0.36.7","binstar":{"package_id":"667559a4183e39764b23b4ec","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"42aeea2ae6c3fc906b062a18b5665f0300868fc4be131d2dc4033585372e8383"},"ros-jazzy-visualization-msgs-5.3.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460518708,"md5":"8ca7fccdc9ed1237d0a165db40f5c985","name":"ros-jazzy-visualization-msgs","requires":[],"size":337814,"version":"5.3.5","binstar":{"package_id":"667559a5183e39764b23b4ee","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4aec49d949a63d407afaf60300870aa2e294db5c83e169c12897fb33a4bd9a18"},"ros-jazzy-common-interfaces-5.3.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-actionlib-msgs","ros-jazzy-builtin-interfaces","ros-jazzy-diagnostic-msgs","ros-jazzy-geometry-msgs","ros-jazzy-nav-msgs","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-shape-msgs","ros-jazzy-std-msgs","ros-jazzy-std-srvs","ros-jazzy-stereo-msgs","ros-jazzy-trajectory-msgs","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736461025391,"md5":"2d687e378d1f2e55e1d4c565b279729b","name":"ros-jazzy-common-interfaces","requires":[],"size":21745,"version":"5.3.5","binstar":{"package_id":"667559e74aa2bfcb836e10c7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f6ff7b650b4df067effdacd31e252ae56bf01ea652c2cc1652797a4449f548fc"},"ros-jazzy-rcl-9.2.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-libyaml-vendor","ros-jazzy-rcl-interfaces","ros-jazzy-rcl-logging-interface","ros-jazzy-rcl-logging-spdlog","ros-jazzy-rcl-yaml-param-parser","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-rmw-implementation","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-c","ros-jazzy-service-msgs","ros-jazzy-tracetools","ros-jazzy-type-description-interfaces","ros2-distro-mutex 0.6.* jazzy_*","yaml","yaml-cpp","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","yaml >=0.2.5,<0.3.0a0","yaml-cpp >=0.8.0,<0.9.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460891520,"md5":"6ffa465f02c07e8829b554e22b7a6e79","name":"ros-jazzy-rcl","requires":[],"size":200705,"version":"9.2.4","binstar":{"package_id":"667559e8bba1dce73d23b4eb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6d79f2d82587c4f17935df81b45648f013bdd9dca5b0afa21c3e533e1b8acc8e"},"ros-jazzy-libstatistics-collector-1.7.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-rcl","ros-jazzy-rcpputils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-statistics-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736461229938,"md5":"43deb17b2a54cd8241f182c76f7043c2","name":"ros-jazzy-libstatistics-collector","requires":[],"size":57519,"version":"1.7.4","binstar":{"package_id":"667563fa11d9f171577e603c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"419c194e07e72a2dba5f038611b6a909cbde6d09d74fa6dd3c0e7e3a61f618b4"},"ros-jazzy-rcl-action-9.2.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-rcl","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-c","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736461392198,"md5":"63954a0b85cef6d49b61ef397b9f875e","name":"ros-jazzy-rcl-action","requires":[],"size":80469,"version":"9.2.4","binstar":{"package_id":"667563fc62643526347e603a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"af4c2314b01c10d4f34db9226693f650c8097208a1657f55404b34ba6c035cd5"},"ros-jazzy-rcl-lifecycle-9.2.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-lifecycle-msgs","ros-jazzy-rcl","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-c","ros-jazzy-tracetools","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736461357723,"md5":"4ab73cbb68841f8a30eeb81f2ab25723","name":"ros-jazzy-rcl-lifecycle","requires":[],"size":54822,"version":"9.2.4","binstar":{"package_id":"667563fde6378210207e603b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ca8cac0448f6aadcc32d4c59ae75d3d8e6cf02596cb5ebc037ed92d682878ea7"},"ros-jazzy-rclcpp-28.1.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-builtin-interfaces","ros-jazzy-libstatistics-collector","ros-jazzy-rcl","ros-jazzy-rcl-interfaces","ros-jazzy-rcl-logging-interface","ros-jazzy-rcl-yaml-param-parser","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-rosgraph-msgs","ros-jazzy-rosidl-dynamic-typesupport","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-runtime-cpp","ros-jazzy-rosidl-typesupport-c","ros-jazzy-rosidl-typesupport-cpp","ros-jazzy-statistics-msgs","ros-jazzy-tracetools","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736461549163,"md5":"2dc45896df49e04f3477244d88dd19a1","name":"ros-jazzy-rclcpp","requires":[],"size":701379,"version":"28.1.6","binstar":{"package_id":"667564db12fd2a45bb74d8a4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"987883d3a77268bae0f9928749a9e9213e28d9c802a7162b428a8a1843259fe6"},"ros-jazzy-rclpy-7.1.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","pyyaml","ros-jazzy-action-msgs","ros-jazzy-ament-index-python","ros-jazzy-builtin-interfaces","ros-jazzy-lifecycle-msgs","ros-jazzy-rcl","ros-jazzy-rcl-action","ros-jazzy-rcl-interfaces","ros-jazzy-rcl-lifecycle","ros-jazzy-rcl-logging-interface","ros-jazzy-rcl-yaml-param-parser","ros-jazzy-rmw","ros-jazzy-rmw-implementation","ros-jazzy-ros-workspace","ros-jazzy-rosgraph-msgs","ros-jazzy-rosidl-runtime-c","ros-jazzy-rpyutils","ros-jazzy-unique-identifier-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736461844742,"md5":"2f2c91183851f1fa4dcd7aff5c5ab03d","name":"ros-jazzy-rclpy","requires":[],"size":500020,"version":"7.1.3","binstar":{"package_id":"667564ddb473691d5cd428cf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"60ad99a99aa7ff68d649adc311f4e816c14c836a7f8205ba403bcb8ae3c6661a"},"ros-jazzy-rclcpp-action-28.1.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-ament-cmake","ros-jazzy-rcl","ros-jazzy-rcl-action","ros-jazzy-rclcpp","ros-jazzy-rcpputils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-c","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462189025,"md5":"c6575cb0d2d69e6f9f09d68b48500e31","name":"ros-jazzy-rclcpp-action","requires":[],"size":102328,"version":"28.1.6","binstar":{"package_id":"6675652842463ba6eaecef13","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c3921b9385b144688950b16a82f8c8a587a38425e1f44d951fafc55079382f7e"},"ros-jazzy-tf2-py-0.36.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rpyutils","ros-jazzy-tf2","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462124339,"md5":"59a8cf4e26a42605d07da884eee22ff2","name":"ros-jazzy-tf2-py","requires":[],"size":46968,"version":"0.36.7","binstar":{"package_id":"66756529adafcbac3505ef06","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"383733dc7c3810d25e156a3d01c21f2338b819f5fd3d885a080d39649a7d1e0b"},"ros-jazzy-launch-ros-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["importlib-metadata","python","pyyaml","ros-jazzy-ament-index-python","ros-jazzy-composition-interfaces","ros-jazzy-launch","ros-jazzy-lifecycle-msgs","ros-jazzy-osrf-pycommon","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462229344,"md5":"0c991ef7b8c5fc0af3ebe1d8b3b9af6e","name":"ros-jazzy-launch-ros","requires":[],"size":121262,"version":"0.26.6","binstar":{"package_id":"667565550d17e7c9e505ef04","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3b92e679dcd410c52797e166e19a4f164f16940c00a9f7a23d58c6a955cabee7"},"ros-jazzy-rclcpp-components-28.1.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-class-loader","ros-jazzy-composition-interfaces","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462283697,"md5":"ecce4ac581133166a1c887454228423b","name":"ros-jazzy-rclcpp-components","requires":[],"size":112896,"version":"28.1.6","binstar":{"package_id":"6675655662643526347e603f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9361b8e02c945a225b7d40e350ed2d9c29e25dd083fbcb045d6fa979a3ba404c"},"ros-jazzy-rclcpp-lifecycle-28.1.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-lifecycle-msgs","ros-jazzy-rcl","ros-jazzy-rcl-interfaces","ros-jazzy-rcl-lifecycle","ros-jazzy-rclcpp","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-rosidl-typesupport-cpp","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462065941,"md5":"df543b719ab11989e992fc70be516ad4","name":"ros-jazzy-rclcpp-lifecycle","requires":[],"size":98020,"version":"28.1.6","binstar":{"package_id":"667565578b21dec46674d8a0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0b4de0eb569f30c9e88c8cd6544b7aa885eb4b5ab99a0fd6e980cd22c9a5202c"},"ros-jazzy-ros2cli-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["argcomplete","importlib-metadata","packaging","psutil","python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462257724,"md5":"3404ca0f70522ee5e47b1f3616749343","name":"ros-jazzy-ros2cli","requires":[],"size":84014,"version":"0.32.2","binstar":{"package_id":"6675655811d9f171577e6042","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9c36c9a4bdd5255e515fc2a911d309ad115b0cb4549d7a530aeed10701e4d702"},"ros-jazzy-rosbag2-test-common-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-test-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462022477,"md5":"3e403cb629988a32836c80efb69842fc","name":"ros-jazzy-rosbag2-test-common","requires":[],"size":43500,"version":"0.26.6","binstar":{"package_id":"667565599459a6c7078f3f29","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f25441d7905577b72c27b0d3eb48ac723554cae2b36c46e0720cbcdb15702caa"},"ros-jazzy-ros2multicast-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463029136,"md5":"ff7edfc51aaa6b30cd6e9f4338e28973","name":"ros-jazzy-ros2multicast","requires":[],"size":22023,"version":"0.32.2","binstar":{"package_id":"667565919459a6c7078f3f2b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"80d5b83e8c1ba8eb884e8da574d67f1f81dfce914b974916f51f381fc428e5ff"},"ros-jazzy-launch-testing-ros-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-python","ros-jazzy-launch-ros","ros-jazzy-launch-testing","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462791068,"md5":"5350e3ea7426bfde35dfb08b3bf9b203","name":"ros-jazzy-launch-testing-ros","requires":[],"size":50092,"version":"0.26.6","binstar":{"package_id":"667565cc0005c4c8a48f3f29","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"dbab9dee6ea4fe316bab12ed55729567af853d15de1c88befd7621a66b64e5f3"},"ros-jazzy-message-filters-4.11.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-rclcpp","ros-jazzy-rclpy","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462870756,"md5":"861d8535f3b28a8f2d60b14d95c0ffcb","name":"ros-jazzy-message-filters","requires":[],"size":77047,"version":"4.11.3","binstar":{"package_id":"667565d03c52e400df7e603b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b94c2abea8573fbdfc42fd0f2f0bb43ef0bd575d502d141866929afc29200dbb"},"ros-jazzy-ros2lifecycle-test-fixtures-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462940730,"md5":"07edc01fe14d03d2c39fb3db9499c000","name":"ros-jazzy-ros2lifecycle-test-fixtures","requires":[],"size":40268,"version":"0.32.2","binstar":{"package_id":"667565d15db09bb2ddd428d1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8984feb9a2eb16329fa90aba3525eb6b7a9a7a42b1c9c69d17a6d6368c25755d"},"ros-jazzy-rosbag2-storage-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-yaml-cpp-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462980573,"md5":"6ee1b3f04306f0e87ca68905c156b801","name":"ros-jazzy-rosbag2-storage","requires":[],"size":184598,"version":"0.26.6","binstar":{"package_id":"667565d3e0ff001ead05ef06","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d4520d6bcaa1da706b95792d16beeba413633304bd0991e2c2f9952cb7716396"},"ros-jazzy-tf2-ros-py-0.36.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros-jazzy-tf2-msgs","ros-jazzy-tf2-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462720094,"md5":"e2eaf8d8a56dc87a51d95687f03396c9","name":"ros-jazzy-tf2-ros-py","requires":[],"size":46980,"version":"0.36.7","binstar":{"package_id":"667565d530d0b1886474d8a5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"55d7c8fa7835134557c8a04b0944077817555bdc46a45b8681f65eb5d40d9d12"},"ros-jazzy-ros2action-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-ament-index-python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-rosidl-runtime-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464005980,"md5":"dd00c05beae9b29d2664d6da1192a7b5","name":"ros-jazzy-ros2action","requires":[],"size":42145,"version":"0.32.2","binstar":{"package_id":"6675661c8368fee6d4d428d1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e4bd7ecb89ce0b6f8fa6c8447666e796fee073ecd0a6500214e744f3c5f2ee7a"},"ros-jazzy-tf2-tools-0.36.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["graphviz","python","pyyaml","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-tf2-msgs","ros-jazzy-tf2-py","ros-jazzy-tf2-ros-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463825812,"md5":"24c4a50936b86610cb38169be4dd9bf9","name":"ros-jazzy-tf2-tools","requires":[],"size":29385,"version":"0.36.7","binstar":{"package_id":"6675661db4dec4cfa67e603e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"730de18df2f827b54f995ba405983544d5605e0b92a03daddab8367af92c7857"},"ros-jazzy-ros2doctor-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["catkin_pkg","importlib-metadata","psutil","python","ros-jazzy-ament-index-python","ros-jazzy-rclpy","ros-jazzy-ros-environment","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","rosdistro","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463976789,"md5":"de63689cb2fdc08bb392f7b81dc00c47","name":"ros-jazzy-ros2doctor","requires":[],"size":64673,"version":"0.32.2","binstar":{"package_id":"6675663aadafcbac3505ef08","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"25e3b26db73048c0bafa661117d0b9e4208ea2f625af8cca3c7b50ffe53277f7"},"ros-jazzy-ros2interface-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-python","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-rosidl-adapter","ros-jazzy-rosidl-runtime-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463943109,"md5":"c66dc5b8a6297c50200e62ed84b5ad24","name":"ros-jazzy-ros2interface","requires":[],"size":42442,"version":"0.32.2","binstar":{"package_id":"6675663ccfebff9e53ecef13","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e7d82e345598ac93cce7cfc9786bb0319447d9666af15bac7ea64e3935b1cf21"},"ros-jazzy-ros2node-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463948354,"md5":"a15bed4cb61e8143ae1db16b8a841ad9","name":"ros-jazzy-ros2node","requires":[],"size":39017,"version":"0.32.2","binstar":{"package_id":"6675663dc38b408aa38f3f29","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7cdb502fadd2f5599bb26080cd89c6776118e7f3a8978d35a5abf0f33a98632f"},"ros-jazzy-ros2pkg-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["catkin_pkg","empy","importlib_resources","python","ros-jazzy-ament-copyright","ros-jazzy-ament-index-python","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463836346,"md5":"f97ead60ff0346e4960d8dad3da96218","name":"ros-jazzy-ros2pkg","requires":[],"size":52970,"version":"0.32.2","binstar":{"package_id":"6675663eebab3d2a707e603e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0f84e27117fae11f2e2ff6ec84a2e0411b5216d8fd54836b697bd54944f412d3"},"ros-jazzy-ros2service-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","pyyaml","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-rosidl-runtime-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463915882,"md5":"8f9e60d1e069310eef88dc869e411381","name":"ros-jazzy-ros2service","requires":[],"size":47203,"version":"0.32.2","binstar":{"package_id":"6675663fadafcbac3505ef0a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"622b91229735c96528deafe9b454f2d3c6168179f9e4f88b8100a59740e77e93"},"ros-jazzy-ros2test-0.6.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-domain-coordinator","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-launch-testing","ros-jazzy-launch-testing-ros","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464089449,"md5":"c02da85a9031cea4c5173edad7223f02","name":"ros-jazzy-ros2test","requires":[],"size":30741,"version":"0.6.0","binstar":{"package_id":"66756674cfebff9e53ecef16","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"598ccceba99e33a0c804773477b85b0b04f1b3d379fd25c1bff117454dda94ee"},"ros-jazzy-ros2topic-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["numpy","python","pyyaml","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-rosidl-runtime-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463846598,"md5":"49c40431bf7a495673aaf53b08463df8","name":"ros-jazzy-ros2topic","requires":[],"size":69582,"version":"0.32.2","binstar":{"package_id":"66756676401c9bca4cecef13","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9351ddb7b1f1da1407aff6a931b4a0ef3d791458e81f4bc94367c47eb8e6aa8f"},"ros-jazzy-rosbag2-storage-mcap-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-mcap-vendor","ros-jazzy-pluginlib","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosbag2-storage","ros-jazzy-yaml-cpp-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463890378,"md5":"c3dc0ca75cb7d09395b46f97eb68aaf6","name":"ros-jazzy-rosbag2-storage-mcap","requires":[],"size":131972,"version":"0.26.6","binstar":{"package_id":"6675667aee5d41cd0a2c5d5a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1bef63406cdc649ccc7b64a06132293327d765ef8a4952d43e128c245af0b58b"},"ros-jazzy-rosbag2-storage-sqlite3-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-pluginlib","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosbag2-storage","ros-jazzy-sqlite3-vendor","ros-jazzy-yaml-cpp-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464035845,"md5":"ad468e7b20f44f7746bff7da9b1ad4d2","name":"ros-jazzy-rosbag2-storage-sqlite3","requires":[],"size":176024,"version":"0.26.6","binstar":{"package_id":"6675667cbc0b92384a2c5d5a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8a325aceb9784f5f5bd8619524beedf3ecbef4ab6d42e245edfcbad047e9998c"},"ros-jazzy-tf2-ros-0.36.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-message-filters","ros-jazzy-rcl-interfaces","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463977048,"md5":"4d08dbfdcaf31c167ac0911d4062cbcf","name":"ros-jazzy-tf2-ros","requires":[],"size":296554,"version":"0.36.7","binstar":{"package_id":"6675668086a766acf9ecef15","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3ff2fd394d1c11858c746b9b9c6ffe5cbf793f9b46a1e2a80d1fcdff3779fc3b"},"ros-jazzy-tf2-bullet-0.36.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["bullet","python","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464790344,"md5":"6da0e47de62d79529545ce0a946ec306","name":"ros-jazzy-tf2-bullet","requires":[],"size":36603,"version":"0.36.7","binstar":{"package_id":"667566c75505ae675c9f4a28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"88809bf7d00fd13047da52580162f18a9bb2533d485396bdaf10cb2d288261bb"},"ros-jazzy-tf2-sensor-msgs-0.36.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["eigen","numpy","python","ros-jazzy-eigen3-cmake-module","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-sensor-msgs-py","ros-jazzy-std-msgs","ros-jazzy-tf2","ros-jazzy-tf2-ros","ros-jazzy-tf2-ros-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464375637,"md5":"89c0d425a673cbcf328c8822b1b7b003","name":"ros-jazzy-tf2-sensor-msgs","requires":[],"size":43144,"version":"0.36.7","binstar":{"package_id":"667566c9687d8fb0489f4a28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c01e5d4ecdacc53491e97c7e78da5e19649e8615675a32c9999fd77a769fde8a"},"ros-jazzy-ros-testing-0.6.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-launch-testing","ros-jazzy-launch-testing-ament-cmake","ros-jazzy-launch-testing-ros","ros-jazzy-ros-workspace","ros-jazzy-ros2test","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464583815,"md5":"a2812ac8f274980c612d59f0d3992a42","name":"ros-jazzy-ros-testing","requires":[],"size":32901,"version":"0.6.0","binstar":{"package_id":"667566e5da8f98fa7cecef14","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b2cd91fd4f7ee0b7a0d9aad12761f5c9fa2d66a322ada75baa7a95f0d1636277"},"ros-jazzy-ros2launch-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-python","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-launch-xml","ros-jazzy-launch-yaml","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-ros2pkg","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464396706,"md5":"60be70b9a98b7a44bfefa0d0662e9779","name":"ros-jazzy-ros2launch","requires":[],"size":42586,"version":"0.26.6","binstar":{"package_id":"667566e875511e7fcc9f4a28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6dd4bffa0ed61fa5cdd81fac227daec5e62a4ca83a0988768a6572676849ee13"},"ros-jazzy-ros2lifecycle-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-lifecycle-msgs","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-ros2node","ros-jazzy-ros2service","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464612842,"md5":"68aef5c3862f731eb165e775c4cbe284","name":"ros-jazzy-ros2lifecycle","requires":[],"size":41032,"version":"0.32.2","binstar":{"package_id":"667566ea1ab8f2d984d428cf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b4a40f649c1585e405c1afd6af35e29c94e6835199b75656e789f93f0ddcbac1"},"ros-jazzy-ros2param-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rcl-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-ros2node","ros-jazzy-ros2service","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464454777,"md5":"74561776a3d0e1e4f2c2c8bb6bd79933","name":"ros-jazzy-ros2param","requires":[],"size":46252,"version":"0.32.2","binstar":{"package_id":"667566ec7a9b2478f19f4a28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"679143ddb9bef562d0616f2c37835faebb8936a14e8dbd88ee17034c2366c70a"},"ros-jazzy-ros2run-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-ros2pkg","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464396710,"md5":"ba71d34a220c049b468c3cf4d17acf78","name":"ros-jazzy-ros2run","requires":[],"size":21249,"version":"0.32.2","binstar":{"package_id":"667566ee878498f0f8b85be6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a64bec4de145a8445295f44c19ab92b9194358b35dc4215938d16d695f347a6f"},"ros-jazzy-robot-state-publisher-3.3.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-kdl-parser","ros-jazzy-orocos-kdl-vendor","ros-jazzy-rcl-interfaces","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros-jazzy-tf2-ros","ros-jazzy-urdf","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464507457,"md5":"02d24dcca522299b017175862fbc9a7d","name":"ros-jazzy-robot-state-publisher","requires":[],"size":188129,"version":"3.3.3","binstar":{"package_id":"667566f5795dd318e0ee03bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"628252c8db9c2b9694b832f4fb690ee8541a83c839e7b6e31665a810d5ed6125"},"ros-jazzy-rosbag2-storage-default-plugins-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosbag2-storage-mcap","ros-jazzy-rosbag2-storage-sqlite3","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464542613,"md5":"db3cd8fa6dd2549ac159d05bbe8a45d8","name":"ros-jazzy-rosbag2-storage-default-plugins","requires":[],"size":17912,"version":"0.26.6","binstar":{"package_id":"667566f825603a3d39ee03bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5b2c537ae8b815090ce1552988342c0449379c6804f2965762ed2349ac89be23"},"ros-jazzy-tf2-eigen-0.36.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["eigen","python","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464606940,"md5":"665ff7dad600bc028cb59a78dc801782","name":"ros-jazzy-tf2-eigen","requires":[],"size":39004,"version":"0.36.7","binstar":{"package_id":"667566fb39c3d39b8d2c5d5a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"578ff37109d71da490ed144629b0932f56f0b97e7da6a2ae37366462c4ecc92f"},"ros-jazzy-tf2-geometry-msgs-0.36.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["numpy","python","ros-jazzy-geometry-msgs","ros-jazzy-orocos-kdl-vendor","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-ros","ros-jazzy-tf2-ros-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464479427,"md5":"8fbda2de9dd09a955d6a6dfb0981fb13","name":"ros-jazzy-tf2-geometry-msgs","requires":[],"size":51082,"version":"0.36.7","binstar":{"package_id":"667566fc5505ae675c9f4a2a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a8aad61068324cbe2275ab2a4018e45cf80c9b3d012cd169c849760b70050597"},"ros-jazzy-tf2-kdl-0.36.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-orocos-kdl-vendor","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-ros","ros-jazzy-tf2-ros-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464569404,"md5":"b50ac3aed02f3038ecbf3ebea941f17f","name":"ros-jazzy-tf2-kdl","requires":[],"size":40876,"version":"0.36.7","binstar":{"package_id":"667566fe2f207b1976ee03bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7b278c4d2de05a6a652d5c39e1cc24764d979b64a0ae371654b3d83164239346"},"ros-jazzy-geometry2-0.36.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-tf2","ros-jazzy-tf2-bullet","ros-jazzy-tf2-eigen","ros-jazzy-tf2-eigen-kdl","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-kdl","ros-jazzy-tf2-msgs","ros-jazzy-tf2-py","ros-jazzy-tf2-ros","ros-jazzy-tf2-sensor-msgs","ros-jazzy-tf2-tools","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465528728,"md5":"86899fdab8ef68f56657ee80a2c6c607","name":"ros-jazzy-geometry2","requires":[],"size":17935,"version":"0.36.7","binstar":{"package_id":"6675676912fd2a45bb74d8ae","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3f8b7ce4af9fd9ea148636285581da9497093f2907143a810a2f69565f53bd5f"},"ros-jazzy-ros2component-0.32.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-python","ros-jazzy-composition-interfaces","ros-jazzy-rcl-interfaces","ros-jazzy-rclcpp-components","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-ros2node","ros-jazzy-ros2param","ros-jazzy-ros2pkg","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465468911,"md5":"512f29299900c9f428eb75d19a162675","name":"ros-jazzy-ros2component","requires":[],"size":34976,"version":"0.32.2","binstar":{"package_id":"6675676c4dff35ef709f4a2b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"307b70d22e8a643adfd5cdae6e759399aecba304b554e5b2f4f754778e359253"},"ros-jazzy-rosbag2-cpp-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-rmw-implementation","ros-jazzy-ros-workspace","ros-jazzy-rosbag2-storage","ros-jazzy-rosidl-runtime-c","ros-jazzy-rosidl-runtime-cpp","ros-jazzy-rosidl-typesupport-cpp","ros-jazzy-rosidl-typesupport-introspection-cpp","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465490509,"md5":"d63a27f266d56d9deac4076b983e5aec","name":"ros-jazzy-rosbag2-cpp","requires":[],"size":268078,"version":"0.26.6","binstar":{"package_id":"6675676e8368fee6d4d428d5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"15584c626265ff652b0e902b8ae09408d0384b44660859dc8151b0ca75173e12"},"ros-jazzy-sros2-0.13.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["argcomplete","cryptography","importlib_resources","lxml","python","ros-jazzy-ament-index-python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465376186,"md5":"5b25e36bb880ce93d8ef155c52a3bb52","name":"ros-jazzy-sros2","requires":[],"size":70391,"version":"0.13.2","binstar":{"package_id":"66756770b646f9b385b85be6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0d66e2107c5d78b62b33fc0fa63f78ee625fd246025b8c1398150fc52b686bbd"},"ros-jazzy-ros2cli-common-extensions-0.3.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-launch-xml","ros-jazzy-launch-yaml","ros-jazzy-ros-workspace","ros-jazzy-ros2action","ros-jazzy-ros2cli","ros-jazzy-ros2component","ros-jazzy-ros2doctor","ros-jazzy-ros2interface","ros-jazzy-ros2launch","ros-jazzy-ros2lifecycle","ros-jazzy-ros2multicast","ros-jazzy-ros2node","ros-jazzy-ros2param","ros-jazzy-ros2pkg","ros-jazzy-ros2run","ros-jazzy-ros2service","ros-jazzy-ros2topic","ros-jazzy-sros2","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465920214,"md5":"06733093c04b54bff6004e153b1ae2d0","name":"ros-jazzy-ros2cli-common-extensions","requires":[],"size":21884,"version":"0.3.0","binstar":{"package_id":"667567c99c704a24759f4a2a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bc62eafa5066f39eba5993b9457b83b6db417127f3b3cef9f21e4d0c576d8cea"},"ros-jazzy-rosbag2-compression-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosbag2-cpp","ros-jazzy-rosbag2-storage","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736466003398,"md5":"6cdf6f56f5cc416465cb002202d8e76c","name":"ros-jazzy-rosbag2-compression","requires":[],"size":154912,"version":"0.26.6","binstar":{"package_id":"667567caa4dcceecbbee03bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b314410358905a800e9d359bcdb6c9be3ee778fcc2a32176713bc137288c48c5"},"ros-jazzy-sros2-cmake-0.13.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-sros2","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736467084482,"md5":"16f528f22a00064cbee9549a1bd58dc4","name":"ros-jazzy-sros2-cmake","requires":[],"size":32807,"version":"0.13.2","binstar":{"package_id":"667567cb61e7b2aa7aee03c1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9df10e3d6955565c8bc515031c378a3d26185b162d663bf4f4ac4b1d5b749656"},"ros-jazzy-ros-core-0.11.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ament-cmake-auto","ros-jazzy-ament-cmake-gmock","ros-jazzy-ament-cmake-gtest","ros-jazzy-ament-cmake-pytest","ros-jazzy-ament-cmake-ros","ros-jazzy-ament-index-cpp","ros-jazzy-ament-index-python","ros-jazzy-ament-lint-auto","ros-jazzy-ament-lint-common","ros-jazzy-class-loader","ros-jazzy-common-interfaces","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-launch-testing","ros-jazzy-launch-testing-ament-cmake","ros-jazzy-launch-testing-ros","ros-jazzy-launch-xml","ros-jazzy-launch-yaml","ros-jazzy-pluginlib","ros-jazzy-rcl-lifecycle","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-lifecycle","ros-jazzy-rclpy","ros-jazzy-ros-environment","ros-jazzy-ros-workspace","ros-jazzy-ros2cli-common-extensions","ros-jazzy-ros2launch","ros-jazzy-rosidl-default-generators","ros-jazzy-rosidl-default-runtime","ros-jazzy-sros2","ros-jazzy-sros2-cmake","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736467480099,"md5":"80e23e2999c58f28e18a20164ddc1689","name":"ros-jazzy-ros-core","requires":[],"size":18556,"version":"0.11.0","binstar":{"package_id":"66756872e84fd49cacb85be6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"889f8d377dd4842fde687ad5486f7edb7025e8fdee4c0cd2218c2b12f861f279"},"ros-jazzy-rosbag2-compression-zstd-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-pluginlib","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosbag2-compression","ros-jazzy-zstd-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736467248521,"md5":"340db89cf3dbd5ac6f4ccf908b33efe7","name":"ros-jazzy-rosbag2-compression-zstd","requires":[],"size":70119,"version":"0.26.6","binstar":{"package_id":"66756875d19e4472c82b635b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"393a5aac2885dd7a23916d4214181e8f4a4a13e1d85be32cae45b3d13d7547ab"},"ros-jazzy-rosbag2-py-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-pybind11-vendor","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rosbag2-compression","ros-jazzy-rosbag2-cpp","ros-jazzy-rosbag2-storage","ros-jazzy-rosbag2-transport","ros-jazzy-rpyutils","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736468225405,"md5":"4600469b93ed8260da345139e5594011","name":"ros-jazzy-rosbag2-py","requires":[],"size":504884,"version":"0.26.6","binstar":{"package_id":"667568788094b58af26d0c8e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b7badc64cacb25bc3d9348df859a7985f60103292667754892a21a41693e3d8d"},"ros-jazzy-rosbag2-transport-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-keyboard-handler","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-rosbag2-compression","ros-jazzy-rosbag2-cpp","ros-jazzy-rosbag2-interfaces","ros-jazzy-rosbag2-storage","ros-jazzy-yaml-cpp-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736467717218,"md5":"c78ae82d067f7259cc23d98f0d58b43d","name":"ros-jazzy-rosbag2-transport","requires":[],"size":333771,"version":"0.26.6","binstar":{"package_id":"6675688d30d72cf00ad428cf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fa131958d2faaf6ea16d8f228701c5a38d13f7dfd2c0b4c04bfb030fee4ab498"},"ros-jazzy-ros-base-0.11.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-geometry2","ros-jazzy-kdl-parser","ros-jazzy-robot-state-publisher","ros-jazzy-ros-core","ros-jazzy-ros-workspace","ros-jazzy-rosbag2","ros-jazzy-urdf","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736468906670,"md5":"0224b776332ca497bb5217366e939e55","name":"ros-jazzy-ros-base","requires":[],"size":17861,"version":"0.11.0","binstar":{"package_id":"667568dd4082f06455b9f15e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fafefc6af1b641b8c0b04249e414278a1c318f94862825d8f1107dd696803acb"},"ros-jazzy-ros2bag-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","pyyaml","ros-jazzy-ament-index-python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2cli","ros-jazzy-rosbag2-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736468530159,"md5":"d2009257153cf7cd090bcb60165e0819","name":"ros-jazzy-ros2bag","requires":[],"size":65098,"version":"0.26.6","binstar":{"package_id":"667568deee5d41cd0a2c5d64","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1a334e1c2181bafbff2a85b258f71406669e1e8720fc268a5ec42bb1d2e349d8"},"ros-jazzy-rosbag2-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-ros2bag","ros-jazzy-rosbag2-compression","ros-jazzy-rosbag2-compression-zstd","ros-jazzy-rosbag2-cpp","ros-jazzy-rosbag2-py","ros-jazzy-rosbag2-storage","ros-jazzy-rosbag2-storage-default-plugins","ros-jazzy-rosbag2-transport","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736468711752,"md5":"a85bd6fa27b220f9d139f2763a1208e9","name":"ros-jazzy-rosbag2","requires":[],"size":30203,"version":"0.26.6","binstar":{"package_id":"667568df46886cd670aa1de2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"91d45cf5720fb9c9b36dd8850a108b5b3848b3b1e444d403e9306e84ae198e3a"},"ros-jazzy-rosbag2-tests-0.26.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736468655385,"md5":"885b125b249a53d24cb71d91e97f4e2e","name":"ros-jazzy-rosbag2-tests","requires":[],"size":36294,"version":"0.26.6","binstar":{"package_id":"667568e089a0a00d43ee03c2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"01e9e3957184398dd46c9b297656eb436c8e933d9702ad3bbb93d841a2619cf0"},"ros-jazzy-image-geometry-4.1.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["deprecated","libopencv","py-opencv","python","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","libopencv >=4.10.0,<4.10.1.0a0","py-opencv >=4.10.0,<5.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460516663,"md5":"a0f108ae83dd8ad0d096d962c9c91add","name":"ros-jazzy-image-geometry","requires":[],"size":74184,"version":"4.1.0","binstar":{"package_id":"66756da64b132e6fb114a0fd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bfb15aa1b285fcb63f356c323d12f6faa3d65c97fe1240f6b470870ed6a3036b"},"ros-jazzy-examples-rclcpp-multithreaded-executor-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462188556,"md5":"2cd528aa6bfd2c291fd2a9696577be87","name":"ros-jazzy-examples-rclcpp-multithreaded-executor","requires":[],"size":104005,"version":"0.19.4","binstar":{"package_id":"66756da8ac2b9777ec14a0fd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1178b2c2938010dce1f761262ee480572bde3a99327a9ac8962285ba43b392b5"},"ros-jazzy-examples-rclpy-executors-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462306190,"md5":"50df56b6655d0e5fd206d16f1a3dfb5f","name":"ros-jazzy-examples-rclpy-executors","requires":[],"size":34107,"version":"0.19.4","binstar":{"package_id":"66756daaef58f981caf03a51","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ae4439d31086b5cb1230223127328ff998c73ade10503712282e111bae4c4d74"},"ros-jazzy-examples-rclpy-minimal-publisher-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462165738,"md5":"2daf05add9d694cdfcdc8c769114e400","name":"ros-jazzy-examples-rclpy-minimal-publisher","requires":[],"size":27856,"version":"0.19.4","binstar":{"package_id":"66756daba4dcceecbbee03ce","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6a5ec8b740ad1e33383ce2626be2b47e2ae70e15228663d92423ec10526057ef"},"ros-jazzy-teleop-twist-keyboard-2.4.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462414985,"md5":"02a9eb56e04d3fe47a7b3fe8345cbfae","name":"ros-jazzy-teleop-twist-keyboard","requires":[],"size":28343,"version":"2.4.0","binstar":{"package_id":"66756dadc6d1458eac51b582","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"01608c96442d64d9a3ca4e34da639d52eb53a3572d5a5a9e68840fcb57c73d1d"},"ros-jazzy-examples-rclpy-minimal-subscriber-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462461231,"md5":"08fd0f877416b92cec4b11645e7bbd5e","name":"ros-jazzy-examples-rclpy-minimal-subscriber","requires":[],"size":27400,"version":"0.19.4","binstar":{"package_id":"66756dae78625d52798ce548","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7f680f7e6f62d286c7a722244e9528853affa9aedef01d20b5d26c418174e67b"},"ros-jazzy-image-tools-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["libopencv","py-opencv","python","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","libopencv >=4.10.0,<4.10.1.0a0","py-opencv >=4.10.0,<5.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463987696,"md5":"34d3bf1d5f5e192b46f45a16c1820377","name":"ros-jazzy-image-tools","requires":[],"size":188327,"version":"0.33.5","binstar":{"package_id":"66756daffe5014cb182c5d5b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"76d2a38017659d6efe0e992a9b5dad657ea939f9a5858d0bb00f37efa13eef96"},"ros-jazzy-gz-cmake-vendor-0.0.8-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["gz-cmake3","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","libgz-cmake3 >=3.5.3,<4.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452721408,"md5":"a37c73689878e27d0938ba831455b530","name":"ros-jazzy-gz-cmake-vendor","requires":[],"size":20163,"version":"0.0.8","binstar":{"package_id":"66756dc2ffb31659d6f03a52","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c72741b772eca26f6242280d0c3da08d9db746658ef85bd5fae5aa037d2a99a5"},"ros-jazzy-laser-geometry-2.7.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["eigen","numpy","python","ros-jazzy-eigen3-cmake-module","ros-jazzy-rclcpp","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-sensor-msgs-py","ros-jazzy-tf2","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462471630,"md5":"42c9cb42a629f00c106a60bd608bf4d5","name":"ros-jazzy-laser-geometry","requires":[],"size":57604,"version":"2.7.0","binstar":{"package_id":"66756dc3a6db11e87cee03c0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3d0c56d06068dd0651641dc6c7b83ad3dc5b091f3ca0e1708bafd5a9aced46d7"},"ros-jazzy-map-msgs-2.4.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-nav-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736460663036,"md5":"265269b1991e4c26314763a26a198d59","name":"ros-jazzy-map-msgs","requires":[],"size":315771,"version":"2.4.1","binstar":{"package_id":"66756dc7f55dfda5a251b582","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7db141847e210586961d98407fecc49e438c517f2b4990d6a3fe9fcad22ba50a"},"ros-jazzy-point-cloud-transport-4.0.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-message-filters","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-rcpputils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464050493,"md5":"6176c876a95582a84da85daa6fd56e53","name":"ros-jazzy-point-cloud-transport","requires":[],"size":303919,"version":"4.0.3","binstar":{"package_id":"66756dcee885780c0eee03c1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c27ce2fe0d71b73695f175f456634db47df6739d310089974b431c89cf3fb1bb"},"ros-jazzy-tango-icons-vendor-0.3.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453366735,"md5":"8df14028e2156e158da87427a14d6485","name":"ros-jazzy-tango-icons-vendor","requires":[],"size":530375,"version":"0.3.0","binstar":{"package_id":"66756dd0ab52a592462c5d5f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b5c0bd0400c31ffc1792fa5654c01e8934fe62d43089bd62e6d781b9963850cc"},"ros-jazzy-intra-process-demo-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["libopencv","py-opencv","python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","libopencv >=4.10.0,<4.10.1.0a0","py-opencv >=4.10.0,<5.0a0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462201287,"md5":"22a515a22ac40af73ab205118a04d959","name":"ros-jazzy-intra-process-demo","requires":[],"size":294642,"version":"0.33.5","binstar":{"package_id":"66756dda9c941af3348ce548","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e919c6cc94d00e4c2f89d20618860999d63130fc9facde972e6ec013c4683eca"},"ros-jazzy-lifecycle-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-lifecycle-msgs","ros-jazzy-rclcpp","ros-jazzy-rclcpp-lifecycle","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465593918,"md5":"74c45ac631e24b2ab92588b295b4e922","name":"ros-jazzy-lifecycle","requires":[],"size":174654,"version":"0.33.5","binstar":{"package_id":"66756ddc42233b5cf4aa1dea","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c113191c319c9a278f973932e6a9d8ea7d70c4e1a1b93eb4b4bbfc798d55c1e6"},"ros-jazzy-logging-demo-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463903903,"md5":"1e5ef848fd5c9c8338f18aea3b632596","name":"ros-jazzy-logging-demo","requires":[],"size":191909,"version":"0.33.5","binstar":{"package_id":"66756dde0b8eac60dd9f4a28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2e6bf49e303f786f768441096dd41ca81bf582d421e28ebaf1c035861161fedd"},"ros-jazzy-action-tutorials-interfaces-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459001230,"md5":"217d3b34663f1f85ff24bc11d4cee2e9","name":"ros-jazzy-action-tutorials-interfaces","requires":[],"size":179933,"version":"0.33.5","binstar":{"package_id":"66756dde9b7e1b325c14a0fe","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"479aca963347b34e306a423824a4dd8ccbc174b5f3fd2588d3ca0734c8056a7b"},"ros-jazzy-dummy-map-server-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-nav-msgs","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462480379,"md5":"1f2111ac3200798df43e128a1489f5f0","name":"ros-jazzy-dummy-map-server","requires":[],"size":71108,"version":"0.33.5","binstar":{"package_id":"66756de0880576047aaa1de7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"eb5a0a8f8aeeaccac4da03dac13b04bd3a388799ddf6886442036b8f324e1163"},"ros-jazzy-quality-of-service-demo-py-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462179529,"md5":"cfbb85639a5b55871a4cbd3c6fbbd790","name":"ros-jazzy-quality-of-service-demo-py","requires":[],"size":41272,"version":"0.33.5","binstar":{"package_id":"66756de088da76b42d9f4a28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"696515b96ae1ddb292fb30f03019a23df68c37d517705e08c2fecdc0e041b749"},"ros-jazzy-topic-monitor-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463019999,"md5":"f606f5ef9b6b7c0885badca421b304aa","name":"ros-jazzy-topic-monitor","requires":[],"size":54978,"version":"0.33.5","binstar":{"package_id":"66756de203450ee206ee03bf","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bccfa1bdef9059fcd5e4872ab2b09db95672dc5c1b4af8b8826ca3208a32d873"},"ros-jazzy-dummy-sensors-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462433101,"md5":"0a09440c368976ddaac3e79e196d5618","name":"ros-jazzy-dummy-sensors","requires":[],"size":85396,"version":"0.33.5","binstar":{"package_id":"66756de2dc74417f23aa1de6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2e291a13616e369cb339bc466ec0612bb262ace53e74442302ab3d2c1b4dc680"},"ros-jazzy-pendulum-msgs-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459045938,"md5":"f4594733210b2311690be0a9395cafaa","name":"ros-jazzy-pendulum-msgs","requires":[],"size":101859,"version":"0.33.5","binstar":{"package_id":"66756de40e41b4d892899849","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f63bf817cd377d330d21cc64a228b7ebba4c8b164d1b173b1aa40602a2225eeb"},"ros-jazzy-turtlesim-1.8.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","qt-main","ros-jazzy-ament-index-cpp","ros-jazzy-geometry-msgs","ros-jazzy-rcl-interfaces","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros-jazzy-std-srvs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","qt-main >=5.15.15,<5.16.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462765479,"md5":"69b4e263eabd15c05359fc3a7cbd16cd","name":"ros-jazzy-turtlesim","requires":[],"size":636271,"version":"1.8.3","binstar":{"package_id":"66756de5256864bea9899847","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0137a0b6b71a945d69b45f50da849cd9b1b032e5b730e38ef47a9d334a79e545"},"ros-jazzy-demo-nodes-cpp-native-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-rmw-fastrtps-cpp","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464092257,"md5":"f3525f69d2a19d6292ca58adc38618ad","name":"ros-jazzy-demo-nodes-cpp-native","requires":[],"size":93963,"version":"0.33.5","binstar":{"package_id":"66756dec834184236ff03a53","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9fbd16ae06407eabf4889ef40abe7c91f49cf8c4c80f8456e7e043edd70c6221"},"ros-jazzy-examples-rclcpp-minimal-composition-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463242068,"md5":"7f5cb06d997f3d0d26fa42e379b23312","name":"ros-jazzy-examples-rclcpp-minimal-composition","requires":[],"size":126317,"version":"0.19.4","binstar":{"package_id":"66756ded25603a3d39ee03c5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f9135babcd7505660e26718fc61181c37ce12bd4aaa8a9a899fb1439a59d53df"},"ros-jazzy-examples-rclcpp-minimal-publisher-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462536973,"md5":"dcc6cb976af5cce85296cb396ae047af","name":"ros-jazzy-examples-rclcpp-minimal-publisher","requires":[],"size":146248,"version":"0.19.4","binstar":{"package_id":"66756dee42233b5cf4aa1dec","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f8a5a21c03d02a1e79685275fcc9bab32815baea4eca2e9ac1dbfaea617c65a4"},"ros-jazzy-examples-rclcpp-minimal-subscriber-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463147942,"md5":"df46e5e39cca6ce6829266ce0d4a12b1","name":"ros-jazzy-examples-rclcpp-minimal-subscriber","requires":[],"size":327812,"version":"0.19.4","binstar":{"package_id":"66756df07e40df0ae6f03a51","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"96979667e219b9cdbc36c62dfb826809a6160e973119db9aa4a54111e675721c"},"ros-jazzy-examples-rclcpp-minimal-timer-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462458242,"md5":"def326847cccb3cb1122085b008a2d07","name":"ros-jazzy-examples-rclcpp-minimal-timer","requires":[],"size":43738,"version":"0.19.4","binstar":{"package_id":"66756df12f207b1976ee03c9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"07cde4b2059f71e1fb8639c541b6477c4f6d0b0f8af9a905e65050ba53bf411c"},"ros-jazzy-cv-bridge-4.1.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["libboost-python","libopencv","numpy","py-opencv","python","ros-jazzy-ament-index-python","ros-jazzy-rclcpp","ros-jazzy-rcpputils","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","libopencv >=4.10.0,<4.10.1.0a0","numpy >=1.26.4,<2.0a0","libboost-python >=1.86.0,<1.87.0a0","libboost >=1.86.0,<1.87.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","py-opencv >=4.10.0,<5.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462164704,"md5":"0b2dcf19ceb773dd2a64d6d899c3792a","name":"ros-jazzy-cv-bridge","requires":[],"size":143408,"version":"4.1.0","binstar":{"package_id":"66756e019b7e1b325c14a101","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"dba83f23c3458c851e0cf237aac7f4e3771d6df3f032938b89c98bf97ad4d1e1"},"ros-jazzy-example-interfaces-0.12.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459046809,"md5":"c0ba6b206b6418f0dd807cd2c8831474","name":"ros-jazzy-example-interfaces","requires":[],"size":475378,"version":"0.12.0","binstar":{"package_id":"66756e02ff629eabab2c5d5d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9ddac7afad48ca3410d52b75805778568a7263f98bc62aad52c3e7ff1f2e1345"},"ros-jazzy-image-transport-5.1.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-message-filters","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464135930,"md5":"abfe272afa91a6634556fa2dc98e07d2","name":"ros-jazzy-image-transport","requires":[],"size":357483,"version":"5.1.5","binstar":{"package_id":"66756e03074cff9aae8ce548","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1f0d6445dbfc846b58cb392042698a03c52f373b888e3ca19e7e873209530033"},"ros-jazzy-interactive-markers-2.5.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-rclcpp","ros-jazzy-rclpy","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465692098,"md5":"8438bad66ab1040046a70510f6e32179","name":"ros-jazzy-interactive-markers","requires":[],"size":208573,"version":"2.5.4","binstar":{"package_id":"66756e044b132e6fb114a100","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e82c7d75ab6094dfbdc9e67cdb15c692727f77801aecb6084263033f1ec73afc"},"ros-jazzy-sdl2-vendor-3.3.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","sdl2","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","sdl2 >=2.30.10,<3.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451567698,"md5":"cecba6e1e5fbd64742b7b0430b2ac94e","name":"ros-jazzy-sdl2-vendor","requires":[],"size":18497,"version":"3.3.0","binstar":{"package_id":"66756e06073efbe82e2c5d5c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9cbe74e46517cafe7ef1b4c27d7ea4ce5da2e83db1d789fbaee78631c07eeaea"},"ros-jazzy-urdfdom-py-1.2.1-h9490d1a_0.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"h9490d1a_0","build_number":0,"depends":["urdfdom-py 1.2.1.*","python 3.11.* *_cpython"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449445384,"md5":"404b894de0224fa90ca501eedd358bab","name":"ros-jazzy-urdfdom-py","requires":[],"size":1829,"version":"1.2.1","binstar":{"package_id":"6777b8a04d249915aae62866","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d59a7b5ea7b8be4e78e9c2323fcdddb80437a1d2211080d60cb729a920e08b86"},"ros-jazzy-sdformat-test-files-1.0.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["cmake","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736449915321,"md5":"4d803884393b45c7eede363f6a9d08d4","name":"ros-jazzy-sdformat-test-files","requires":[],"size":100524,"version":"1.0.2","binstar":{"package_id":"6777be01c6e1dff6c53bfa4e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ddb5c7388cfcd1397860986f5d298e55163ea14e9ab6dff26f88e39d39949012"},"ros-jazzy-ament-cmake-catch2-1.4.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-test","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736485589632,"md5":"ddf528f47e96a3cd58ea2465c7e108bf","name":"ros-jazzy-ament-cmake-catch2","requires":[],"size":17988,"version":"1.4.1","binstar":{"package_id":"6777becb6cc931c2af4fb93c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ebcd229802a68462f2d61446f55dc318cb69ee732b62996093ec4cbf5eed1e6c"},"ros-jazzy-angles-1.16.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451700853,"md5":"e6bb66f4b4d57e602ba152fe5c6e4d3d","name":"ros-jazzy-angles","requires":[],"size":28241,"version":"1.16.0","binstar":{"package_id":"6777bfe512934ced4901b109","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"90ee82cedaae96778350d4a1d609c2c0f5717cb954262a4d5cb76348a459206c"},"ros-jazzy-libcurl-vendor-3.4.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["libcurl","pkg-config","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","libcurl >=8.11.1,<9.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451645055,"md5":"9b6eaca72b7bd675d4328c745b66a4f1","name":"ros-jazzy-libcurl-vendor","requires":[],"size":19066,"version":"3.4.3","binstar":{"package_id":"6777bfed080f624e0c3bfa58","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"edc054d2d18e33484bf14bd94b09f8d90508626970009b48e76f720d4b35ee16"},"ros-jazzy-xacro-2.0.11-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","pyyaml","ros-jazzy-ament-index-python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736451672189,"md5":"001a87cfd5679eaee8bd9b6e75743ba7","name":"ros-jazzy-xacro","requires":[],"size":81943,"version":"2.0.11","binstar":{"package_id":"6777bff40fdc98202abbe846","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ecb5c54c192f3bbd43afb0fb8597f03e791b87faef93d8e39eac50655b5a98d0"},"ros-jazzy-gz-dartsim-vendor-0.0.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["assimp","bullet","dartsim-cpp","eigen","fcl","fmt","libboost-devel","libccd-double","lz4","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","tinyxml2","urdfdom","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","tinyxml2 >=10.0.0,<11.0a0","python_abi 3.11.* *_cp311","dartsim-cpp >=6.15.0,<6.16.0a0","libboost >=1.86.0,<1.87.0a0","fcl >=0.7.0,<0.8.0a0","libccd-double >=2.1,<2.2.0a0","assimp >=5.4.3,<5.4.4.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","urdfdom >=4.0.1,<4.1.0a0","fmt >=11.0.2,<12.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452856629,"md5":"f4c007954740b2a061f6665bf4aa70fc","name":"ros-jazzy-gz-dartsim-vendor","requires":[],"size":36234,"version":"0.0.3","binstar":{"package_id":"6777c15c1d825a17294fb946","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"9a48491f91ad60b12e27bd49b3573771c216a297470d349c53b5b0ad351ea483"},"ros-jazzy-gz-ogre-next-vendor-0.0.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["freeimage","freetype","glslang","libboost-devel","libvulkan-headers","libvulkan-loader","ogre-next","poco","python","rapidjson","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","sdl2","shaderc","tbb","tbb-devel","tinyxml2","xorg-libx11","xorg-xorgproto","zziplib","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","xorg-libx11 >=1.8.10,<2.0a0","libboost >=1.86.0,<1.87.0a0","poco >=1.14.0,<1.14.1.0a0","zziplib >=0.13.69,<0.14.0a0","freetype >=2.12.1,<3.0a0","shaderc >=2023.7,<2023.8.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","sdl2 >=2.30.10,<3.0a0","tinyxml2 >=10.0.0,<11.0a0","freeimage >=3.18.0,<3.19.0a0","tbb >=2022.0.0","numpy >=1.26.4,<2.0a0","ogre-next >=2.3.3,<2.3.4.0a0","glslang >=13,<14.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452662973,"md5":"886f8add2a049fcd7884d7de116645dc","name":"ros-jazzy-gz-ogre-next-vendor","requires":[],"size":27719,"version":"0.0.5","binstar":{"package_id":"6777c160726ad61dcbbbe834","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"267e090e948cedee810b054a5fc692d82cbd2d954ab2e7c4939e5608b0ce5e11"},"ros-jazzy-rviz-assimp-vendor-14.1.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["assimp","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","assimp >=5.4.3,<5.4.4.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453116506,"md5":"46161b07840b65f79493af1e650417b0","name":"ros-jazzy-rviz-assimp-vendor","requires":[],"size":20092,"version":"14.1.6","binstar":{"package_id":"6777c25ecb96cd07983bfa53","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e48ccf8df39d09581a589260ce026a8c324005df9316a3c8b7ff83eafba2f91c"},"ros-jazzy-rviz-ogre-vendor-14.1.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["assimp","freetype","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","xorg-libx11","xorg-xorgproto","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","freeimage >=3.18.0,<3.19.0a0","assimp >=5.4.3,<5.4.4.0a0","python_abi 3.11.* *_cp311","xorg-libx11 >=1.8.10,<2.0a0","numpy >=1.26.4,<2.0a0","libzlib >=1.3.1,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","freetype >=2.12.1,<3.0a0","pugixml >=1.14,<1.15.0a0","zziplib >=0.13.69,<0.14.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736452756212,"md5":"f675483ba1bf0765c2f8f52ddc743b11","name":"ros-jazzy-rviz-ogre-vendor","requires":[],"size":5296393,"version":"14.1.6","binstar":{"package_id":"6777c2621ef605a0814fb94a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"adbb6b3457cf84f483bdf6a37f40d27477068c78acce1c7db8c101a501c9f9b1"},"ros-jazzy-gz-tools-vendor-0.0.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["gz-tools2","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","ruby","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","libgz-tools2 >=2.0.1,<3.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453477310,"md5":"8972eb4ce1383f2896b69114a8c9be36","name":"ros-jazzy-gz-tools-vendor","requires":[],"size":14818803,"version":"0.0.5","binstar":{"package_id":"6777c2c1c95d6fa79f3bfa4e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"66386ed2e8eeac462d27c67c7838421b722a94bf20a950513810851bd9f812b5"},"ros-jazzy-gz-utils-vendor-0.0.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["gz-utils2","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","libgz-utils2 >=2.2.0,<3.0a0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453449421,"md5":"a95f011f3d99e00585d3192bbe5ea0fd","name":"ros-jazzy-gz-utils-vendor","requires":[],"size":21523,"version":"0.0.4","binstar":{"package_id":"6777c2c36c8a45ba683bfa59","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"11a127fdaa960d2784b45d80b1f63186d89cc6de9eef0e67660578c05dd94e6d"},"ros-jazzy-python-qt-binding-2.2.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["pyqt","pyqt-builder","python","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","pyqt >=5.15.9,<5.16.0a0","qt-main >=5.15.15,<5.16.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736453238397,"md5":"4fcb15e62f32a015a11c323e30a128a3","name":"ros-jazzy-python-qt-binding","requires":[],"size":48103,"version":"2.2.1","binstar":{"package_id":"6777c2c4e487d3e8fe01b120","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6124d55960af9abba51dc1072d5b6baac152b37da89d724d524c8af843e91b70"},"ros-jazzy-qt-dotgraph-2.7.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["pydot","python","ros-jazzy-python-qt-binding","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454277898,"md5":"d2f26c834cbf65d9ad72da12fb765450","name":"ros-jazzy-qt-dotgraph","requires":[],"size":54095,"version":"2.7.5","binstar":{"package_id":"6777c42a7b74ce9ea13bfa4d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2471cc6c6265fae2138c2d6c296a96e8e530a3cbc499e40b4892371d2c35adb6"},"ros-jazzy-qt-gui-py-common-2.7.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-python","ros-jazzy-python-qt-binding","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454177671,"md5":"6299a1e301c363210907ccac8ef68bca","name":"ros-jazzy-qt-gui-py-common","requires":[],"size":35066,"version":"2.7.5","binstar":{"package_id":"6777c42b8f28bfae64ee3f5e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"4c3ebf39b179c9ec4c57485925fb30efc98f75d7cdb8b0de156b8bacff374d39"},"ros-jazzy-gz-math-vendor-0.0.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["eigen","gz-math7","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-gz-utils-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","libgz-math7 >=7.5.1,<8.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454286598,"md5":"0b2c513411483b8673633963abbedfbd","name":"ros-jazzy-gz-math-vendor","requires":[],"size":23254,"version":"0.0.7","binstar":{"package_id":"6777c44270a374103d3b969a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b67e7d331a3cd6bee06739cd05a3b3f3bee9f091c2bd395d8b60d8a1ff27f24c"},"ros-jazzy-gz-plugin-vendor-0.0.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["gz-plugin2","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-gz-tools-vendor","ros-jazzy-gz-utils-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","libgz-plugin2 >=2.0.3,<3.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454382735,"md5":"156b41a176cf491bea3bf2d0d5b46d9a","name":"ros-jazzy-gz-plugin-vendor","requires":[],"size":22422,"version":"0.0.4","binstar":{"package_id":"6777c444283e553519ee3f5e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"e689af5ba7fd6c46f9f92265eb3ab01989d4fa9170ee85f596cffb628e7b9b50"},"ros-jazzy-qt-gui-2.7.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["catkin_pkg","python","ros-jazzy-ament-index-python","ros-jazzy-python-qt-binding","ros-jazzy-ros-workspace","ros-jazzy-tango-icons-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","pyqt >=5.15.9,<5.16.0a0","qt-main >=5.15.15,<5.16.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454508920,"md5":"a985603657b5d183425c5975c5bf995c","name":"ros-jazzy-qt-gui","requires":[],"size":164151,"version":"2.7.5","binstar":{"package_id":"6777c4452e18f789063b969a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f549fe590489b1b96c6b1d2e97f01270945c65ccced3db08e0e38eb48537f67e"},"ros-jazzy-resource-retriever-3.4.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-cpp","ros-jazzy-ament-index-python","ros-jazzy-libcurl-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454324417,"md5":"b1324e65319c23ff290b4c0f81f40edf","name":"ros-jazzy-resource-retriever","requires":[],"size":42406,"version":"3.4.3","binstar":{"package_id":"6777c446e98b99d2473b969c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"167eea1c8abf48a84bfcc3c69198d13b4e1152ce76ad761ba4549dabd2c819d4"},"ros-jazzy-gz-common-vendor-0.0.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["assimp","ffmpeg","freeimage","gts","gz-common5","libgdal","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-gz-math-vendor","ros-jazzy-gz-utils-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","tinyxml2","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ffmpeg >=7.1.0,<8.0a0","numpy >=1.26.4,<2.0a0","gts >=0.7.6,<0.8.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","freeimage >=3.18.0,<3.19.0a0","libgz-common5 >=5.6.0,<6.0a0","libgdal-core >=3.10.0,<3.11.0a0","libgdal >=3.10.0,<3.11.0a0","tinyxml2 >=10.0.0,<11.0a0","assimp >=5.4.3,<5.4.4.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454791635,"md5":"8517946cda21358a9fa1c46ef37a0489","name":"ros-jazzy-gz-common-vendor","requires":[],"size":37677,"version":"0.0.7","binstar":{"package_id":"6777c497d42833eb3fbbe839","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d2c03be74c19369f18dd07dc54e36762b09ebd901705d4e911464a082a455498"},"ros-jazzy-gz-msgs-vendor-0.0.5-np126py311hbf13b40_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311hbf13b40_1","build_number":1,"depends":["gz-msgs10","libprotobuf","protobuf","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-gz-math-vendor","ros-jazzy-gz-tools-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","tinyxml2","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","libgz-msgs10 >=10.3.0,<11.0a0","numpy >=1.26.4,<2.0a0","tinyxml2 >=10.0.0,<11.0a0","libprotobuf >=5.28.2,<5.28.3.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454660516,"md5":"dd7b563217a2d59b9dddd75dd864d6a4","name":"ros-jazzy-gz-msgs-vendor","requires":[],"size":24707,"version":"0.0.5","binstar":{"package_id":"6777c49d43a826f1353bfa4f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1fe312ed9fe9446f4554febdc7d01340179161d7fedf547420e53d8835456ab5"},"ros-jazzy-rviz-rendering-14.1.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["eigen","python","qt-main","ros-jazzy-ament-index-cpp","ros-jazzy-eigen3-cmake-module","ros-jazzy-resource-retriever","ros-jazzy-ros-workspace","ros-jazzy-rviz-assimp-vendor","ros-jazzy-rviz-ogre-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","glew >=2.1.0,<2.2.0a0","python_abi 3.11.* *_cp311","qt-main >=5.15.15,<5.16.0a0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454887192,"md5":"e6b161c09579c42dd4d9544d9215cb40","name":"ros-jazzy-rviz-rendering","requires":[],"size":866651,"version":"14.1.6","binstar":{"package_id":"6777c4c85687576dae3b96a1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"be30f962eb2539c42054eba609b57328fe99f49d673af53445fb7062534e26de"},"ros-jazzy-sdformat-vendor-0.0.8-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["pybind11","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-gz-math-vendor","ros-jazzy-gz-tools-vendor","ros-jazzy-gz-utils-vendor","ros-jazzy-ros-workspace","ros-jazzy-urdfdom","ros2-distro-mutex 0.6.* jazzy_*","sdformat14","tinyxml2","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","libsdformat14 >=14.5.0,<15.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","tinyxml2 >=10.0.0,<11.0a0","libxml2 >=2.13.5,<3.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736454805257,"md5":"4069870f7d393b5d416df103a8adda05","name":"ros-jazzy-sdformat-vendor","requires":[],"size":26992,"version":"0.0.8","binstar":{"package_id":"6777c4c99cf4135cd5ee3f5f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0e57969f996c9a303917e857483b56bdd68cdb9b5aa63291f80965b5d40b6d8b"},"ros-jazzy-gz-fuel-tools-vendor-0.0.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["gflags","gz-fuel-tools9","jsoncpp","libcurl","libzip","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-gz-common-vendor","ros-jazzy-gz-math-vendor","ros-jazzy-gz-msgs-vendor","ros-jazzy-gz-tools-vendor","ros-jazzy-gz-utils-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","tinyxml2","yaml","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","gflags >=2.2.2,<2.3.0a0","tinyxml2 >=10.0.0,<11.0a0","libcurl >=8.11.1,<9.0a0","python_abi 3.11.* *_cp311","jsoncpp >=1.9.6,<1.9.7.0a0","yaml >=0.2.5,<0.3.0a0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","libgz-fuel-tools9 >=9.0.3,<10.0a0","libzip >=1.11.2,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455495105,"md5":"a8394e40a622b94ec54f8baf4e43eb07","name":"ros-jazzy-gz-fuel-tools-vendor","requires":[],"size":39257,"version":"0.0.5","binstar":{"package_id":"6777c5266c8a45ba683bfa64","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"ec94c11a35163a862aa0bbc150981581b3712fd31adb2895b41be9fda2f096e1"},"ros-jazzy-gz-physics-vendor-0.0.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["benchmark","bullet","eigen","gz-physics7","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-gz-common-vendor","ros-jazzy-gz-dartsim-vendor","ros-jazzy-gz-math-vendor","ros-jazzy-gz-plugin-vendor","ros-jazzy-gz-utils-vendor","ros-jazzy-ros-workspace","ros-jazzy-sdformat-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","libgz-physics7 >=7.3.0,<8.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455393222,"md5":"6daf603b6bc3dedecd7011217e2bea4f","name":"ros-jazzy-gz-physics-vendor","requires":[],"size":46450,"version":"0.0.5","binstar":{"package_id":"6777c52a9e210c51f0bbe836","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"62b9496a307e8376b2f4bbe45030c8a5aaeb084d093df85ecc4ff90105c26922"},"ros-jazzy-gz-rendering-vendor-0.0.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["freeglut","freeimage","glew","gz-rendering8","libvulkan-headers","libvulkan-loader","ogre","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-gz-common-vendor","ros-jazzy-gz-math-vendor","ros-jazzy-gz-ogre-next-vendor","ros-jazzy-gz-plugin-vendor","ros-jazzy-gz-utils-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","swig","xorg-libxi","xorg-libxmu","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","libgz-rendering8 >=8.2.0,<9.0a0","python_abi 3.11.* *_cp311","xorg-libxmu >=1.2.1,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","freeglut >=3.2.2,<4.0a0","ogre >=1.10.12.1,<1.11.0a0","freeimage >=3.18.0,<3.19.0a0","xorg-libxi >=1.8.2,<2.0a0","glew >=2.1.0,<2.2.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455178749,"md5":"51d2109ed4c9101643ecf513ebf69864","name":"ros-jazzy-gz-rendering-vendor","requires":[],"size":43027,"version":"0.0.5","binstar":{"package_id":"6777c52c76318dc690bbe83d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"50a0487847e341a63ac934f1d9d8381e05c4630113943357bd6cb8a19d760893"},"ros-jazzy-gz-transport-vendor-0.0.5-np126py311hbf13b40_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311hbf13b40_1","build_number":1,"depends":["cppzmq","gz-transport13","libprotobuf","pkg-config","protobuf","psutil","pybind11","pytest","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-gz-math-vendor","ros-jazzy-gz-msgs-vendor","ros-jazzy-gz-tools-vendor","ros-jazzy-gz-utils-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","sqlite","zeromq","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","libsqlite >=3.47.2,<4.0a0","zeromq >=4.3.5,<4.3.6.0a0","libprotobuf >=5.28.2,<5.28.3.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","libgz-transport13 >=13.4.0,<14.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455386321,"md5":"75a081b1f267c5183b3ad2cc23ffbee8","name":"ros-jazzy-gz-transport-vendor","requires":[],"size":26327,"version":"0.0.5","binstar":{"package_id":"6777c52fe7bc1962d8ee3f5f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0dd35184859ab70b0591fa5ff143137af626068b59335faab03cbfee20437ddc"},"ros-jazzy-rviz-rendering-tests-14.1.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-resource-retriever","ros-jazzy-ros-workspace","ros-jazzy-rviz-rendering","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","qt-main >=5.15.15,<5.16.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455286847,"md5":"3481f318a2ad0b96786568f63d6b583e","name":"ros-jazzy-rviz-rendering-tests","requires":[],"size":26473,"version":"14.1.6","binstar":{"package_id":"6777c53c1b37c47cf0ee3f60","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3094b58ae97b774ec6692fd7de44b3d0c9cf3a2b99d14817e215e98648a7f79c"},"ros-jazzy-gz-gui-vendor-0.0.4-np126py311hbf13b40_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311hbf13b40_1","build_number":1,"depends":["gz-gui8","libprotobuf","protobuf","python","qt-main","ros-jazzy-gz-cmake-vendor","ros-jazzy-gz-common-vendor","ros-jazzy-gz-math-vendor","ros-jazzy-gz-msgs-vendor","ros-jazzy-gz-plugin-vendor","ros-jazzy-gz-rendering-vendor","ros-jazzy-gz-tools-vendor","ros-jazzy-gz-transport-vendor","ros-jazzy-gz-utils-vendor","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","tinyxml2","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","libprotobuf >=5.28.2,<5.28.3.0a0","qt-main >=5.15.15,<5.16.0a0","tinyxml2 >=10.0.0,<11.0a0","python_abi 3.11.* *_cp311","libgz-gui8 >=8.3.0,<9.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736456088010,"md5":"3ac8e842af5ba59b05e21527ce456237","name":"ros-jazzy-gz-gui-vendor","requires":[],"size":28483782,"version":"0.0.4","binstar":{"package_id":"6777c5964b76e5fa113b969d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"21b6299b6ef8071eeb28cbc2f12fd3f7049d839ea658eb108fa8811c12b0ce5e"},"ros-jazzy-gz-sensors-vendor-0.0.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["gz-sensors8","python","ros-jazzy-gz-cmake-vendor","ros-jazzy-gz-common-vendor","ros-jazzy-gz-math-vendor","ros-jazzy-gz-msgs-vendor","ros-jazzy-gz-rendering-vendor","ros-jazzy-gz-tools-vendor","ros-jazzy-gz-transport-vendor","ros-jazzy-ros-workspace","ros-jazzy-sdformat-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","libgz-sensors8 >=8.2.0,<9.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736455744100,"md5":"a20e0903454c63ed5130a4d9674efc48","name":"ros-jazzy-gz-sensors-vendor","requires":[],"size":28841271,"version":"0.0.5","binstar":{"package_id":"6777c5988f28bfae64ee3f64","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a788f06c003769c21a4b4906d24bde6ff5904c56689dcd37cbc2a7cd2738e5e6"},"ros-jazzy-gz-sim-vendor-0.0.6-np126py311hbf13b40_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311hbf13b40_1","build_number":1,"depends":["benchmark","freeglut","freeimage","glew","gz-sim8","libprotobuf","protobuf","pybind11","python","qt-main","ros-jazzy-gz-cmake-vendor","ros-jazzy-gz-common-vendor","ros-jazzy-gz-fuel-tools-vendor","ros-jazzy-gz-gui-vendor","ros-jazzy-gz-math-vendor","ros-jazzy-gz-msgs-vendor","ros-jazzy-gz-physics-vendor","ros-jazzy-gz-plugin-vendor","ros-jazzy-gz-rendering-vendor","ros-jazzy-gz-sensors-vendor","ros-jazzy-gz-tools-vendor","ros-jazzy-gz-transport-vendor","ros-jazzy-gz-utils-vendor","ros-jazzy-ros-workspace","ros-jazzy-sdformat-vendor","ros2-distro-mutex 0.6.* jazzy_*","tinyxml2","xorg-libxi","xorg-libxmu","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","xorg-libxmu >=1.2.1,<2.0a0","libprotobuf >=5.28.2,<5.28.3.0a0","python_abi 3.11.* *_cp311","libgz-sim8 >=8.6.0,<9.0a0","tinyxml2 >=10.0.0,<11.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","freeglut >=3.2.2,<4.0a0","freeimage >=3.18.0,<3.19.0a0","glew >=2.1.0,<2.2.0a0","xorg-libxi >=1.8.2,<2.0a0","qt-main >=5.15.15,<5.16.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736456602542,"md5":"7b0600209852e5ee1b1978bd9e0d7b9b","name":"ros-jazzy-gz-sim-vendor","requires":[],"size":28567183,"version":"0.0.6","binstar":{"package_id":"6777c5fb9cd256cccc3bfa6a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1865c6c8226bacfa8d51aa378701ce29b4a08fdd52afbef4699aa66a46a3eca5"},"ros-jazzy-qt-gui-cpp-2.7.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["pep517","pyqt-builder","python","ros-jazzy-pluginlib","ros-jazzy-qt-gui","ros-jazzy-ros-workspace","ros-jazzy-tinyxml2-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","qt-main >=5.15.15,<5.16.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736457268805,"md5":"dc7c30c2b1cf5430b8f2a42246a654d6","name":"ros-jazzy-qt-gui-cpp","requires":[],"size":23952,"version":"2.7.5","binstar":{"package_id":"6777c6bc072330a8f73b969f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cdd4f488960dfa5a54cbbf26feb0bf95cf982645ba384664f02f9e3448649fad"},"ros-jazzy-sdformat-urdf-1.0.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-ros","ros-jazzy-pluginlib","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-sdformat-vendor","ros-jazzy-tinyxml2-vendor","ros-jazzy-urdf","ros-jazzy-urdf-parser-plugin","ros2-distro-mutex 0.6.* jazzy_*","urdfdom_headers","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736457566299,"md5":"abc491ae02a447f5ace9ae9b65ea3a88","name":"ros-jazzy-sdformat-urdf","requires":[],"size":69708,"version":"1.0.2","binstar":{"package_id":"6777c717e7bc1962d8ee3f62","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"db855c628c6fc186403317f4d5c3d5ecd96d526560460b4bb3895f2f026a99ea"},"ros-jazzy-actuator-msgs-0.0.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459659199,"md5":"8b5e40a00de34436617f15520d0e22ee","name":"ros-jazzy-actuator-msgs","requires":[],"size":145799,"version":"0.0.1","binstar":{"package_id":"6777c9b1b89b363eb8ee3f6f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"667816faf364d4f8be76f85218f453647a6f244fc7fa0205b6f30115029cb7f1"},"ros-jazzy-gps-msgs-2.0.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459609641,"md5":"962409bfa8661643c5aeb4934b5a9ef3","name":"ros-jazzy-gps-msgs","requires":[],"size":126823,"version":"2.0.4","binstar":{"package_id":"6777c9b2ee7f3ec9a9ee3f69","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"cb13cfc68db1cd9899fcde25948f6d81305d1e035b746897d984b9c78b204137"},"ros-jazzy-ros-gz-interfaces-1.0.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-builtin-interfaces","ros-jazzy-geometry-msgs","ros-jazzy-rcl-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459994218,"md5":"24ea23829d86ec40a565d750428c7a7f","name":"ros-jazzy-ros-gz-interfaces","requires":[],"size":456394,"version":"1.0.7","binstar":{"package_id":"6777caba71d2ff3380c846c0","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"11452064ddb3369edc1d3de0cf21677a8df2fdfa1f82db5f6b0fcd3bf3f8eaab"},"ros-jazzy-vision-msgs-4.1.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736459840559,"md5":"cf0408ce7cd3ad4183c383fcb435ea0e","name":"ros-jazzy-vision-msgs","requires":[],"size":245834,"version":"4.1.1","binstar":{"package_id":"6777cabc0eb0c3214ec846c6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"5e6f3e60e0c3016fd0e205e5aca1324a37e34e468ec60d3d9b84235620751db2"},"ros-jazzy-examples-rclpy-minimal-action-server-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462262779,"md5":"e91d2866d9fa255fe9f891473dba9263","name":"ros-jazzy-examples-rclpy-minimal-action-server","requires":[],"size":33639,"version":"0.19.4","binstar":{"package_id":"6777ce1fcd4f7fe7382fbbfc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"680468fcf138ad1cfdecb648266e4210772ec8b0e3a2145558ee35c4aa34a618"},"ros-jazzy-examples-rclpy-minimal-client-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462242609,"md5":"89df8e7feb38a824107a673e7552e601","name":"ros-jazzy-examples-rclpy-minimal-client","requires":[],"size":29175,"version":"0.19.4","binstar":{"package_id":"6777ce20c5960d1d89c846d6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6d560de0d53d3a475773dc93ce3f9799fbf53fec803faf2ec29bc9da894ba803"},"ros-jazzy-examples-rclpy-minimal-service-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462482330,"md5":"dc938c92cb8c332557c95280f6bddbbc","name":"ros-jazzy-examples-rclpy-minimal-service","requires":[],"size":26586,"version":"0.19.4","binstar":{"package_id":"6777ce235687576dae3b96c2","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"10e007ba629552169f5e6d6f2eb1d9dee476380a890fb5f833c4ad1af6b5b550"},"ros-jazzy-action-tutorials-py-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-action-tutorials-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462109939,"md5":"92e1b60ad83fb5eb7becc4a78165d64f","name":"ros-jazzy-action-tutorials-py","requires":[],"size":35907,"version":"0.33.5","binstar":{"package_id":"6777ce3854270fe296c846ca","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"826e59b839b4e1fcd224a14f61bf3e455c37fded84c658c4aef45754adce590e"},"ros-jazzy-examples-rclcpp-minimal-service-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462494861,"md5":"dae50ce62d3a9f75e13e88b1e18163f7","name":"ros-jazzy-examples-rclcpp-minimal-service","requires":[],"size":47377,"version":"0.19.4","binstar":{"package_id":"6777ce39c5779afe9bc846ce","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d17108fc60205d5c17e84210c4aa61b2f0d84413b763b6d8b39afe2747688d66"},"ros-jazzy-examples-rclcpp-minimal-client-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462590564,"md5":"8f56f2ff2967eb92d274a42a842d4aa4","name":"ros-jazzy-examples-rclcpp-minimal-client","requires":[],"size":52036,"version":"0.19.4","binstar":{"package_id":"6777ce3a283e553519ee3f75","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"807b48ce68e26c7c0a402aee7046e673d527d540ad82a847fc726c65f5a3747a"},"ros-jazzy-examples-rclpy-minimal-action-client-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-action-msgs","ros-jazzy-example-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462288105,"md5":"09a0203a9458d75755be307d782d205b","name":"ros-jazzy-examples-rclpy-minimal-action-client","requires":[],"size":32021,"version":"0.19.4","binstar":{"package_id":"6777ce40e98b99d2473b96c6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"946c444e0465fdd5a29f8a2fff4dfe5e2ca5973db440a6ec1216ed46a932bccf"},"ros-jazzy-rqt-gui-cpp-1.6.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-pluginlib","ros-jazzy-qt-gui-cpp","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","qt-main >=5.15.15,<5.16.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462223465,"md5":"2709f4aec129d2ff7d20570e6ce90d47","name":"ros-jazzy-rqt-gui-cpp","requires":[],"size":33215,"version":"1.6.0","binstar":{"package_id":"6777ce50e8b8e2b2622fbc13","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2bd4c90a3b094ebd0f26faeb2a4986e2c797fdcafebdca41d91ac1ebe54ccd6e"},"ros-jazzy-rqt-py-common-1.6.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","qt-main","ros-jazzy-python-qt-binding","ros-jazzy-qt-gui","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","qt-main >=5.15.15,<5.16.0a0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462065932,"md5":"ca6e813ea9144f21fb775980ed907fbb","name":"ros-jazzy-rqt-py-common","requires":[],"size":75129,"version":"1.6.0","binstar":{"package_id":"6777ce5282184074a22fbbf6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"287827e3520308bf0b6ba38947a6ec8c7f9f86a106e1a8b8fc02455f30130ee4"},"ros-jazzy-demo-nodes-py-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-python","ros-jazzy-example-interfaces","ros-jazzy-rcl-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462109954,"md5":"21820b7e3be68ba2d8201a9e61aa2aa4","name":"ros-jazzy-demo-nodes-py","requires":[],"size":52039,"version":"0.33.5","binstar":{"package_id":"6777ce5d072330a8f73b96b4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7f70d67611a857154d6c9420581848d3ae10cf0f0863151d0bc4294495f58b2a"},"ros-jazzy-rqt-gui-1.6.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["catkin_pkg","python","ros-jazzy-ament-index-python","ros-jazzy-python-qt-binding","ros-jazzy-qt-gui","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462510540,"md5":"508db85e20a1ddb530af3c28ff7399dc","name":"ros-jazzy-rqt-gui","requires":[],"size":123029,"version":"1.6.0","binstar":{"package_id":"6777cf064fbc7913cd2fbc0f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bcdb786c186264f92079de8d64d07e4b77e37c3f1aa429dad0832cdb413d5949"},"ros-jazzy-action-tutorials-cpp-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-action-tutorials-interfaces","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463116320,"md5":"fa42b6a7d4015a30d2939b763e4e7508","name":"ros-jazzy-action-tutorials-cpp","requires":[],"size":101446,"version":"0.33.5","binstar":{"package_id":"6777cf7ae98b99d2473b96cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8ee14df5db59ba8c9bb6b56a85c9cfb47e72a501d8bc1109f353182f2de2d631"},"ros-jazzy-depthimage-to-laserscan-2.5.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["libopencv","py-opencv","python","ros-jazzy-image-geometry","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","libopencv >=4.10.0,<4.10.1.0a0","py-opencv >=4.10.0,<5.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463007821,"md5":"13c1283cb23aba6b46a415918478f599","name":"ros-jazzy-depthimage-to-laserscan","requires":[],"size":176090,"version":"2.5.1","binstar":{"package_id":"6777cf7b0eb0c3214ec846e7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"46a016e50606b1cb3b4af53a91f84c6eb31484b2484937d9bb5986d2c681c397"},"ros-jazzy-examples-rclcpp-minimal-action-client-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462963994,"md5":"14c95639addd5514eac45bc2d59ab5f7","name":"ros-jazzy-examples-rclcpp-minimal-action-client","requires":[],"size":108343,"version":"0.19.4","binstar":{"package_id":"6777cf7cbfb8b18a042fbc0d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7652ede05e921c2ed5813fde1b014e776452ddba18ed650c17bb0328f5c33665"},"ros-jazzy-joy-3.3.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sdl2-vendor","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463570618,"md5":"74b2f3b8d0528c96f8dde4ba6b0ec058","name":"ros-jazzy-joy","requires":[],"size":187096,"version":"3.3.0","binstar":{"package_id":"6777cfbb0cbafc2308ee3f89","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f83a81aa9b23c994f2b120f536be9d6868b325994bb02e988316e7aa663af4f4"},"ros-jazzy-examples-rclcpp-minimal-action-server-0.19.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-rclcpp","ros-jazzy-rclcpp-action","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462835326,"md5":"04c54a21796cf9dbf00324e969d6bc62","name":"ros-jazzy-examples-rclcpp-minimal-action-server","requires":[],"size":64632,"version":"0.19.4","binstar":{"package_id":"6777cfe71167e11d113b96b5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"c6894c4f43b6681398035e8f7026d8b1c0b4713538a26738f7a80ba57a4d6867"},"ros-jazzy-quality-of-service-demo-cpp-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-launch-ros","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463049909,"md5":"95500be220bede893cbd5ccceed00cef","name":"ros-jazzy-quality-of-service-demo-cpp","requires":[],"size":356790,"version":"0.33.5","binstar":{"package_id":"6777cfee1744634607c846dc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0df13fc9f71aad3a302de4832803aff26dd8bfb159b88cfbbb1618f88b52f0de"},"ros-jazzy-ros-gz-bridge-1.0.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-actuator-msgs","ros-jazzy-geometry-msgs","ros-jazzy-gps-msgs","ros-jazzy-gz-msgs-vendor","ros-jazzy-gz-transport-vendor","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-nav-msgs","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-gz-interfaces","ros-jazzy-ros-workspace","ros-jazzy-rosgraph-msgs","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros-jazzy-tf2-msgs","ros-jazzy-trajectory-msgs","ros-jazzy-vision-msgs","ros-jazzy-yaml-cpp-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736462787892,"md5":"bde542d392f4fbe2fe23cc37f509d925","name":"ros-jazzy-ros-gz-bridge","requires":[],"size":3830856,"version":"1.0.7","binstar":{"package_id":"6777d08b5687576dae3b96ce","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"17fdc4f86633ba741ece0ba1147e2a538bb3acf38b7f647fcc8c6de238e6e214"},"ros-jazzy-ros-gz-sim-1.0.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["gflags","python","ros-jazzy-ament-index-python","ros-jazzy-gz-math-vendor","ros-jazzy-gz-msgs-vendor","ros-jazzy-gz-sim-vendor","ros-jazzy-gz-transport-vendor","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","gflags >=2.2.2,<2.3.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463268068,"md5":"335017ef68c82530ec7b07bbbc2530b0","name":"ros-jazzy-ros-gz-sim","requires":[],"size":71316659,"version":"1.0.7","binstar":{"package_id":"6777d08f71d2ff3380c846ce","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"237961492501f14be2e71b405fdc97b2b3f6b7cc128711adf1103738918669ba"},"ros-jazzy-rqt-gui-py-1.6.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-qt-gui","ros-jazzy-ros-workspace","ros-jazzy-rqt-gui","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463219011,"md5":"f4d879201f04bdcc5b3cb96286d6463a","name":"ros-jazzy-rqt-gui-py","requires":[],"size":36250,"version":"1.6.0","binstar":{"package_id":"6777d093bfb8b18a042fbc12","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"abf6aa20f978f076852d4a14b2035873a4f81693f94f818fcc996913e2530545"},"ros-jazzy-rqt-graph-1.5.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-python","ros-jazzy-python-qt-binding","ros-jazzy-qt-dotgraph","ros-jazzy-ros-workspace","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463885378,"md5":"f59efe410d94e30cec90f89be1470a6a","name":"ros-jazzy-rqt-graph","requires":[],"size":75977,"version":"1.5.4","binstar":{"package_id":"6777d0f0b89b363eb8ee3f9b","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"f9317187e5ae71757b30bd7d8494484092d7c098f36449dc424594dc1d7e9ac2"},"ros-jazzy-rqt-publisher-1.7.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["numpy","python","ros-jazzy-ament-index-python","ros-jazzy-python-qt-binding","ros-jazzy-qt-gui-py-common","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-py","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros-jazzy-rqt-py-common","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463839147,"md5":"161d6a37e15c6c187ab8dd639c80de21","name":"ros-jazzy-rqt-publisher","requires":[],"size":49276,"version":"1.7.2","binstar":{"package_id":"6777d0f154270fe296c846d6","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"67575fadc93c0ca1ca38fa989ecb1791be0e9983460b9b7de8a864a691b8d29a"},"ros-jazzy-rqt-py-console-1.2.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-python","ros-jazzy-python-qt-binding","ros-jazzy-qt-gui","ros-jazzy-qt-gui-py-common","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464000396,"md5":"9c28d14f0fa663c5c24ce62df5ce8239","name":"ros-jazzy-rqt-py-console","requires":[],"size":30798,"version":"1.2.2","binstar":{"package_id":"6777d0f3c1e153c141c846c1","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7f43578faa18785c5958ee7f5f88946c654f3d0f44f5688d127222cf01446733"},"ros-jazzy-rqt-service-caller-1.2.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros-jazzy-rqt-py-common","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463981930,"md5":"c0cb329acce61903220e78bc09678c97","name":"ros-jazzy-rqt-service-caller","requires":[],"size":38151,"version":"1.2.1","binstar":{"package_id":"6777d0f51744634607c846e5","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2fc017c807a6fb70401e017d3af84824e3c9d0e9e3c3ffa15a8f726c0a2f8bcf"},"ros-jazzy-rqt-shell-1.2.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["catkin_pkg","python","ros-jazzy-python-qt-binding","ros-jazzy-qt-gui","ros-jazzy-qt-gui-py-common","ros-jazzy-ros-workspace","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463963205,"md5":"3bc12032f670723f328c69724052c0c2","name":"ros-jazzy-rqt-shell","requires":[],"size":35024,"version":"1.2.2","binstar":{"package_id":"6777d1201b37c47cf0ee3f6d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2016f5cd484e3ff4282de5a8fa3bd96857132bd5b5b94a0a90d222502b2aaeec"},"ros-jazzy-teleop-twist-joy-2.6.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-geometry-msgs","ros-jazzy-joy","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463874386,"md5":"25138dc5c763f1e9774c5d511eec0c7b","name":"ros-jazzy-teleop-twist-joy","requires":[],"size":150536,"version":"2.6.2","binstar":{"package_id":"6777d1210eb0c3214ec846f3","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6de7e07a1e4ec9e0a24de0b3bbfaf13f12b7a76ca6937335426bc1ec1c8a41d8"},"ros-jazzy-rqt-console-2.2.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-python","ros-jazzy-python-qt-binding","ros-jazzy-rcl-interfaces","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros-jazzy-rqt-py-common","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464224682,"md5":"88cc89785b0b638fbe117606e9a0b442","name":"ros-jazzy-rqt-console","requires":[],"size":92638,"version":"2.2.1","binstar":{"package_id":"6777d13cee7f3ec9a9ee3f8f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a050cd49e8874bfc8db8835e1c64eb6d3c681ae608fa8c0d2fedbf26adbc63ee"},"ros-jazzy-rqt-plot-1.4.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["catkin_pkg","matplotlib-base","numpy","python","ros-jazzy-python-qt-binding","ros-jazzy-qt-gui-py-common","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros-jazzy-rqt-py-common","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464206148,"md5":"f03451064a59f7f72b4ec397f84cb7e1","name":"ros-jazzy-rqt-plot","requires":[],"size":74823,"version":"1.4.0","binstar":{"package_id":"6777d13ee98b99d2473b96d7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7eb42e2405ceb19cc7c8c2e813369d20ad6d8ed1ce355f49c1ce2ff257123862"},"ros-jazzy-composition-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-launch-ros","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464097761,"md5":"ccd543715a35cb2dd533b05e1da21f6c","name":"ros-jazzy-composition","requires":[],"size":209098,"version":"0.33.5","binstar":{"package_id":"6777d19e4fbc7913cd2fbc22","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"3ffeda626c29796bf03b0505e6534d1de208c716493fef0577592e7144e625f0"},"ros-jazzy-demo-nodes-cpp-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-example-interfaces","ros-jazzy-launch-ros","ros-jazzy-launch-xml","ros-jazzy-rcl","ros-jazzy-rcl-interfaces","ros-jazzy-rclcpp","ros-jazzy-rclcpp-components","ros-jazzy-rcpputils","ros-jazzy-rcutils","ros-jazzy-rmw","ros-jazzy-ros-workspace","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736463873998,"md5":"ae1e09f876eecdc28c7e06f7bb8467a4","name":"ros-jazzy-demo-nodes-cpp","requires":[],"size":710390,"version":"0.33.5","binstar":{"package_id":"6777d19f072330a8f73b96bc","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"81c3b26cedaa20b5007ded243827399610a77e3b60d5b72d1f4b3c0c7ee0d56d"},"ros-jazzy-rqt-msg-1.5.1-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-python","ros-jazzy-python-qt-binding","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rosidl-runtime-py","ros-jazzy-rqt-console","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros-jazzy-rqt-py-common","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464403163,"md5":"2fa7d5cc84f2f696067f665a28a0bf9e","name":"ros-jazzy-rqt-msg","requires":[],"size":36166,"version":"1.5.1","binstar":{"package_id":"6777d226dfa78867392fbc04","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a4215f03780174466eb6eae151c411a7a5d949ca7535f4f41ed76f60327f71e0"},"ros-jazzy-rqt-reconfigure-1.6.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","pyyaml","ros-jazzy-ament-index-python","ros-jazzy-python-qt-binding","ros-jazzy-qt-gui-py-common","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rqt-console","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros-jazzy-rqt-py-common","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464453689,"md5":"c2ff0339d892b800b0a70e1eb25c816a","name":"ros-jazzy-rqt-reconfigure","requires":[],"size":87073,"version":"1.6.2","binstar":{"package_id":"6777d228c5960d1d89c846f7","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"0fbb4b84df349cf6cfecd2a5f62340fb9af4b08f6d11af12718d648b4124ba37"},"ros-jazzy-rqt-image-view-1.3.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-cv-bridge","ros-jazzy-geometry-msgs","ros-jazzy-image-transport","ros-jazzy-qt-gui-cpp","ros-jazzy-rclcpp","ros-jazzy-ros-workspace","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-cpp","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","qt-main >=5.15.15,<5.16.0a0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464726366,"md5":"23ff54d381af14b65f018d94c2735179","name":"ros-jazzy-rqt-image-view","requires":[],"size":43761,"version":"1.3.0","binstar":{"package_id":"6777d24ac5960d1d89c846fb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7b6be914f256076725f2a5c001d20ff20040e4c5b87e685b409780f73397c060"},"ros-jazzy-rqt-topic-1.7.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-python-qt-binding","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-ros2topic","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros-jazzy-rqt-py-common","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464707655,"md5":"b7ca44442f142f09083c078a1a32191f","name":"ros-jazzy-rqt-topic","requires":[],"size":44779,"version":"1.7.3","binstar":{"package_id":"6777d24ce8b8e2b2622fbc35","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"fdc248f2392f0c090267830ba73ccb18dd1c8dd533d3d1eb9c38690cf55c1c11"},"ros-jazzy-compressed-depth-image-transport-4.0.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-cv-bridge","ros-jazzy-image-transport","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464434117,"md5":"bf1ec7dcede1bf29d1dcffb5ac74e1a2","name":"ros-jazzy-compressed-depth-image-transport","requires":[],"size":187783,"version":"4.0.3","binstar":{"package_id":"6777d26571d2ff3380c846d9","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8f8a082be652f4fc62fd0074b8694bfa08fc99d4dbf22ae5ac3920f572bdd715"},"ros-jazzy-compressed-image-transport-4.0.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-cv-bridge","ros-jazzy-image-transport","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465125328,"md5":"f2b508721452f85f1378ec5c009e9e55","name":"ros-jazzy-compressed-image-transport","requires":[],"size":187889,"version":"4.0.3","binstar":{"package_id":"6777d26954270fe296c846db","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"699f5a5937468b4c5666b555c281d211171cd8453518edbf9832bca830840aa5"},"ros-jazzy-ros-gz-image-1.0.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-gz-msgs-vendor","ros-jazzy-gz-transport-vendor","ros-jazzy-image-transport","ros-jazzy-rclcpp","ros-jazzy-ros-gz-bridge","ros-jazzy-ros-workspace","ros-jazzy-sensor-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464616050,"md5":"d62bdf565751c9e62286f4b9feaf5323","name":"ros-jazzy-ros-gz-image","requires":[],"size":58405,"version":"1.0.7","binstar":{"package_id":"6777d26b86441a05f32fbc04","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"1b836e680ecf69fc0326c9cd5569bb3f7fbd721617bf417c35bc2bcdc60c4c45"},"ros-jazzy-theora-image-transport-4.0.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["libogg","libopencv","libtheora","py-opencv","python","ros-jazzy-cv-bridge","ros-jazzy-image-transport","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rosidl-default-runtime","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","py-opencv >=4.10.0,<5.0a0","libopencv >=4.10.0,<4.10.1.0a0","libtheora >=1.1.1,<1.2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","libogg >=1.3.5,<1.4.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465022106,"md5":"e3f8f4fdff4f84378b44244a3a53368f","name":"ros-jazzy-theora-image-transport","requires":[],"size":284570,"version":"4.0.3","binstar":{"package_id":"6777d26dd7b44dbce48f268d","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"a986d6c1f69a9feddf338e67dc57d1851885c777dc97a083a457d4a063a5f995"},"ros-jazzy-zstd-image-transport-4.0.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-image-transport","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","zlib","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","libzlib >=1.3.1,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464969558,"md5":"c91241981d66fdaac9d7d45c76393339","name":"ros-jazzy-zstd-image-transport","requires":[],"size":132931,"version":"4.0.3","binstar":{"package_id":"6777d270ae91a6a6d62fbbf8","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"2d8edae5df8f182d7430e5eea1e255dacc5ef2c5c187e4633c18f5e067987673"},"ros-jazzy-rviz-common-14.1.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","qt-main","ros-jazzy-geometry-msgs","ros-jazzy-message-filters","ros-jazzy-pluginlib","ros-jazzy-rclcpp","ros-jazzy-resource-retriever","ros-jazzy-ros-workspace","ros-jazzy-rviz-ogre-vendor","ros-jazzy-rviz-rendering","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros-jazzy-std-srvs","ros-jazzy-tf2","ros-jazzy-tf2-ros","ros-jazzy-tinyxml2-vendor","ros-jazzy-urdf","ros-jazzy-yaml-cpp-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","qt-main >=5.15.15,<5.16.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736464511451,"md5":"60439fc7390fc02d0ae5fddb25d08f8a","name":"ros-jazzy-rviz-common","requires":[],"size":655882,"version":"14.1.6","binstar":{"package_id":"6777d2c8a88e57537b8b59cb","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"50fcdd3e52c66a0e6a62c1f46c0c02789008e8f9f57f796c6dd1b60b27511599"},"ros-jazzy-rqt-action-2.2.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros-jazzy-rqt-msg","ros-jazzy-rqt-py-common","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465574857,"md5":"89dc3abee34f24b2445bf46319f5d059","name":"ros-jazzy-rqt-action","requires":[],"size":25767,"version":"2.2.0","binstar":{"package_id":"6777d367bfb8b18a042fbc28","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"7e9422e13870bbe4484b45ab8c6f648c2b12437566bcb6e995695dfa82d82be6"},"ros-jazzy-rqt-srv-1.2.2-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros-jazzy-rqt-msg","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465552732,"md5":"80c6a995fc72fb4384ab53aaea5a649e","name":"ros-jazzy-rqt-srv","requires":[],"size":26522,"version":"1.2.2","binstar":{"package_id":"6777d3694479e9794f8f2693","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d7454ede0ba2fba170514b2347c7f9daf625b6b7563b5e0cc72e8be7f23d36e1"},"ros-jazzy-dummy-robot-bringup-0.33.5-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-index-python","ros-jazzy-dummy-map-server","ros-jazzy-dummy-sensors","ros-jazzy-launch","ros-jazzy-launch-ros","ros-jazzy-robot-state-publisher","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465370947,"md5":"309e0e0d55be68d7534fc4e5375375be","name":"ros-jazzy-dummy-robot-bringup","requires":[],"size":25822,"version":"0.33.5","binstar":{"package_id":"6777d3b11000bbd6d58f268e","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"132fe820a289ee2ed71d332bb0522e6b243b223c49da475d926ffc8533dd933b"},"ros-jazzy-image-transport-plugins-4.0.3-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-compressed-depth-image-transport","ros-jazzy-compressed-image-transport","ros-jazzy-ros-workspace","ros-jazzy-theora-image-transport","ros-jazzy-zstd-image-transport","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465434838,"md5":"421dd4b94ea02610d2b175364913e5c2","name":"ros-jazzy-image-transport-plugins","requires":[],"size":18149,"version":"4.0.3","binstar":{"package_id":"6777d3e3c5779afe9bc846ee","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"b400fdc0de7a0bcd85841a765d6addcd85150957a5f4c227085517aa40a61b99"},"ros-jazzy-rviz-visual-testing-framework-14.1.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ament-cmake-gtest","ros-jazzy-geometry-msgs","ros-jazzy-rclcpp","ros-jazzy-rcutils","ros-jazzy-ros-workspace","ros-jazzy-rviz-common","ros-jazzy-rviz-ogre-vendor","ros-jazzy-rviz-rendering","ros-jazzy-std-msgs","ros-jazzy-tf2","ros-jazzy-tf2-ros","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","qt-main >=5.15.15,<5.16.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736465579649,"md5":"77a081e96d6b76684b9262675b9cd490","name":"ros-jazzy-rviz-visual-testing-framework","requires":[],"size":188042,"version":"14.1.6","binstar":{"package_id":"6777d405272818152c2fbc1f","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"74e5bff3a944d61c6dd784cb6a6e423d308983bacd1e21bedcee2fe3e2d702e8"},"ros-jazzy-rviz-default-plugins-14.1.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","qt-main","ros-jazzy-geometry-msgs","ros-jazzy-gz-math-vendor","ros-jazzy-image-transport","ros-jazzy-interactive-markers","ros-jazzy-laser-geometry","ros-jazzy-map-msgs","ros-jazzy-nav-msgs","ros-jazzy-pluginlib","ros-jazzy-point-cloud-transport","ros-jazzy-rclcpp","ros-jazzy-resource-retriever","ros-jazzy-ros-workspace","ros-jazzy-rviz-common","ros-jazzy-rviz-ogre-vendor","ros-jazzy-rviz-rendering","ros-jazzy-tf2","ros-jazzy-tf2-geometry-msgs","ros-jazzy-tf2-ros","ros-jazzy-urdf","ros-jazzy-visualization-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","qt-main >=5.15.15,<5.16.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736466068192,"md5":"b2e0bcbd49029575fecbbebe22ac8113","name":"ros-jazzy-rviz-default-plugins","requires":[],"size":1110723,"version":"14.1.6","binstar":{"package_id":"6777d752a410428903a47662","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"71cf66871c214428d85a45c1e1c0daa0986cfc847c519ab1dba2e20e2d7ebbc4"},"ros-jazzy-rviz2-14.1.6-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rviz-common","ros-jazzy-rviz-default-plugins","ros-jazzy-rviz-ogre-vendor","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0","numpy >=1.26.4,<2.0a0","qt-main >=5.15.15,<5.16.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736467383949,"md5":"78de132c7be1ef9e674360bc1828ce54","name":"ros-jazzy-rviz2","requires":[],"size":82004356,"version":"14.1.6","binstar":{"package_id":"6777d8bcb734ab2338a47662","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"d31ece476d4d4b4fac60e45221b6f8059524fa8930c10921943f0d554bc2d9ea"},"ros-jazzy-ros-gz-sim-demos-1.0.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-gz-sim-vendor","ros-jazzy-image-transport-plugins","ros-jazzy-robot-state-publisher","ros-jazzy-ros-gz-bridge","ros-jazzy-ros-gz-image","ros-jazzy-ros-gz-sim","ros-jazzy-ros-workspace","ros-jazzy-rqt-image-view","ros-jazzy-rqt-plot","ros-jazzy-rqt-topic","ros-jazzy-rviz2","ros-jazzy-sdformat-urdf","ros-jazzy-xacro","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736467960741,"md5":"6acbf65aaa2b22e25595af8dc708f9ad","name":"ros-jazzy-ros-gz-sim-demos","requires":[],"size":352385,"version":"1.0.7","binstar":{"package_id":"6777d976497a9018dda4765a","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"50e2b3362a15299ba7a74c386d870d24b9ff6cee962077e79c5a903353f69a66"},"ros-jazzy-ros-gz-1.0.7-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-gz-bridge","ros-jazzy-ros-gz-image","ros-jazzy-ros-gz-sim","ros-jazzy-ros-gz-sim-demos","ros-jazzy-ros-workspace","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","python_abi 3.11.* *_cp311","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736468303876,"md5":"aa5547272d49135420192bf7b5fad4ba","name":"ros-jazzy-ros-gz","requires":[],"size":21537,"version":"1.0.7","binstar":{"package_id":"6777d9efd7b44dbce48f269c","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"8dd2603f37d27ca8a7b860b646de0fdf15d2dae8ea045168c92ea18387f3f564"},"ros-jazzy-rqt-bag-1.5.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-python-qt-binding","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rosbag2-py","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736468636431,"md5":"4292ec1d5c9cd7ba42e6c5083371462b","name":"ros-jazzy-rqt-bag","requires":[],"size":134432,"version":"1.5.4","binstar":{"package_id":"6777db05deec2af1875294cd","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6dcfe65359cdb2d63800553bbb33daf872040ee1bd83c334407be667d5b287b2"},"ros-jazzy-rqt-bag-plugins-1.5.4-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["pillow","pycairo","python","ros-jazzy-geometry-msgs","ros-jazzy-rclpy","ros-jazzy-ros-workspace","ros-jazzy-rosbag2","ros-jazzy-rqt-bag","ros-jazzy-rqt-gui","ros-jazzy-rqt-gui-py","ros-jazzy-rqt-plot","ros-jazzy-sensor-msgs","ros-jazzy-std-msgs","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736468851567,"md5":"1e8ded9c1d210b66fcc58828de39cbbe","name":"ros-jazzy-rqt-bag-plugins","requires":[],"size":46526,"version":"1.5.4","binstar":{"package_id":"6777df18ca6bb0392aa47666","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"bbf4e229dfa7ee59aef03c5ec82e81f502e937ffb4ea69dcb6b85e26c30ab57a"},"ros-jazzy-rqt-common-plugins-1.2.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-ros-workspace","ros-jazzy-rqt-action","ros-jazzy-rqt-bag","ros-jazzy-rqt-bag-plugins","ros-jazzy-rqt-console","ros-jazzy-rqt-graph","ros-jazzy-rqt-image-view","ros-jazzy-rqt-msg","ros-jazzy-rqt-plot","ros-jazzy-rqt-publisher","ros-jazzy-rqt-py-common","ros-jazzy-rqt-py-console","ros-jazzy-rqt-reconfigure","ros-jazzy-rqt-service-caller","ros-jazzy-rqt-shell","ros-jazzy-rqt-srv","ros-jazzy-rqt-topic","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","ros2-distro-mutex >=0.6.0,<0.7.0a0","python_abi 3.11.* *_cp311"],"license":"BSD-3-Clause","platform":"win","timestamp":1736468953686,"md5":"8d89c52d4f31f2a3228d55222b1c9c43","name":"ros-jazzy-rqt-common-plugins","requires":[],"size":18517,"version":"1.2.0","binstar":{"package_id":"6777e080b2c82143dcc4c0f4","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"6264d05495ef63798e26ead002dda8066b01ee07c160cd3caf6dbba5ceee4472"},"ros-jazzy-desktop-0.11.0-np126py311h7d8ee0e_1.conda":{"operatingsystem":"win32","machine":"x86_64","target-triplet":"x86_64-any-win32","has_prefix":false,"subdir":"win-64","arch":"x86_64","build":"np126py311h7d8ee0e_1","build_number":1,"depends":["python","ros-jazzy-action-tutorials-cpp","ros-jazzy-action-tutorials-interfaces","ros-jazzy-action-tutorials-py","ros-jazzy-angles","ros-jazzy-composition","ros-jazzy-demo-nodes-cpp","ros-jazzy-demo-nodes-cpp-native","ros-jazzy-demo-nodes-py","ros-jazzy-depthimage-to-laserscan","ros-jazzy-dummy-map-server","ros-jazzy-dummy-robot-bringup","ros-jazzy-dummy-sensors","ros-jazzy-examples-rclcpp-minimal-action-client","ros-jazzy-examples-rclcpp-minimal-action-server","ros-jazzy-examples-rclcpp-minimal-client","ros-jazzy-examples-rclcpp-minimal-composition","ros-jazzy-examples-rclcpp-minimal-publisher","ros-jazzy-examples-rclcpp-minimal-service","ros-jazzy-examples-rclcpp-minimal-subscriber","ros-jazzy-examples-rclcpp-minimal-timer","ros-jazzy-examples-rclcpp-multithreaded-executor","ros-jazzy-examples-rclpy-executors","ros-jazzy-examples-rclpy-minimal-action-client","ros-jazzy-examples-rclpy-minimal-action-server","ros-jazzy-examples-rclpy-minimal-client","ros-jazzy-examples-rclpy-minimal-publisher","ros-jazzy-examples-rclpy-minimal-service","ros-jazzy-examples-rclpy-minimal-subscriber","ros-jazzy-image-tools","ros-jazzy-intra-process-demo","ros-jazzy-joy","ros-jazzy-lifecycle","ros-jazzy-logging-demo","ros-jazzy-pendulum-msgs","ros-jazzy-quality-of-service-demo-cpp","ros-jazzy-quality-of-service-demo-py","ros-jazzy-ros-base","ros-jazzy-ros-workspace","ros-jazzy-rqt-common-plugins","ros-jazzy-rviz-default-plugins","ros-jazzy-rviz2","ros-jazzy-teleop-twist-joy","ros-jazzy-teleop-twist-keyboard","ros-jazzy-topic-monitor","ros-jazzy-turtlesim","ros2-distro-mutex 0.6.* jazzy_*","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","vc >=14.2,<15","vc14_runtime >=14.29.30139","ucrt >=10.0.20348.0","numpy >=1.26.4,<2.0a0","python_abi 3.11.* *_cp311","ros2-distro-mutex >=0.6.0,<0.7.0a0"],"license":"BSD-3-Clause","platform":"win","timestamp":1736468975677,"md5":"262c4b36621e1e9b2d813797fe62583e","name":"ros-jazzy-desktop","requires":[],"size":19050,"version":"0.11.0","binstar":{"package_id":"6777e16d21afbb471ba47663","owner_id":"667486a72acfb986e6e822d4","channel":"main"},"sha256":"db2c63099e64b73382849d07e4d724d49c004661992125024d6e46e8b86f4fa5"}},"info":{"default_numpy_version":"1.7","default_python_version":"2.7","platform":"win","arch":"x86_64","subdir":"win-64"}} \ No newline at end of file