├── .ci_support └── conda_forge_pinnings.yaml ├── .github ├── FUNDING.yml ├── testpr_environment.yml └── workflows │ ├── build_robostack.yml │ ├── main.yml │ └── testpr.yml ├── .scripts ├── build_linux.sh ├── build_osx.sh ├── build_osx_arm64.sh ├── build_win.bat └── run_docker_build.sh ├── CONTRIBUTING.md ├── README.md ├── additional_recipes ├── ros-galactic-cartographer │ └── recipe.yaml └── ros2-distro-mutex │ └── recipe.yaml ├── conda_build_config.yaml ├── packages-ignore.yaml ├── patch ├── dependencies.yaml ├── ros-galactic-ament-cmake-core.patch ├── ros-galactic-ament-package.patch ├── ros-galactic-apriltag.patch ├── ros-galactic-backward-ros.patch ├── ros-galactic-behaviortree-cpp-v3.win.patch ├── ros-galactic-bondcpp.osx.patch ├── ros-galactic-bondcpp.win.patch ├── ros-galactic-cartographer-ros.patch ├── ros-galactic-cv-bridge.patch ├── ros-galactic-cyclonedds.patch ├── ros-galactic-demo-nodes-py.patch ├── ros-galactic-dwb-critics.win.patch ├── ros-galactic-dwb-plugins.win.patch ├── ros-galactic-embree-vendor.patch ├── ros-galactic-examples-rclpy-minimal-action-client.patch ├── ros-galactic-examples-rclpy-minimal-client.patch ├── ros-galactic-fastrtps.patch ├── ros-galactic-fmilibrary-vendor.patch ├── ros-galactic-geometric-shapes.patch ├── ros-galactic-google-benchmark-vendor.patch ├── ros-galactic-gpsd-client.patch ├── ros-galactic-iceoryx-utils.patch ├── ros-galactic-lanelet2.patch ├── ros-galactic-libg2o.patch ├── ros-galactic-libphidget22.patch ├── ros-galactic-libyaml-vendor.patch ├── ros-galactic-menge-vendor.patch ├── ros-galactic-mimick-vendor.osx.patch ├── ros-galactic-mimick-vendor.win.patch ├── ros-galactic-moveit-common.win.patch ├── ros-galactic-moveit-core.osx.patch ├── ros-galactic-moveit-core.patch ├── ros-galactic-moveit-core.win.patch ├── ros-galactic-moveit-kinematics.patch ├── ros-galactic-moveit-planners-ompl.patch ├── ros-galactic-moveit-resources-prbt-ikfast-manipulator-plugin.patch ├── ros-galactic-moveit-ros-planning.patch ├── ros-galactic-mrpt2.patch ├── ros-galactic-mrt-cmake-modules.patch ├── ros-galactic-nav2-amcl.win.patch ├── ros-galactic-nav2-behavior-tree.osx.patch ├── ros-galactic-nav2-behavior-tree.win.patch ├── ros-galactic-nav2-common.osx.patch ├── ros-galactic-nav2-common.win.patch ├── ros-galactic-nav2-controller.patch ├── ros-galactic-nav2-costmap-2d.win.patch ├── ros-galactic-nav2-map-server.patch ├── ros-galactic-nav2-recoveries.win.patch ├── ros-galactic-nav2-regulated-pure-pursuit-controller.patch ├── ros-galactic-nav2-rotation-shim-controller.win.patch ├── ros-galactic-nav2-smac-planner.osx.patch ├── ros-galactic-nav2-smac-planner.win.patch ├── ros-galactic-nav2-waypoint-follower.patch ├── ros-galactic-octomap.win.patch ├── ros-galactic-octovis.patch ├── ros-galactic-osrf-testing-tools-cpp.osx.patch ├── ros-galactic-osrf-testing-tools-cpp.patch ├── ros-galactic-pendulum-control.patch ├── ros-galactic-pilz-industrial-motion-planner.patch ├── ros-galactic-plotjuggler.patch ├── ros-galactic-popf.patch ├── ros-galactic-pybind11-vendor.patch ├── ros-galactic-python-qt-binding.patch ├── ros-galactic-qt-gui-cpp.patch ├── ros-galactic-rcl.patch ├── ros-galactic-rclcpp-lifecycle.patch ├── ros-galactic-rclpy.patch ├── ros-galactic-rcutils.patch ├── ros-galactic-rmw-implementation.patch ├── ros-galactic-robot-localization.patch ├── ros-galactic-ros-ign-gazebo.patch ├── ros-galactic-ros-workspace.patch ├── ros-galactic-ros2-socketcan.patch ├── ros-galactic-rosbag2-py.patch ├── ros-galactic-rosidl-generator-c.patch ├── ros-galactic-rosidl-generator-cpp.patch ├── ros-galactic-rosidl-generator-dds-idl.patch ├── ros-galactic-rosidl-generator-py.patch ├── ros-galactic-rosidl-typesupport-c.patch ├── ros-galactic-rosidl-typesupport-connext-c.patch ├── ros-galactic-rosidl-typesupport-connext-cpp.patch ├── ros-galactic-rosidl-typesupport-cpp.patch ├── ros-galactic-rosidl-typesupport-fastrtps-c.patch ├── ros-galactic-rosidl-typesupport-fastrtps-cpp.patch ├── ros-galactic-rosidl-typesupport-gurumdds-c.patch ├── ros-galactic-rosidl-typesupport-gurumdds-cpp.patch ├── ros-galactic-rosidl-typesupport-introspection-c.patch ├── ros-galactic-rosidl-typesupport-introspection-cpp.patch ├── ros-galactic-rosidl-typesupport-opensplice-c.patch ├── ros-galactic-rosidl-typesupport-opensplice-cpp.patch ├── ros-galactic-rtabmap.patch ├── ros-galactic-rviz-assimp-vendor.patch ├── ros-galactic-rviz-default-plugins.patch ├── ros-galactic-rviz-ogre-vendor.patch ├── ros-galactic-rviz-rendering.patch ├── ros-galactic-rviz2.patch ├── ros-galactic-sdformat-urdf.patch ├── ros-galactic-spacenav.patch ├── ros-galactic-tf2-py.patch ├── ros-galactic-tf2.win.patch ├── ros-galactic-theora-image-transport.patch ├── ros-galactic-tvm-vendor.patch ├── ros-galactic-ublox-dgnss-node.patch ├── ros-galactic-usb-cam.patch └── ros-noetic-yaml-cpp-vendor.patch ├── robostack.yaml ├── vinca_linux_64.yaml ├── vinca_linux_aarch64.yaml ├── vinca_osx.yaml ├── vinca_osx_arm64.yaml └── vinca_win.yaml /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: RoboStack 2 | open_collective: robostack 3 | -------------------------------------------------------------------------------- /.github/testpr_environment.yml: -------------------------------------------------------------------------------- 1 | name: base 2 | channels: 3 | - robostack 4 | - robostack-experimental 5 | - conda-forge 6 | dependencies: 7 | - python 3.9.* 8 | - pip 9 | - boa 10 | - rospkg 11 | - catkin_pkg >=0.4.16 12 | - ruamel.yaml >=0.16.6 13 | - rosdistro >=0.8.0 14 | - empy >=3.3.4 15 | -------------------------------------------------------------------------------- /.github/workflows/build_robostack.yml: -------------------------------------------------------------------------------- 1 | name: Build RoboStack installer 2 | on: [workflow_dispatch] 3 | 4 | jobs: 5 | build: 6 | name: ${{ matrix.MINIFORGE_NAME }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }} 7 | runs-on: ${{ matrix.os }} 8 | strategy: 9 | fail-fast: false 10 | matrix: 11 | include: 12 | - os: windows-latest 13 | ARCH: x86_64 14 | MINIFORGE_NAME: "rosdesktop" 15 | OS_NAME: "Windows" 16 | 17 | - os: macos-latest 18 | ARCH: x86_64 19 | MINIFORGE_NAME: "rosdesktop" 20 | OS_NAME: "MacOSX" 21 | 22 | - os: ubuntu-latest 23 | ARCH: aarch64 24 | DOCKER_ARCH: arm64v8 25 | DOCKERIMAGE: condaforge/linux-anvil-aarch64 26 | MINIFORGE_NAME: "rosdesktop" 27 | OS_NAME: "Linux" 28 | 29 | - os: ubuntu-latest 30 | ARCH: x86_64 31 | DOCKER_ARCH: amd64 32 | DOCKERIMAGE: condaforge/linux-anvil-comp7 33 | MINIFORGE_NAME: "rosdesktop" 34 | OS_NAME: "Linux" 35 | 36 | steps: 37 | - name: Checkout code 38 | uses: actions/checkout@v2 39 | 40 | - uses: conda-incubator/setup-miniconda@v2 41 | with: 42 | miniconda-version: "latest" 43 | if: contains(matrix.OS_NAME, 'Windows') 44 | 45 | - name: Build and test miniforge 46 | env: 47 | ARCH: ${{ matrix.ARCH }} 48 | MINIFORGE_NAME: ${{ matrix.MINIFORGE_NAME }} 49 | OS_NAME: ${{ matrix.OS_NAME }} 50 | DOCKERIMAGE: ${{ matrix.DOCKERIMAGE }} 51 | DOCKER_ARCH: ${{ matrix.DOCKER_ARCH }} 52 | run: | 53 | cd constructor_scripts; 54 | if [[ "$GITHUB_REF" == refs/tags/* ]]; then 55 | export MINIFORGE_VERSION=${GITHUB_REF##*/}; 56 | fi 57 | if [[ "$OS_NAME" == "Linux" ]]; then 58 | bash build_robostack_installer.sh; 59 | EXT=sh 60 | fi 61 | if [[ "$OS_NAME" == "MacOSX" ]]; then 62 | bash build_robostack_installer_osx.sh; 63 | EXT=sh 64 | fi 65 | if [[ "$OS_NAME" == "Windows" ]]; then 66 | source /c/Miniconda3/Scripts/activate; 67 | source build_robostack_installer_win.sh; 68 | EXT=exe 69 | fi 70 | # Copy for latest release 71 | cp build/$MINIFORGE_NAME-*-$OS_NAME-$ARCH.$EXT build/$MINIFORGE_NAME-$OS_NAME-$ARCH.$EXT 72 | ls -alh build 73 | shell: bash 74 | 75 | - name: Upload robostack installer to Github artifact 76 | # if: ${{ !startsWith(github.ref, 'refs/tags/') }} 77 | uses: actions/upload-artifact@v2 78 | with: 79 | name: ${{ matrix.MINIFORGE_NAME }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }} 80 | path: constructor_scripts/build/${{ matrix.MINIFORGE_NAME }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}* 81 | 82 | - name: Upload robostack installer to release 83 | uses: svenstaro/upload-release-action@v2 84 | with: 85 | repo_token: ${{ secrets.GITHUB_TOKEN }} 86 | file: constructor_scripts/build/${{ matrix.MINIFORGE_NAME }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}* 87 | tag: ${{ github.ref }} 88 | overwrite: true 89 | file_glob: true 90 | if: startsWith(github.ref, 'refs/tags/') -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | jobs: 2 | build: 3 | runs-on: ubuntu-latest 4 | steps: 5 | - uses: actions/checkout@master 6 | with: 7 | persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token 8 | fetch-depth: 0 # otherwise, you will failed to push refs to dest repo 9 | - uses: actions/setup-python@v2 10 | with: 11 | python-version: '3.9' # Version range or exact version of a Python version to use, using SemVer's version range syntax 12 | - name: Install vinca 13 | run: | 14 | pip install git+https://github.com/RoboStack/vinca.git 15 | 16 | - name: Generate recipes for Linux 17 | run: | 18 | git clean -fdx 19 | cp vinca_linux_64.yaml vinca.yaml 20 | vinca --multiple --platform linux-64 21 | - name: Generate azure pipelines for Linux 22 | run: | 23 | vinca-azure --platform linux-64 --trigger-branch buildbranch_linux -d ./recipes --additional-recipes 24 | - name: Commit files 25 | run: | 26 | if [[ -f "linux.yml" ]]; then 27 | git config --local user.email "action@github.com" 28 | git config --local user.name "GitHub Action" 29 | git add . 30 | git commit -m "Add build files `date '+%Y-%m-%d-%H%M'`" -a 31 | remote_repo="https://${GITHUB_ACTOR}:${INPUT_GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" 32 | git push "${remote_repo}" HEAD:buildbranch_linux --follow-tags --force 33 | fi 34 | env: 35 | INPUT_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 36 | 37 | # Generate recipes for osx 38 | - name: Reset repo 39 | run: | 40 | git reset --hard origin/main 41 | - name: Generate recipes for macOS 42 | run: | 43 | git clean -fdx 44 | cp vinca_osx.yaml vinca.yaml 45 | vinca --multiple --platform osx-64 46 | - name: Generate azure pipelines for macOS 47 | run: | 48 | vinca-azure --platform osx-64 --trigger-branch buildbranch_osx -d ./recipes --additional-recipes 49 | - name: Commit files 50 | run: | 51 | if [[ -f "osx.yml" ]]; then 52 | git config --local user.email "action@github.com" 53 | git config --local user.name "GitHub Action" 54 | git add . 55 | git commit -m "Add build files `date '+%Y-%m-%d-%H%M'`" -a 56 | remote_repo="https://${GITHUB_ACTOR}:${INPUT_GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" 57 | git push "${remote_repo}" HEAD:buildbranch_osx --follow-tags --force 58 | fi 59 | env: 60 | INPUT_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 61 | 62 | # Generate recipes for osx-arm64 63 | - name: Reset repo 64 | run: | 65 | git reset --hard origin/main 66 | - name: Generate recipes for macOS (arm64) 67 | run: | 68 | git clean -fdx 69 | cp vinca_osx_arm64.yaml vinca.yaml 70 | vinca --multiple --platform osx-arm64 71 | - name: Generate azure pipelines for macOS (arm64) 72 | run: | 73 | vinca-azure --platform osx-arm64 --trigger-branch buildbranch_osx_arm64 -d ./recipes --additional-recipes 74 | - name: Commit files 75 | run: | 76 | if [[ -f "osx_arm64.yml" ]]; then 77 | git config --local user.email "action@github.com" 78 | git config --local user.name "GitHub Action" 79 | git add . 80 | git commit -m "Add build files `date '+%Y-%m-%d-%H%M'`" -a 81 | remote_repo="https://${GITHUB_ACTOR}:${INPUT_GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" 82 | git push "${remote_repo}" HEAD:buildbranch_osx_arm64 --follow-tags --force 83 | fi 84 | env: 85 | INPUT_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 86 | 87 | # Generate recipes for Windows 88 | - name: Reset repo 89 | run: | 90 | git reset --hard origin/main 91 | - name: Generate recipes for Windows 92 | run: | 93 | git clean -fdx 94 | cp vinca_win.yaml vinca.yaml 95 | vinca --multiple --platform win-64 96 | - name: Generate azure pipelines for Windows 97 | run: | 98 | vinca-azure --platform win-64 --trigger-branch buildbranch_win -d ./recipes --additional-recipes 99 | - name: Commit files for Windows 100 | run: | 101 | if [[ -f "win.yml" ]]; then 102 | git config --local user.email "action@github.com" 103 | git config --local user.name "GitHub Action" 104 | git add . 105 | git commit -m "Add build files `date '+%Y-%m-%d-%H%M'`" -a 106 | remote_repo="https://${GITHUB_ACTOR}:${INPUT_GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" 107 | git push "${remote_repo}" HEAD:buildbranch_win --follow-tags --force 108 | fi 109 | env: 110 | INPUT_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 111 | 112 | # Generate recipes for Linux ARM64 113 | - name: Reset repo 114 | run: | 115 | git reset --hard origin/main 116 | - name: Generate recipes for Linux ARM64 117 | run: | 118 | git clean -fdx 119 | cp vinca_linux_aarch64.yaml vinca.yaml 120 | vinca --multiple --platform linux-aarch64 121 | - name: Generate azure pipelines for Linux ARM64 122 | run: | 123 | vinca-azure --platform linux-aarch64 --trigger-branch buildbranch_linux_aarch64 -d ./recipes --additional-recipes 124 | - name: Commit files 125 | run: | 126 | if [[ -f "linux_aarch64.yml" ]]; then 127 | git config --local user.email "action@github.com" 128 | git config --local user.name "GitHub Action" 129 | git add . 130 | git commit -m "Add build files `date '+%Y-%m-%d-%H%M'`" -a 131 | remote_repo="https://${GITHUB_ACTOR}:${INPUT_GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" 132 | git push "${remote_repo}" HEAD:buildbranch_linux_aarch64 --follow-tags --force 133 | fi 134 | env: 135 | INPUT_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 136 | 137 | on: 138 | push: 139 | branches: 140 | - master 141 | - main 142 | -------------------------------------------------------------------------------- /.scripts/build_linux.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here 4 | # will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent 5 | # changes to this script, consider a proposal to conda-smithy so that other feedstocks can also 6 | # benefit from the improvement. 7 | 8 | set -xeuo pipefail 9 | export PYTHONUNBUFFERED=1 10 | export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" 11 | export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" 12 | # export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" 13 | # export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" 14 | 15 | cat >~/.condarc </dev/null && pwd )" 11 | PROVIDER_DIR="$(basename $THISDIR)" 12 | 13 | FEEDSTOCK_ROOT=$(cd "$(dirname "$0")/.."; pwd;) 14 | RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" 15 | 16 | if [ -z ${FEEDSTOCK_NAME} ]; then 17 | export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) 18 | fi 19 | 20 | docker info 21 | 22 | # In order for the conda-build process in the container to write to the mounted 23 | # volumes, we need to run with the same id as the host machine, which is 24 | # normally the owner of the mounted volumes, or at least has write permission 25 | export HOST_USER_ID=$(id -u) 26 | # Check if docker-machine is being used (normally on OSX) and get the uid from 27 | # the VM 28 | if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then 29 | export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) 30 | fi 31 | 32 | ARTIFACTS="$FEEDSTOCK_ROOT/build_artifacts" 33 | 34 | # if [ -z "$CONFIG" ]; then 35 | # set +x 36 | # FILES=`ls .ci_support/linux_*` 37 | # CONFIGS="" 38 | # for file in $FILES; do 39 | # CONFIGS="${CONFIGS}'${file:12:-5}' or "; 40 | # done 41 | # echo "Need to set CONFIG env variable. Value can be one of ${CONFIGS:0:-4}" 42 | # exit 1 43 | # fi 44 | 45 | # if [ -z "${DOCKER_IMAGE}" ]; then 46 | # SHYAML_INSTALLED="$(shyaml -h || echo NO)" 47 | # if [ "${SHYAML_INSTALLED}" == "NO" ]; then 48 | # echo "WARNING: DOCKER_IMAGE variable not set and shyaml not installed. Falling back to condaforge/linux-anvil-comp7" 49 | # DOCKER_IMAGE="condaforge/linux-anvil-comp7" 50 | # else 51 | # DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 condaforge/linux-anvil-comp7 )" 52 | # fi 53 | # fi 54 | 55 | # DOCKER_IMAGE="condaforge/linux-anvil-comp7" 56 | # Docker image is set in the pipeline 57 | 58 | mkdir -p "$ARTIFACTS" 59 | # DONE_CANARY="$ARTIFACTS/conda-forge-build-done-${CONFIG}" 60 | # rm -f "$DONE_CANARY" 61 | 62 | # Allow people to specify extra default arguments to `docker run` (e.g. `--rm`) 63 | DOCKER_RUN_ARGS="${CONDA_FORGE_DOCKER_RUN_ARGS}" 64 | if [ -z "${CI}" ]; then 65 | DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" 66 | fi 67 | 68 | export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" 69 | docker run --rm ${DOCKER_RUN_ARGS} \ 70 | -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z \ 71 | -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z \ 72 | -e HOST_USER_ID \ 73 | -e UPLOAD_PACKAGES \ 74 | -e GIT_BRANCH \ 75 | -e UPLOAD_ON_BRANCH \ 76 | -e CI \ 77 | -e FEEDSTOCK_NAME \ 78 | -e CPU_COUNT \ 79 | -e ANACONDA_API_TOKEN \ 80 | -e CURRENT_RECIPES \ 81 | $DOCKER_IMAGE \ 82 | bash \ 83 | /home/conda/feedstock_root/${PROVIDER_DIR}/build_linux.sh 84 | 85 | # -e CONFIG \ 86 | 87 | # verify that the end of the script was reached 88 | # test -f "$DONE_CANARY" 89 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Many thanks for taking the time to read this and for contributing to RoboStack! 4 | 5 | This project is in early stages and we are looking for contributors to help it grow. 6 | The developers are on [gitter](https://gitter.im/RoboStack/Lobby) where we discuss steps forward. 7 | 8 | We welcome all kinds of contribution -- code or non-code -- and value them 9 | highly. We pledge to treat everyones contribution fairly and with respect and 10 | we are here to help awesome pull requests over the finish line. 11 | 12 | Please note we have a code of conduct, and follow it in all your interactions with the project. 13 | 14 | We follow the [NumFOCUS code of conduct](https://numfocus.org/code-of-conduct). 15 | 16 | 17 | # Adding new packages via pull requests 18 | You can open a pull request that will get build automatically in our CI. 19 | 20 | An example can be found [here](https://github.com/RoboStack/ros-galactic/pull/44). Simply add the required packages to the `vinca_*.yaml` files, where the * indicates the desired platform (linux_64, osx, win or linux_aarch64). Ideally, try to add packages to all of these platforms. 21 | 22 | Sometimes, it may be required to patch the packages. An example of how to do so can be found in [this PR](https://github.com/RoboStack/ros-galactic/pull/32). 23 | 24 | 25 | # Testing changes locally 26 | 27 | 1. Install conda build tools in base environemnt: 28 | ``` 29 | conda install -n base conda-build mamba 30 | ``` 31 | 32 | 2. Create a new conda environment and add the conda-forge and robostack channels: 33 | ``` 34 | conda create -n ros_galactic python=3.9 35 | conda activate ros_galactic 36 | conda config --append channels defaults 37 | conda config --add channels conda-forge 38 | conda config --add channels robostack-experimental 39 | conda config --set channel_priority strict 40 | ``` 41 | 3. Install some dependencies: 42 | ``` 43 | mamba install anaconda-client catkin_pkg ruamel_yaml rosdistro empy networkx requests ruamel ruamel.yaml boa 44 | ``` 45 | 4. Install vinca: `pip install git+https://github.com/RoboStack/vinca.git@master --no-deps` 46 | 5. Clone this repo: `git clone https://github.com/RoboStack/ros-galactic.git` 47 | 6. `cd ros-galactic` 48 | 7. `cp vinca_linux_64.yaml vinca.yaml` (replace with your platform as necessary) 49 | 8. Modify `vinca.yaml` as you please, e.g. add new packages to be built. 50 | 9. Run vinca to generate the recipe by executing `vinca --multiple` 51 | 10. Copy the generated recipe to the current folder: `cp recipes/ros-galactic-XXX.yaml recipe.yaml` - note that at least one package needs to be (re)build for this folder to show up. See more info below. 52 | 11. Build the recipe using boa: `boa build . -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml` 53 | 54 | # How does it work? 55 | - The `vinca.yaml` file specifies which packages should be built. 56 | - Add the desired package under `packages_select_by_deps`. This will automatically pull in all dependencies of that package, too. 57 | - Note that all packages that are already build in one of the channels listed under `skip_existing` will be skipped. You can also add your local channel to that list by e.g. adding `/home/ubuntu/miniconda3/conda-bld/linux-64/repodata.json`. 58 | - If you want to manually skip packages, you can list them under `packages_skip_by_deps`. 59 | - If you set `skip_all_deps` to `True`, you will only build packages listed under `packages_select_by_deps` but none of their dependencies. 60 | - The `packages_remove_from_deps` list allows you to never build packages, even if they are listed as dependencies of other packages. We use it for e.g. the stage simulator which is not available in conda-forge, but is listed as one of the dependencies of the ros-simulator metapackage. 61 | - If you want to manually rebuild a package that already exists, you need to comment out the channels listed under `skip_existing`. You probably want to set `skip_all_deps: true`, otherwise all dependencies will be rebuilt in this case. 62 | - If the package does not build successfully out of the box, you might need to patch it. To do so, create a new file `ros-galactic-$PACKAGENAME.patch` in the `patch` directory (replace `$PACKAGENAME$` with the name of the package, and replace any underscores with hyphens). You can also use platform specifiers to only apply the patch on a specific platform, e.g. `ros-galactic-$PACKAGENAME.win.patch`. 63 | - The `robostack.yaml` and `packages-ignore.yaml` files are the equivalent of the [rosdep.yaml](http://wiki.ros.org/rosdep/rosdep.yaml) and translate ROS dependencies into conda package names (or in the case of the dependencies listed in `packages-ignore.yaml` the dependencies are ignored by specifying an empty list). 64 | -------------------------------------------------------------------------------- /additional_recipes/ros-galactic-cartographer/recipe.yaml: -------------------------------------------------------------------------------- 1 | package: 2 | name: ros-galactic-cartographer 3 | version: "1.0" 4 | 5 | build: 6 | number: 1 7 | 8 | requirements: 9 | run: 10 | - cartographer 1.* 11 | 12 | 13 | about: 14 | home: https://github.com/conda-forge/cartographer-feedstock 15 | license: BSD-3-Clause 16 | summary: | 17 | Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations. 18 | extra: 19 | recipe-maintainers: 20 | - ros-forge 21 | -------------------------------------------------------------------------------- /additional_recipes/ros2-distro-mutex/recipe.yaml: -------------------------------------------------------------------------------- 1 | package: 2 | name: ros2-distro-mutex 3 | version: 0.2.0 4 | 5 | build: 6 | number: 0 7 | string: galactic 8 | run_exports: 9 | # NOTE MANUALLY EDIT THIS!!!! 10 | - ros2-distro-mutex 0.2 galactic 11 | 12 | requirements: 13 | # NOTE: 14 | # The idea with automatically adding versions to run_exports doesn't 15 | # work since we don't want all these dependencies as run deps of all ROS 16 | # packages. Therefore I am currently manually adding them to run_constrained. 17 | # This has to be synchronized with our current conda_build_config all the time :( 18 | # host: 19 | # # values here should 20 | # - boost-cpp 21 | # - log4cxx 22 | # - poco 23 | # - pcl 24 | # - opencv 25 | # - gazebo 26 | # - ogre 27 | # - qt 28 | # run: 29 | # values here should be applied from run_exports! 30 | # if the upstream package does not have run_exports 31 | # please change it in the conda_build_config.yaml! 32 | run_constrained: 33 | - boost-cpp 1.74 34 | - log4cxx 0.11 35 | - pcl 1.12 36 | - libopencv 4.5.5 37 | - poco 1.11 38 | - gazebo 11 39 | - ogre 1.12 40 | - libpqxx 6 41 | 42 | about: 43 | home: https://github.com/robostack/ros-galactic 44 | license: BSD-3-Clause 45 | summary: | 46 | The ROS2 distro mutex. To switch between ROS2 versions, you need to change the mutex. 47 | E.g. mamba install ros2-distro-mutex=*=galactic to switch to galactic. 48 | 49 | extra: 50 | recipe-maintainers: 51 | - ros-forge 52 | -------------------------------------------------------------------------------- /conda_build_config.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - vs2019 # [win] 3 | cxx_compiler: 4 | - vs2019 # [win] 5 | 6 | console_bridge: 7 | - 1.0 8 | gazebo: 9 | - '11' 10 | numpy: 11 | - 1.19 12 | ogre: 13 | - 1.12.* 14 | pcl: 15 | - 1.12.0 16 | libpqxx: 17 | - 6 18 | 19 | # Workaround for https://github.com/RoboStack/ros-galactic/pull/86#issuecomment-1079811424 20 | setuptools: # [win] 21 | - 61.0.0 # [win] 22 | 23 | python: 24 | # part of a zip_keys: python, python_impl, numpy 25 | # - 3.6.* *_cpython # [not (osx and arm64)] 26 | # - 3.7.* *_cpython # [not (osx and arm64)] 27 | # - 3.8.* *_cpython 28 | - 3.9.* *_cpython 29 | python_impl: 30 | # part of a zip_keys: python, python_impl, numpy 31 | # - cpython # [not (osx and arm64)] 32 | # - cpython # [not (osx and arm64)] 33 | - cpython 34 | 35 | # Project overrides 36 | macos_min_version: # [osx and x86_64] 37 | - 10.14 # [osx and x86_64] 38 | macos_machine: # [osx] 39 | - x86_64-apple-darwin13.4.0 # [osx and x86_64] 40 | - arm64-apple-darwin20.0.0 # [osx and arm64] 41 | MACOSX_DEPLOYMENT_TARGET: # [osx] 42 | - 11.0 # [osx and arm64] 43 | - 10.14 # [osx and x86_64] 44 | CONDA_BUILD_SYSROOT: 45 | - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk # [osx and arm64] 46 | 47 | 48 | # fix build metadata, needed for mapviz and moveit-core 49 | replacements: 50 | all_replacements: 51 | - tag: 'pkg-config build metadata' 52 | glob_patterns: 53 | - '*.pc' 54 | regex_re: '(?:-L|-I)?\"?([^;\s]+\/sysroot\/)' 55 | replacement_re: '$(CONDA_BUILD_SYSROOT_S)' 56 | regex_rg: '([^;\s"]+/sysroot/)' 57 | - tag: 'CMake build metadata' 58 | glob_patterns: 59 | - '*.cmake' 60 | regex_re: '([^;\s"]+/sysroot)' 61 | replacement_re: '$ENV{CONDA_BUILD_SYSROOT}' 62 | - tag: 'CMake build metadata OSX' 63 | glob_patterns: 64 | - '*.cmake' 65 | regex_re: '([^;\s"]+/MacOSX\d*\.?\d*\.sdk)' 66 | replacement_re: '$ENV{CONDA_BUILD_SYSROOT}' 67 | -------------------------------------------------------------------------------- /packages-ignore.yaml: -------------------------------------------------------------------------------- 1 | # This package is closed source?! 2 | rti-connext-dds-5.3.1: 3 | conda-forge: [] 4 | 5 | # rmw_cyclonedds_cpp: 6 | # conda-forge: [] 7 | # rviz_ogre_vendor: 8 | # conda-forge: [] 9 | rmw_opensplice_cpp: 10 | conda-forge: [] 11 | # rmw_connext_cpp: 12 | # conda-forge: [] 13 | # gmock_vendor: 14 | # conda-forge: [] 15 | # gtest_vendor: 16 | # conda-forge: [] 17 | # libyaml_vendor: 18 | # conda-forge: [] 19 | # connext_cmake_module: 20 | # conda-forge: [] 21 | # opensplice_cmake_module: 22 | # conda-forge: [] 23 | # rosidl_typesupport_connext_c: 24 | # conda-forge: [] 25 | # rosidl_typesupport_connext_cpp: 26 | # conda-forge: [] 27 | # rosidl_typesupport_opensplice_cpp: 28 | # conda-forge: [] 29 | # rosidl_typesupport_opensplice_c: 30 | # conda-forge: [] 31 | # test_msgs: 32 | # conda-forge: [] 33 | # rttest: 34 | # conda-forge: [] 35 | # tlsf: 36 | # conda-forge: [] 37 | # tlsf_cpp: 38 | # conda-forge: [] 39 | # pendulum_control: 40 | # conda-forge: [] 41 | -------------------------------------------------------------------------------- /patch/dependencies.yaml: -------------------------------------------------------------------------------- 1 | cartographer_ros: 2 | add_host: ["cartographer 1.*"] 3 | ackermann_msgs: 4 | add_host: ["numpy"] 5 | add_run: ["numpy"] 6 | velodyne_pointcloud: 7 | add_host: ["pkg-config"] 8 | iceoryx_utils: 9 | add_host: ["pkg-config"] 10 | cartographer: 11 | add_host: ["pkg-config"] 12 | libyaml_vendor: 13 | add_host: ["yaml-cpp", "yaml"] 14 | add_run: ["yaml-cpp", "yaml"] 15 | yaml_cpp_vendor: 16 | add_host: ["yaml-cpp"] 17 | add_run: ["yaml-cpp"] 18 | zstd_vendor: 19 | add_host: ["zstd", {sel(not win): zstd-static}] 20 | add_run: ["zstd"] 21 | sqlite3_vendor: 22 | add_host: ["sqlite"] 23 | add_run: ["sqlite"] 24 | foonathan_memory_vendor: 25 | add_host: ["foonathan-memory"] 26 | add_run: ["foonathan-memory"] 27 | rviz_assimp_vendor: 28 | add_host: ["assimp"] 29 | add_run: ["assimp"] 30 | sdl2_vendor: 31 | add_host: ["sdl2"] 32 | add_run: ["sdl2"] 33 | libcurl_vendor: 34 | add_host: ["libcurl"] 35 | add_run: ["libcurl"] 36 | intra_process_demo: 37 | add_host: ["REQUIRE_OPENGL"] 38 | rviz_ogre_vendor: 39 | add_host: ["ogre"] 40 | add_run: ["assimp"] 41 | pcl_conversions: 42 | add_host: ["REQUIRE_OPENGL"] 43 | pcl_ros: 44 | add_host: ["REQUIRE_OPENGL"] 45 | rviz_rendering: 46 | add_host: ["glew"] 47 | behaviortree_cpp_v3: 48 | add_host: ["boost-cpp", "cppzmq"] 49 | add_run: ["boost-cpp"] 50 | nav2_util: 51 | add_host: ["boost-cpp"] 52 | plotjuggler: 53 | add_host: ["libxcb", "elfutils", "ros-galactic-ros-workspace"] 54 | # rviz_ogre_vendor: 55 | # add_host: ["ogre"] 56 | # add_run: ["ogre"] 57 | embree_vendor: 58 | add_host: ["REQUIRE_OPENGL", "libpng", "libjpeg-turbo", "openimageio", "tbb", "tbb-devel", "embree"] 59 | ign_rviz_common: 60 | add_host: ["REQUIRE_OPENGL"] 61 | ign_rviz: 62 | add_host: ["REQUIRE_OPENGL"] 63 | ign_rviz_plugins: 64 | add_host: ["REQUIRE_OPENGL"] 65 | image_view: 66 | add_host: ["REQUIRE_OPENGL"] 67 | nao_lola: 68 | add_host: ["boost"] 69 | ros_ign_gazebo: 70 | add_host: ["ros-galactic-std-msgs", "ros-galactic-rclcpp"] 71 | ros_ign_gazebo_demos: 72 | add_host: ["REQUIRE_OPENGL"] 73 | rosbag2_bag_v2_plugins: 74 | add_host: ["ros-noetic-roscpp"] 75 | tvm_vendor: 76 | add_host: ["libblas", "openblas", "libcblas"] 77 | libphidget22: 78 | add_host: ["libusb"] 79 | libg2o: 80 | add_host: ["qt", "libglu", "freeglut"] 81 | fmilibrary_vendor: 82 | add_host: ["fmilib"] 83 | mrpt2: 84 | add_host: ["assimp", "octomap", "tinyxml2", "boost-cpp", "jsoncpp", "gtest", "boost", "libdc1394", "xorg-libxcomposite", "libftdi", "ros-galactic-octomap", "pkg-config"] 85 | add_run: ["assimp", "octomap", "tinyxml2", "boost-cpp", "jsoncpp", "gtest", "boost", "libdc1394", "xorg-libxcomposite", "libftdi", "ros-galactic-octomap"] 86 | add_build: [{"sel(linux)": "{{ cdt('libxcomposite-devel') }}"}] 87 | ros1_rosbag_storage_vendor: 88 | add_host: ["ros-noetic-roscpp", "ros-noetic-roslz4", "ros-noetic-rostest"] 89 | add_run: ["ros-noetic-roscpp", "ros-noetic-roslz4"] 90 | popf: 91 | add_host: ["perl"] 92 | rtabmap: 93 | add_host: ["REQUIRE_OPENGL", "ceres-solver", "libdc1394", "numpy", "pkg-config", "libusb", "vtk"] 94 | backward_ros: 95 | add_host: [{sel(linux or (osx and x86_64)): binutils}, {sel(linux): elfutils}] 96 | nav2_smac_planner: 97 | add_build: [{"sel(osx)": "llvm-openmp"}] 98 | add_host: [{"sel(osx)": "llvm-openmp"}] 99 | pybind11_vendor: 100 | add_host: ["pybind11"] 101 | add_run: ["pybind11"] 102 | action_tutorials_interfaces: 103 | add_host: ["numpy"] 104 | add_run: ["numpy"] 105 | map_msgs: 106 | add_host: ["numpy"] 107 | add_run: ["numpy"] 108 | example_interfaces: 109 | add_host: ["numpy"] 110 | add_run: ["numpy"] 111 | pendulum_msgs: 112 | add_host: ["numpy"] 113 | add_run: ["numpy"] 114 | dwb_msgs: 115 | add_host: ["numpy"] 116 | add_run: ["numpy"] 117 | python_qt_binding: 118 | add_host: ["pyqt-builder"] 119 | add_run: ["pyqt-builder"] 120 | qt_gui_cpp: 121 | add_host: ["pyqt-builder"] 122 | add_run: ["pyqt-builder"] 123 | moveit_ros_planning: 124 | add_host: ["pkg-config"] 125 | google_benchmark_vendor: 126 | add_host: ["benchmark"] 127 | add_run: ["benchmark"] 128 | -------------------------------------------------------------------------------- /patch/ros-galactic-ament-cmake-core.patch: -------------------------------------------------------------------------------- 1 | diff --git a/cmake/package_templates/templates_2_cmake.py b/cmake/package_templates/templates_2_cmake.py 2 | index b7c0faf..328cc38 100644 3 | --- a/cmake/package_templates/templates_2_cmake.py 4 | +++ b/cmake/package_templates/templates_2_cmake.py 5 | @@ -68,12 +68,7 @@ def generate_cmake_code(): 6 | """ 7 | variables = [] 8 | 9 | - if not IS_WINDOWS: 10 | - variables.append(( 11 | - 'ENVIRONMENT_HOOK_LIBRARY_PATH', 12 | - '"%s"' % get_environment_hook_template_path('library_path.sh'))) 13 | - else: 14 | - variables.append(('ENVIRONMENT_HOOK_LIBRARY_PATH', '')) 15 | + variables.append(('ENVIRONMENT_HOOK_LIBRARY_PATH', '')) 16 | 17 | ext = '.bat.in' if IS_WINDOWS else '.sh.in' 18 | variables.append(( 19 | -------------------------------------------------------------------------------- /patch/ros-galactic-ament-package.patch: -------------------------------------------------------------------------------- 1 | diff --git a/ament_package/template/environment_hook/library_path.sh b/ament_package/template/environment_hook/library_path.sh 2 | deleted file mode 100644 3 | index 292e518..0000000 4 | --- a/ament_package/template/environment_hook/library_path.sh 5 | +++ /dev/null 6 | @@ -1,16 +0,0 @@ 7 | -# copied from ament_package/template/environment_hook/library_path.sh 8 | - 9 | -# detect if running on Darwin platform 10 | -_UNAME=`uname -s` 11 | -_IS_DARWIN=0 12 | -if [ "$_UNAME" = "Darwin" ]; then 13 | - _IS_DARWIN=1 14 | -fi 15 | -unset _UNAME 16 | - 17 | -if [ $_IS_DARWIN -eq 0 ]; then 18 | - ament_prepend_unique_value LD_LIBRARY_PATH "$AMENT_CURRENT_PREFIX/lib" 19 | -else 20 | - ament_prepend_unique_value DYLD_LIBRARY_PATH "$AMENT_CURRENT_PREFIX/lib" 21 | -fi 22 | -unset _IS_DARWIN 23 | -------------------------------------------------------------------------------- /patch/ros-galactic-apriltag.patch: -------------------------------------------------------------------------------- 1 | diff --git a/python_build_flags.py b/python_build_flags.py 2 | index f3f0e79..865c85b 100644 3 | --- a/python_build_flags.py 4 | +++ b/python_build_flags.py 5 | @@ -21,7 +21,7 @@ 6 | print(conf.get('BLDSHARED', '').split()[0], end=';') 7 | 8 | print('LDFLAGS', end=';') 9 | -print(' '.join(conf.get('BLDSHARED', '').split()[1:]) + ' ' + conf.get('BLDLIBRARY', '') + ' ' + conf.get('LDFLAGS', ''), end=';') 10 | +print(' '.join(conf.get('BLDSHARED', '').split()[1:]) + ' ' + conf.get('LDFLAGS', ''), end=';') 11 | 12 | print('EXT_SUFFIX', end=';') 13 | ext_suffix = '.so' 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-backward-ros.patch: -------------------------------------------------------------------------------- 1 | diff --git a/cmake/BackwardConfigAment.cmake b/cmake/BackwardConfigAment.cmake 2 | index 273a51a..aefb857 100644 3 | --- a/cmake/BackwardConfigAment.cmake 4 | +++ b/cmake/BackwardConfigAment.cmake 5 | @@ -24,5 +24,14 @@ foreach(lib ${backward_ros_forced_LIBRARIES}) 6 | set(backward_ros_full_path_LIBRARIES "${backward_ros_full_path_LIBRARIES} ${lib}") 7 | endif() 8 | endforeach() 9 | -SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-as-needed ${backward_ros_full_path_LIBRARIES} -Wl,--as-needed ${CMAKE_EXE_LINKER_FLAGS}") 10 | + 11 | +set(no_as_needed) 12 | +set(as_needed) 13 | + 14 | +if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") 15 | + set(no_as_needed "-Wl,--no-as-needed") 16 | + set(as_needed "-Wl,--as-needed") 17 | +endif() 18 | + 19 | +SET(CMAKE_EXE_LINKER_FLAGS "${no_as_needed} ${backward_ros_full_path_LIBRARIES} ${as_needed} ${CMAKE_EXE_LINKER_FLAGS}") 20 | 21 | -------------------------------------------------------------------------------- /patch/ros-galactic-behaviortree-cpp-v3.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index a390aed..fa4f293 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -200,7 +200,8 @@ endif() 6 | if (WIN32) 7 | set(CMAKE_DEBUG_POSTFIX "d") 8 | list(APPEND BT_SOURCE src/shared_library_WIN.cpp ) 9 | - add_library(${BEHAVIOR_TREE_LIBRARY} STATIC ${BT_SOURCE} ) 10 | + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) 11 | + add_library(${BEHAVIOR_TREE_LIBRARY} SHARED ${BT_SOURCE} ) 12 | endif() 13 | 14 | if( ZMQ_FOUND ) 15 | -------------------------------------------------------------------------------- /patch/ros-galactic-bondcpp.osx.patch: -------------------------------------------------------------------------------- 1 | diff --git a/bondcpp/CMakeLists.txt b/bondcpp/CMakeLists.txt 2 | index f84c947..c4d2b15 100644 3 | --- a/bondcpp/CMakeLists.txt 4 | +++ b/bondcpp/CMakeLists.txt 5 | @@ -16,25 +16,19 @@ find_package(rclcpp_lifecycle REQUIRED) 6 | find_package(smclib REQUIRED) 7 | find_package(Threads REQUIRED) 8 | 9 | -find_package(PkgConfig REQUIRED) 10 | -pkg_check_modules(UUID REQUIRED uuid) 11 | -# we have to find the absolute path to uuid as target_link_directories is not available before cmake 3.13 12 | -find_library(uuid_ABS_PATH ${UUID_LIBRARIES} PATHS ${UUID_LIBRARY_DIRS}) 13 | - 14 | add_library(${PROJECT_NAME} 15 | SHARED 16 | src/bond.cpp 17 | src/BondSM_sm.cpp) 18 | target_include_directories(${PROJECT_NAME} PUBLIC 19 | $ 20 | - $ 21 | - ${UUID_INCLUDE_DIRS}) 22 | + $) 23 | ament_target_dependencies(${PROJECT_NAME} 24 | bond 25 | rclcpp 26 | rclcpp_lifecycle 27 | smclib) 28 | -target_link_libraries(${PROJECT_NAME} ${uuid_ABS_PATH}) 29 | +target_link_libraries(${PROJECT_NAME}) 30 | 31 | install( 32 | TARGETS ${PROJECT_NAME} 33 | -------------------------------------------------------------------------------- /patch/ros-galactic-bondcpp.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/bondcpp/CMakeLists.txt b/bondcpp/CMakeLists.txt 2 | index f84c947..987924a 100644 3 | --- a/bondcpp/CMakeLists.txt 4 | +++ b/bondcpp/CMakeLists.txt 5 | @@ -5,9 +5,12 @@ if(NOT CMAKE_CXX_STANDARD) 6 | set(CMAKE_CXX_STANDARD 14) 7 | endif() 8 | 9 | +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) 10 | + 11 | if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") 12 | add_compile_options(-Wall -Wextra -Wpedantic) 13 | endif() 14 | +add_definitions(-DNOMINMAX) 15 | 16 | find_package(ament_cmake REQUIRED) 17 | find_package(bond REQUIRED) 18 | @@ -17,9 +20,13 @@ find_package(smclib REQUIRED) 19 | find_package(Threads REQUIRED) 20 | 21 | find_package(PkgConfig REQUIRED) 22 | -pkg_check_modules(UUID REQUIRED uuid) 23 | -# we have to find the absolute path to uuid as target_link_directories is not available before cmake 3.13 24 | -find_library(uuid_ABS_PATH ${UUID_LIBRARIES} PATHS ${UUID_LIBRARY_DIRS}) 25 | +if (NOT WIN32) 26 | + pkg_check_modules(UUID REQUIRED uuid) 27 | + # we have to find the absolute path to uuid as target_link_directories is not available before cmake 3.13 28 | + find_library(uuid_ABS_PATH ${UUID_LIBRARIES} PATHS ${UUID_LIBRARY_DIRS}) 29 | +else () 30 | + set(uuid_ABS_PATH Rpcrt4.lib) 31 | +endif () 32 | 33 | add_library(${PROJECT_NAME} 34 | SHARED 35 | -------------------------------------------------------------------------------- /patch/ros-galactic-cartographer-ros.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index ae3c115..4b361d5 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -48,7 +48,14 @@ find_package(tf2_eigen REQUIRED) 6 | find_package(tf2_msgs REQUIRED) 7 | find_package(visualization_msgs REQUIRED) 8 | 9 | -find_package(LuaGoogle REQUIRED) 10 | +# find_package(LuaGoogle REQUIRED) 11 | +if(WIN32) 12 | + find_library(LUA_LIBRARY NAMES lua) 13 | + set(LUA_LIBRARIES "${LUA_LIBRARY}") 14 | +else() 15 | + set(LUA_LIBRARY ${CMAKE_INSTALL_PREFIX}/lib/liblua${CMAKE_SHARED_LIBRARY_SUFFIX}) 16 | +endif() 17 | +find_package(Lua REQUIRED) 18 | find_package(PCL REQUIRED COMPONENTS common) 19 | find_package(Eigen3 REQUIRED) 20 | find_package(urdfdom_headers REQUIRED) 21 | @@ -59,6 +66,14 @@ if(DEFINED urdfdom_headers_VERSION) 22 | endif() 23 | endif() 24 | 25 | +find_package(gflags REQUIRED) 26 | +find_package(glog REQUIRED) 27 | +find_package(Protobuf REQUIRED) 28 | + 29 | +find_package(PkgConfig) 30 | +pkg_search_module(cairo cairo REQUIRED) 31 | + 32 | + 33 | include_directories( 34 | include 35 | "." 36 | @@ -105,7 +120,9 @@ ament_target_dependencies(${PROJECT_NAME} PUBLIC 37 | ) 38 | add_subdirectory("cartographer_ros") 39 | 40 | -target_link_libraries(${PROJECT_NAME} PUBLIC cartographer) 41 | +target_link_directories(${PROJECT_NAME} PUBLIC ${cairo_LIBRARY_DIRS}) 42 | +target_link_libraries(${PROJECT_NAME} PUBLIC cartographer ${gflags_LIBRARIES} ${glog_LIBRARIES} ${cairo_LINK_LIBRARIES} ${Protobuf_LIBRARIES}) 43 | +target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC ${cartographer_INCLUDE_DIRS}) 44 | 45 | # Lua 46 | target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC ${LUA_INCLUDE_DIR}) 47 | -------------------------------------------------------------------------------- /patch/ros-galactic-cv-bridge.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 642d32f..f0d26ac 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -12,30 +12,12 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") 6 | add_compile_options(-Wall -Wextra) 7 | endif() 8 | 9 | -if(NOT ANDROID) 10 | - find_package(PythonLibs) 11 | - if(PYTHONLIBS_VERSION_STRING VERSION_LESS 3) 12 | - find_package(Boost REQUIRED python) 13 | - else() 14 | - find_package(Boost QUIET) 15 | - if(Boost_VERSION LESS 106500) 16 | - find_package(Boost REQUIRED python) 17 | - else() 18 | - # This is a bit of a hack to suppress a warning 19 | - # No header defined for python3; skipping header check 20 | - # Which should only affect Boost versions < 1.67 21 | - # Resolution for newer versions: 22 | - # https://gitlab.kitware.com/cmake/cmake/issues/16391 23 | - if (Boost_VERSION LESS 106700) 24 | - set(_Boost_PYTHON3_HEADERS "boost/python.hpp") 25 | - endif() 26 | - find_package(Boost COMPONENTS python3 REQUIRED) 27 | - endif() 28 | - endif() 29 | -else() 30 | - find_package(Boost REQUIRED) 31 | +if(WIN32) 32 | +add_definitions(/DBOOST_PYTHON_STATIC_LIB) 33 | endif() 34 | 35 | +find_package(Boost REQUIRED python) 36 | + 37 | find_package(sensor_msgs REQUIRED) 38 | 39 | find_package(OpenCV 4 QUIET 40 | diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt 41 | index 9e2cf45..9581fd4 100644 42 | --- a/src/CMakeLists.txt 43 | +++ b/src/CMakeLists.txt 44 | @@ -10,9 +10,14 @@ ament_target_dependencies(${PROJECT_NAME} 45 | "OpenCV" 46 | "sensor_msgs" 47 | ) 48 | +link_directories(${Boost_LIBRARY_DIRS}) 49 | target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES} ${OpenCV_LIBRARIES}) 50 | 51 | -install(TARGETS ${PROJECT_NAME} DESTINATION lib) 52 | +install(TARGETS ${PROJECT_NAME} 53 | + ARCHIVE DESTINATION lib 54 | + LIBRARY DESTINATION lib 55 | + RUNTIME DESTINATION bin 56 | +) 57 | 58 | install(FILES 59 | ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}_export.h 60 | @@ -38,7 +43,7 @@ if(NOT PYTHON_NUMPY_INCLUDE_DIR) 61 | endif() 62 | endif() 63 | 64 | -include_directories(${PYTHON_INCLUDE_PATH} ${PYTHON_NUMPY_INCLUDE_DIR}) 65 | +include_directories(${PYTHON_INCLUDE_PATH} ${PYTHON_NUMPY_INCLUDE_DIR} ${Boost_INCLUDE_DIRS}) 66 | 67 | if(PYTHON_VERSION_MAJOR VERSION_EQUAL 3) 68 | add_definitions(-DPYTHON3) 69 | @@ -56,6 +61,7 @@ endif() 70 | target_link_libraries(${PROJECT_NAME}_boost 71 | ${PYTHON_LIBRARIES} 72 | ${PROJECT_NAME} 73 | + ${Boost_LIBRARIES} 74 | ) 75 | 76 | set_target_properties(${PROJECT_NAME}_boost PROPERTIES 77 | @@ -66,6 +72,10 @@ if(APPLE) 78 | set_target_properties(${PROJECT_NAME}_boost PROPERTIES 79 | SUFFIX ".so") 80 | endif() 81 | +if(MSVC) 82 | + set_target_properties(${PROJECT_NAME}_boost PROPERTIES 83 | + SUFFIX ".pyd") 84 | +endif() 85 | 86 | install(TARGETS ${PROJECT_NAME}_boost DESTINATION ${PYTHON_INSTALL_DIR}/${PROJECT_NAME}/boost/) 87 | endif() 88 | -------------------------------------------------------------------------------- /patch/ros-galactic-demo-nodes-py.patch: -------------------------------------------------------------------------------- 1 | diff --git a/setup.py b/setup.py 2 | index 74a04111..23bc4d59 100644 3 | --- a/setup.py 4 | +++ b/setup.py 5 | @@ -33,8 +33,8 @@ 6 | tests_require=['pytest'], 7 | entry_points={ 8 | 'console_scripts': [ 9 | - 'listener = demo_nodes_py.topics.listener:main', 10 | - 'talker = demo_nodes_py.topics.talker:main', 11 | + 'demo_listener = demo_nodes_py.topics.listener:main', 12 | + 'demo_talker = demo_nodes_py.topics.talker:main', 13 | 'listener_qos = demo_nodes_py.topics.listener_qos:main', 14 | 'talker_qos = demo_nodes_py.topics.talker_qos:main', 15 | 'listener_serialized = demo_nodes_py.topics.listener_serialized:main', 16 | -------------------------------------------------------------------------------- /patch/ros-galactic-dwb-critics.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nav2_dwb_controller/dwb_critics/CMakeLists.txt b/nav2_dwb_controller/dwb_critics/CMakeLists.txt 2 | index 32b95518e2..dd73a943d5 100644 3 | --- a/nav2_dwb_controller/dwb_critics/CMakeLists.txt 4 | +++ b/nav2_dwb_controller/dwb_critics/CMakeLists.txt 5 | @@ -1,6 +1,8 @@ 6 | cmake_minimum_required(VERSION 3.5) 7 | project(dwb_critics) 8 | 9 | +add_definitions(-DNOMINMAX) 10 | + 11 | find_package(ament_cmake REQUIRED) 12 | find_package(nav2_common REQUIRED) 13 | find_package(angles REQUIRED) 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-dwb-plugins.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nav2_dwb_controller/dwb_plugins/CMakeLists.txt b/nav2_dwb_controller/dwb_plugins/CMakeLists.txt 2 | index a1806c524..c5ce526e5 100644 3 | --- a/nav2_dwb_controller/dwb_plugins/CMakeLists.txt 4 | +++ b/nav2_dwb_controller/dwb_plugins/CMakeLists.txt 5 | @@ -1,6 +1,8 @@ 6 | cmake_minimum_required(VERSION 3.5) 7 | project(dwb_plugins) 8 | 9 | +add_definitions(-DNOMINMAX) 10 | + 11 | find_package(ament_cmake REQUIRED) 12 | find_package(nav2_common REQUIRED) 13 | find_package(angles REQUIRED) 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-embree-vendor.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 7032216..a2d180f 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -24,6 +24,8 @@ macro(build_embree) 6 | set(cmake_configure_args 7 | -Wno-dev 8 | -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_install 9 | + -DEMBREE_TUTORIALS=OFF 10 | + -DEMBREE_STATIC_LIB=ON 11 | -DEMBREE_ISPC_SUPPORT=OFF) 12 | 13 | include(ExternalProject) 14 | @@ -63,7 +65,7 @@ macro(build_tbb) 15 | ) 16 | endmacro(build_tbb) 17 | 18 | -build_tbb() 19 | +# build_tbb() 20 | build_embree() 21 | 22 | ament_export_include_directories(include) 23 | -------------------------------------------------------------------------------- /patch/ros-galactic-examples-rclpy-minimal-action-client.patch: -------------------------------------------------------------------------------- 1 | diff --git a/setup.py b/setup.py 2 | index 48b893bd..84b7ee25 100644 3 | --- a/setup.py 4 | +++ b/setup.py 5 | @@ -29,7 +29,7 @@ 6 | tests_require=['pytest'], 7 | entry_points={ 8 | 'console_scripts': [ 9 | - 'client = ' + package_name + '.client:main', 10 | + 'client_actions = ' + package_name + '.client:main', 11 | 'client_cancel = ' + package_name + '.client_cancel:main', 12 | 'client_not_composable = ' + package_name + '.client_not_composable:main', 13 | 'client_asyncio = ' + package_name + '.client_asyncio:main', 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-examples-rclpy-minimal-client.patch: -------------------------------------------------------------------------------- 1 | diff --git a/setup.py b/setup.py 2 | index cb306d1f..f7825015 100644 3 | --- a/setup.py 4 | +++ b/setup.py 5 | @@ -29,7 +29,7 @@ 6 | tests_require=['pytest'], 7 | entry_points={ 8 | 'console_scripts': [ 9 | - 'client = examples_rclpy_minimal_client.client:main', 10 | + 'client_services = examples_rclpy_minimal_client.client:main', 11 | 'client_async = examples_rclpy_minimal_client.client_async:main', 12 | 'client_async_member_function =' 13 | ' examples_rclpy_minimal_client.client_async_member_function:main', 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-fastrtps.patch: -------------------------------------------------------------------------------- 1 | diff --git a/tools/fds/CMakeLists.txt b/tools/fds/CMakeLists.txt 2 | index 1b69eb6838..501a49d793 100644 3 | --- a/tools/fds/CMakeLists.txt 4 | +++ b/tools/fds/CMakeLists.txt 5 | @@ -124,7 +124,7 @@ if (NOT (CMAKE_VERSION VERSION_LESS "3.14")) 6 | if( WIN32 ) 7 | # Use powershell to generate the link 8 | install( 9 | - CODE "execute_process( COMMAND PowerShell -Command \"if( test-path ${PROJECT_NAME}.exe -PathType Leaf ) { rm ${PROJECT_NAME}.exe } ; New-Item -ItemType SymbolicLink -Target $ -Path ${PROJECT_NAME}.exe \" ERROR_QUIET RESULTS_VARIABLE SYMLINK_FAILED WORKING_DIRECTORY \"${CMAKE_INSTALL_PREFIX}/${BIN_INSTALL_DIR}\") \n if( SYMLINK_FAILED ) \n message(STATUS \"Windows requires admin installation rights to create symlinks. A bat script will be provided instead.\") \n set(FAST_SERVER_BINARY_NAME $) \n configure_file(${CMAKE_CURRENT_LIST_DIR}/fast-discovery-server.bat.in ${CMAKE_INSTALL_PREFIX}/${BIN_INSTALL_DIR}${MSVCARCH_DIR_EXTENSION}/${PROJECT_NAME}.bat @ONLY) \n endif()" 10 | + CODE "execute_process( COMMAND PowerShell -Command \"if( test-path ${PROJECT_NAME}.exe -PathType Leaf ) { rm ${PROJECT_NAME}.exe } ; New-Item -ItemType HardLink -Target $ -Path ${PROJECT_NAME}.exe \" ERROR_QUIET RESULTS_VARIABLE SYMLINK_FAILED WORKING_DIRECTORY \"${CMAKE_INSTALL_PREFIX}/${BIN_INSTALL_DIR}\") \n if( SYMLINK_FAILED ) \n message(STATUS \"Windows requires admin installation rights to create symlinks. A bat script will be provided instead.\") \n set(FAST_SERVER_BINARY_NAME $) \n configure_file(${CMAKE_CURRENT_LIST_DIR}/fast-discovery-server.bat.in ${CMAKE_INSTALL_PREFIX}/${BIN_INSTALL_DIR}${MSVCARCH_DIR_EXTENSION}/${PROJECT_NAME}.bat @ONLY) \n endif()" 11 | COMPONENT discovery) 12 | else() 13 | # Use ln to create the symbolic link. We remove the version from the file name but keep the debug suffix 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-fmilibrary-vendor.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index df8d628..7d79b7c 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -2,25 +2,12 @@ cmake_minimum_required(VERSION 3.5) 6 | project(fmilibrary_vendor) 7 | 8 | find_package(ament_cmake REQUIRED) 9 | +list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules") 10 | +find_package(FMILibrary REQUIRED) 11 | 12 | -include(ExternalProject) 13 | -set(fmilibrary_version 2.2.3) 14 | -externalproject_add(FMILibraryProject-${fmilibrary_version} 15 | - GIT_REPOSITORY https://github.com/modelon-community/fmi-library.git 16 | - GIT_TAG ${fmilibrary_version} 17 | - GIT_CONFIG advice.detachedHead=false 18 | - # Suppress git update due to https://gitlab.kitware.com/cmake/cmake/-/issues/16419 19 | - UPDATE_COMMAND "" 20 | - TIMEOUT 60 21 | -) 22 | -externalproject_get_property(FMILibraryProject-${fmilibrary_version} INSTALL_DIR) 23 | -set(FMILibraryProject_INCLUDE_DIR "${INSTALL_DIR}/src/install/include") 24 | -set(FMILibraryProject_LIB_DIR "${INSTALL_DIR}/src/install/lib") 25 | +install(DIRECTORY cmake DESTINATION share/${PROJECT_NAME}) 26 | 27 | -install(DIRECTORY ${FMILibraryProject_INCLUDE_DIR}/ DESTINATION include) 28 | -install(FILES ${FMILibraryProject_LIB_DIR}/libfmilib.a DESTINATION lib) 29 | -install(FILES ${FMILibraryProject_LIB_DIR}/libfmilib_shared.so DESTINATION lib) 30 | +ament_package( 31 | + CONFIG_EXTRAS "fmilibrary_vendor-extras.cmake" 32 | +) 33 | 34 | -ament_export_include_directories(include) 35 | -ament_export_libraries(libfmilib.a libfmilib_shared.so) 36 | -ament_package() 37 | diff --git a/cmake/Modules/FindFMILibrary.cmake b/cmake/Modules/FindFMILibrary.cmake 38 | new file mode 100644 39 | index 0000000..acafc81 40 | --- /dev/null 41 | +++ b/cmake/Modules/FindFMILibrary.cmake 42 | @@ -0,0 +1,73 @@ 43 | +#.rst: 44 | +# FindFMILibrary 45 | +# ----------- 46 | +# 47 | +# Find the FMI Library. 48 | +# 49 | +# IMPORTED Targets 50 | +# ^^^^^^^^^^^^^^^^ 51 | +# 52 | +# This module defines the following :prop_tgt:`IMPORTED` targets if 53 | +# FMILibrary has been found:: 54 | +# 55 | +# FMILibrary::FMILibrary 56 | +# 57 | +# Result Variables 58 | +# ^^^^^^^^^^^^^^^^ 59 | +# 60 | +# This module defines the following variables:: 61 | +# 62 | +# FMILibrary_FOUND - System has FMILibrary 63 | +# FMILibrary_INCLUDE_DIRS - Include directories for FMILibrary 64 | +# FMILibrary_LIBRARIES - imported targets to link against FMILibrary 65 | +# 66 | +# Readed enviromental variables 67 | +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 68 | +# 69 | +# This module reads hints about search locations from variables:: 70 | +# 71 | +# FMILibrary_ROOT - Directory containing the include and lib directories 72 | + 73 | +#============================================================================= 74 | +# Copyright 2017 Silvio Traversaro 75 | +# 76 | +# Distributed under the OSI-approved BSD License (the "License"); 77 | +# see accompanying file Copyright.txt for details. 78 | +# 79 | +# This software is distributed WITHOUT ANY WARRANTY; without even the 80 | +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 81 | +# See the License for more information. 82 | + 83 | + 84 | +find_path(FMILibrary_INCLUDE_DIR fmilib.h 85 | + HINTS $ENV{FMILibrary_ROOT}/include) 86 | + 87 | +find_library(FMILibrary_LIBRARY 88 | + NAMES fmilib_shared libfmilib_shared 89 | + HINTS $ENV{FMILibrary_ROOT}/lib) 90 | + 91 | +mark_as_advanced(FMILibrary_INCLUDE_DIR 92 | + FMILibrary_LIBRARY) 93 | + 94 | +include(FindPackageHandleStandardArgs) 95 | +find_package_handle_standard_args(FMILibrary 96 | + FOUND_VAR FMILibrary_FOUND 97 | + REQUIRED_VARS FMILibrary_LIBRARY FMILibrary_INCLUDE_DIR) 98 | + 99 | +if(FMILibrary_FOUND) 100 | + if(NOT TARGET FMILibrary::FMILibrary) 101 | + add_library(FMILibrary::FMILibrary UNKNOWN IMPORTED) 102 | + set_target_properties(FMILibrary::FMILibrary PROPERTIES 103 | + INTERFACE_INCLUDE_DIRECTORIES "${FMILibrary_INCLUDE_DIR}" 104 | + IMPORTED_LOCATION "${FMILibrary_LIBRARY}") 105 | + endif() 106 | + 107 | + set(FMILibrary_LIBRARIES FMILibrary::FMILibrary) 108 | + set(FMILibrary_INCLUDE_DIRS "${FMILibrary_INCLUDE_DIR}") 109 | + 110 | + # Set package properties if FeatureSummary was included 111 | + if(COMMAND set_package_properties) 112 | + set_package_properties(FMILibrary PROPERTIES DESCRIPTION "FMILibrary" 113 | + URL "http://www.jmodelica.org/FMILibrary") 114 | + endif() 115 | +endif() 116 | diff --git a/fmilibrary_vendor-extras.cmake b/fmilibrary_vendor-extras.cmake 117 | new file mode 100644 118 | index 0000000..5f076e3 119 | --- /dev/null 120 | +++ b/fmilibrary_vendor-extras.cmake 121 | @@ -0,0 +1,4 @@ 122 | +list(INSERT CMAKE_MODULE_PATH 0 "${fmilibrary_vendor_DIR}/Modules") 123 | + 124 | +find_package(FMILibrary REQUIRED) 125 | +set(fmilibrary_vendor_LIBRARIES FMILibrary::FMILibrary) 126 | -------------------------------------------------------------------------------- /patch/ros-galactic-geometric-shapes.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index b1c4e83..9d3a4a2 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -26,22 +26,7 @@ if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) 6 | set(CMAKE_BUILD_TYPE Release) 7 | endif() 8 | 9 | -# TODO(henningkayser): Remove policy fix when assimp 5.1 is available 10 | -# Suppress policy warning in assimp (https://github.com/assimp/assimp/pull/2722) 11 | -set(CMAKE_POLICY_DEFAULT_CMP0012 NEW) 12 | -find_package(ASSIMP QUIET) 13 | -if(NOT ASSIMP_FOUND) 14 | - find_package(PkgConfig REQUIRED) 15 | - # assimp is required, so REQUIRE the second attempt 16 | - pkg_check_modules(ASSIMP_PC REQUIRED assimp) 17 | - set(ASSIMP_INCLUDE_DIRS ${ASSIMP_PC_INCLUDE_DIRS}) 18 | -endif() 19 | - 20 | -# find *absolute* paths to ASSIMP_LIBRARIES 21 | -# Both, pkg-config and assimp's cmake-config don't provide an absolute library path. 22 | -# For, pkg-config the path is in ASSIMP_PC_LIBRARY_DIRS, for cmake in ASSIMP_LIBRARY_DIRS. 23 | -find_library(ASSIMP_ABS_LIBRARIES NAMES ${ASSIMP_LIBRARIES} assimp HINTS ${ASSIMP_LIBRARY_DIRS} ${ASSIMP_PC_LIBRARY_DIRS}) 24 | -set(ASSIMP_LIBRARIES "${ASSIMP_ABS_LIBRARIES}") 25 | +find_package(assimp REQUIRED) 26 | 27 | # These need to be in this order to find header files 28 | find_package(eigen3_cmake_module REQUIRED) 29 | @@ -75,6 +60,7 @@ set(THIS_PACKAGE_EXPORT_DEPENDS 30 | resource_retriever 31 | shape_msgs 32 | visualization_msgs 33 | + assimp 34 | ) 35 | 36 | # Set VERSION from package.xml 37 | @@ -97,9 +83,9 @@ target_compile_options(${PROJECT_NAME} PRIVATE ${PROJECT_COMPILE_OPTIONS}) 38 | ament_target_dependencies(${PROJECT_NAME} 39 | ${THIS_PACKAGE_EXPORT_DEPENDS} 40 | ) 41 | +target_link_libraries(${PROJECT_NAME} assimp::assimp) 42 | ament_target_dependencies(${PROJECT_NAME} SYSTEM 43 | # We don't export these dependencies because their cmake is broken 44 | - ASSIMP 45 | QHULL 46 | ) 47 | 48 | -------------------------------------------------------------------------------- /patch/ros-galactic-google-benchmark-vendor.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index ec8f6e0..3c8b38f 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -68,7 +68,8 @@ macro(build_benchmark) 6 | PATCH_COMMAND 7 | ${CMAKE_COMMAND} -E chdir git apply -p1 --ignore-space-change --whitespace=nowarn ${CMAKE_CURRENT_SOURCE_DIR}/thread_safety_attributes.patch && 8 | ${CMAKE_COMMAND} -E chdir git apply -p1 --ignore-space-change --whitespace=nowarn ${CMAKE_CURRENT_SOURCE_DIR}/soversion.patch && 9 | - ${CMAKE_COMMAND} -E chdir git apply -p1 --ignore-space-change --whitespace=nowarn ${CMAKE_CURRENT_SOURCE_DIR}/shrink-tz-offset-size.patch 10 | + ${CMAKE_COMMAND} -E chdir git apply -p1 --ignore-space-change --whitespace=nowarn ${CMAKE_CURRENT_SOURCE_DIR}/shrink-tz-offset-size.patch && 11 | + ${CMAKE_COMMAND} -E chdir git apply -p1 --ignore-space-change --whitespace=nowarn ${CMAKE_CURRENT_SOURCE_DIR}/link_rt.patch 12 | ) 13 | 14 | # The external project will install to the build folder, but we'll install that on make install. 15 | diff --git a/link_rt.patch b/link_rt.patch 16 | new file mode 100644 17 | index 0000000..01494c5 18 | --- /dev/null 19 | +++ b/link_rt.patch 20 | @@ -0,0 +1,13 @@ 21 | +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt 22 | +index 35d559e..abe867d 100644 23 | +--- a/src/CMakeLists.txt 24 | ++++ b/src/CMakeLists.txt 25 | +@@ -32,7 +32,7 @@ target_include_directories(benchmark PUBLIC 26 | + target_link_libraries(benchmark ${BENCHMARK_CXX_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) 27 | + find_library(LIBRT rt) 28 | + if(LIBRT) 29 | +- target_link_libraries(benchmark ${LIBRT}) 30 | ++ target_link_libraries(benchmark rt) 31 | + endif() 32 | + 33 | + if(CMAKE_BUILD_TYPE) 34 | -------------------------------------------------------------------------------- /patch/ros-galactic-gpsd-client.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index e593495..f4b1b2f 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -25,7 +25,7 @@ target_compile_definitions(${PROJECT_NAME} 6 | ) 7 | rclcpp_components_register_nodes(${PROJECT_NAME} "gpsd_client::GPSDClientComponent") 8 | target_link_libraries(${PROJECT_NAME} 9 | - ${libgps_LIBRARIES} 10 | + ${libgps_LINK_LIBRARIES} 11 | ) 12 | ament_target_dependencies(${PROJECT_NAME} 13 | "gps_msgs" 14 | diff --git a/src/client.cpp b/src/client.cpp 15 | index 425d1c3..86bd257 100644 16 | --- a/src/client.cpp 17 | +++ b/src/client.cpp 18 | @@ -152,14 +152,14 @@ namespace gpsd_client 19 | #endif 20 | } 21 | 22 | - if ((p->status & STATUS_FIX) && !(check_fix_by_variance_ && std::isnan(p->fix.epx))) 23 | + if ((p->fix.status & STATUS_FIX) && !(check_fix_by_variance_ && std::isnan(p->fix.epx))) 24 | { 25 | status.status = 0; // FIXME: gpsmm puts its constants in the global 26 | // namespace, so `GPSStatus::STATUS_FIX' is illegal. 27 | 28 | // STATUS_DGPS_FIX was removed in API version 6 but re-added afterward 29 | #if GPSD_API_MAJOR_VERSION != 6 30 | - if (p->status & STATUS_DGPS_FIX) 31 | + if (p->fix.status & STATUS_DGPS_FIX) 32 | status.status |= 18; // same here 33 | #endif 34 | 35 | @@ -234,7 +234,7 @@ namespace gpsd_client 36 | * so we need to use the ROS message's integer values 37 | * for status.status 38 | */ 39 | - switch (p->status) 40 | + switch (p->fix.status) 41 | { 42 | case STATUS_NO_FIX: 43 | fix->status.status = -1; // NavSatStatus::STATUS_NO_FIX; 44 | -------------------------------------------------------------------------------- /patch/ros-galactic-iceoryx-utils.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 403e82b..62de9d6 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -190,8 +190,13 @@ set_target_properties(iceoryx_utils PROPERTIES 6 | ) 7 | 8 | if(LINUX) 9 | + # Find libacl properly 10 | + find_package(PkgConfig REQUIRED) 11 | + pkg_check_modules(ACL REQUIRED libacl) 12 | + 13 | set(ICEORYX_PLATFORM ${CMAKE_CURRENT_SOURCE_DIR}/platform/linux/) 14 | - target_link_libraries(iceoryx_utils PRIVATE acl atomic ${CODE_COVERAGE_LIBS}) 15 | + target_include_directories(iceoryx_utils PUBLIC ${ACL_INCLUDE_DIRS}) 16 | + target_link_libraries(iceoryx_utils PRIVATE ${ACL_LIBRARIES} atomic ${CODE_COVERAGE_LIBS}) 17 | elseif(QNX) 18 | set(ICEORYX_PLATFORM ${CMAKE_CURRENT_SOURCE_DIR}/platform/qnx/) 19 | elseif(APPLE) 20 | -------------------------------------------------------------------------------- /patch/ros-galactic-lanelet2.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index b26ed0b..b630d07 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -1,9 +1,9 @@ 6 | cmake_minimum_required(VERSION 2.8.3) 7 | project(lanelet2) 8 | -if($ENV{ROS_VERSION} EQUAL 1) 9 | +if(2 EQUAL 1) 10 | find_package(catkin REQUIRED) 11 | install(FILES package.xml DESTINATION share/lanelet2) 12 | -elseif($ENV{ROS_VERSION} EQUAL 2) 13 | +elseif(2 EQUAL 2) 14 | if(POLICY CMP0057) 15 | cmake_policy(SET CMP0057 NEW) 16 | endif() 17 | -------------------------------------------------------------------------------- /patch/ros-galactic-libg2o.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index e41fd4c..5b147be 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -150,22 +150,23 @@ endif(G2O_USE_OPENMP) 6 | 7 | # OpenGL is used in the draw actions for the different types, as well 8 | # as for creating the GUI itself 9 | -set(OpenGL_GL_PREFERENCE "GLVND") 10 | -find_package(OpenGL) 11 | +# set(OpenGL_GL_PREFERENCE "GLVND") 12 | +# find_package(OpenGL) 13 | 14 | # If OpenGL was found, use the import target if available. If not, use old-style includes 15 | -set(G2O_USE_OPENGL ON CACHE BOOL "Build g2o with OpenGL support for visualization") 16 | -if (OPENGL_FOUND AND G2O_USE_OPENGL) 17 | - if (TARGET OpenGL::GL) 18 | - set(G2O_OPENGL_TARGET "OpenGL::GL;OpenGL::GLU") 19 | - else() 20 | - set(G2O_OPENGL_TARGET "${OPENGL_LIBRARIES}") 21 | - include_directories(${OPENGL_INCLUDE_DIR}) 22 | - endif() 23 | - set (G2O_HAVE_OPENGL 1) 24 | - message(STATUS "Compiling with OpenGL support") 25 | +# set(G2O_USE_OPENGL ON CACHE BOOL "Build g2o with OpenGL support for visualization") 26 | +# if (OPENGL_FOUND AND G2O_USE_OPENGL) 27 | +# if (TARGET OpenGL::GL) 28 | +# set(G2O_OPENGL_TARGET "OpenGL::GL;OpenGL::GLU") 29 | +# else() 30 | +# set(G2O_OPENGL_TARGET "${OPENGL_LIBRARIES}") 31 | +# include_directories(${OPENGL_INCLUDE_DIR}) 32 | +# endif() 33 | +# set (G2O_HAVE_OPENGL 1) 34 | + # message(STATUS "Compiling with OpenGL support") 35 | #message(WARNING G2O_OPENGL_TARGET=${G2O_OPENGL_TARGET}) 36 | -endif() 37 | +# endif() 38 | +set (G2O_HAVE_OPENGL 0) 39 | 40 | # For building the GUI 41 | find_package(QGLViewer) 42 | diff --git a/g2o/examples/bal/bal_example.cpp b/g2o/examples/bal/bal_example.cpp 43 | index e953617b2..28f252ada 100644 44 | --- a/g2o/examples/bal/bal_example.cpp 45 | +++ b/g2o/examples/bal/bal_example.cpp 46 | @@ -46,9 +46,7 @@ 47 | #include "g2o/solvers/eigen/linear_solver_eigen.h" 48 | #endif 49 | 50 | -using namespace g2o; 51 | using namespace std; 52 | -using namespace Eigen; 53 | 54 | namespace g2o { 55 | namespace bal { 56 | @@ -65,7 +63,7 @@ using Vector9 = VectorN<9>; 57 | * - f the focal length of the camera 58 | * - k1, k2 two radial distortion parameters 59 | */ 60 | -class VertexCameraBAL : public BaseVertex<9, bal::Vector9> { 61 | +class VertexCameraBAL : public g2o::BaseVertex<9, g2o::bal::Vector9> { 62 | public: 63 | EIGEN_MAKE_ALIGNED_OPERATOR_NEW; 64 | VertexCameraBAL() {} 65 | @@ -83,7 +81,7 @@ class VertexCameraBAL : public BaseVertex<9, bal::Vector9> { 66 | virtual void setToOriginImpl() { cerr << __PRETTY_FUNCTION__ << " not implemented yet" << endl; } 67 | 68 | virtual void oplusImpl(const double* update) { 69 | - bal::Vector9::ConstMapType v(update, VertexCameraBAL::Dimension); 70 | + g2o::bal::Vector9::ConstMapType v(update, VertexCameraBAL::Dimension); 71 | _estimate += v; 72 | } 73 | }; 74 | @@ -93,7 +91,7 @@ class VertexCameraBAL : public BaseVertex<9, bal::Vector9> { 75 | * 76 | * A 3D point feature in the world 77 | */ 78 | -class VertexPointBAL : public BaseVertex<3, Vector3> { 79 | +class VertexPointBAL : public g2o::BaseVertex<3, g2o::Vector3> { 80 | public: 81 | EIGEN_MAKE_ALIGNED_OPERATOR_NEW; 82 | VertexPointBAL() {} 83 | @@ -111,7 +109,7 @@ class VertexPointBAL : public BaseVertex<3, Vector3> { 84 | virtual void setToOriginImpl() { cerr << __PRETTY_FUNCTION__ << " not implemented yet" << endl; } 85 | 86 | virtual void oplusImpl(const double* update) { 87 | - Vector3::ConstMapType v(update); 88 | + g2o::Vector3::ConstMapType v(update); 89 | _estimate += v; 90 | } 91 | }; 92 | @@ -138,7 +136,8 @@ class VertexPointBAL : public BaseVertex<3, Vector3> { 93 | * z-axis points backwards, so the camera is looking down the negative z-axis, 94 | * as in OpenGL). 95 | */ 96 | -class EdgeObservationBAL : public BaseBinaryEdge<2, Vector2, VertexCameraBAL, VertexPointBAL> { 97 | +class EdgeObservationBAL 98 | + : public g2o::BaseBinaryEdge<2, g2o::Vector2, VertexCameraBAL, VertexPointBAL> { 99 | public: 100 | EIGEN_MAKE_ALIGNED_OPERATOR_NEW; 101 | EdgeObservationBAL() {} 102 | @@ -195,7 +194,7 @@ class EdgeObservationBAL : public BaseBinaryEdge<2, Vector2, VertexCameraBAL, Ve 103 | // compute the error 104 | typename g2o::VectorN<2, T>::MapType error(p_error); 105 | error = prediction - measurement().cast(); 106 | - (void) error; 107 | + (void)error; 108 | return true; 109 | } 110 | 111 | @@ -209,7 +208,7 @@ int main(int argc, char** argv) { 112 | string outputFilename; 113 | string inputFilename; 114 | string statsFilename; 115 | - CommandArgs arg; 116 | + g2o::CommandArgs arg; 117 | arg.param("i", maxIterations, 5, "perform n iterations"); 118 | arg.param("o", outputFilename, "", "write points into a vrml file"); 119 | arg.param("pcg", usePCG, false, "use PCG instead of the Cholesky"); 120 | @@ -296,8 +295,8 @@ int main(int argc, char** argv) { 121 | EdgeObservationBAL* e = new EdgeObservationBAL; 122 | e->setVertex(0, cam); 123 | e->setVertex(1, point); 124 | - e->setInformation(Matrix2::Identity()); 125 | - e->setMeasurement(Vector2(obsX, obsY)); 126 | + e->setInformation(g2o::Matrix2::Identity()); 127 | + e->setMeasurement(g2o::Vector2(obsX, obsY)); 128 | bool addedEdge = optimizer.addEdge(e); 129 | if (!addedEdge) { 130 | cerr << "error adding edge" << endl; 131 | @@ -306,7 +305,7 @@ int main(int argc, char** argv) { 132 | 133 | // read in the camera params 134 | for (int i = 0; i < numCameras; ++i) { 135 | - bal::Vector9 cameraParameter; 136 | + g2o::bal::Vector9 cameraParameter; 137 | for (int j = 0; j < 9; ++j) ifs >> cameraParameter(j); 138 | VertexCameraBAL* cam = cameras[i]; 139 | cam->setEstimate(cameraParameter); 140 | @@ -314,7 +313,7 @@ int main(int argc, char** argv) { 141 | 142 | // read in the points 143 | for (int i = 0; i < numPoints; ++i) { 144 | - Vector3 p; 145 | + g2o::Vector3 p; 146 | ifs >> p(0) >> p(1) >> p(2); 147 | VertexPointBAL* point = points[i]; 148 | point->setEstimate(p); 149 | @@ -332,7 +331,7 @@ int main(int argc, char** argv) { 150 | if (statsFilename != "") { 151 | cerr << "writing stats to file \"" << statsFilename << "\" ... "; 152 | ofstream fout(statsFilename.c_str()); 153 | - const BatchStatisticsContainer& bsc = optimizer.batchStatistics(); 154 | + const g2o::BatchStatisticsContainer& bsc = optimizer.batchStatistics(); 155 | for (size_t i = 0; i < bsc.size(); i++) fout << bsc[i] << endl; 156 | cerr << "done." << endl; 157 | } 158 | -------------------------------------------------------------------------------- /patch/ros-galactic-menge-vendor.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 6eaedad..7b578b1 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -20,9 +20,12 @@ if(APPLE) 6 | endif() 7 | 8 | # find dependencies 9 | +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/ ${CMAKE_MODULE_PATH}) 10 | + 11 | find_package(ament_cmake REQUIRED) 12 | find_package(PkgConfig REQUIRED) 13 | -pkg_check_modules(tinyxml REQUIRED tinyxml) 14 | +find_package(TinyXML REQUIRED) 15 | +# pkg_check_modules(tinyxml REQUIRED tinyxml) 16 | 17 | set(MENGE_SRC_DIR ${CMAKE_SOURCE_DIR}/src/Menge) 18 | message("menge_source_dir " ${MENGE_SRC_DIR}) 19 | @@ -55,9 +58,9 @@ add_library( 20 | ${source_files} 21 | ) 22 | 23 | -target_include_directories( menge_vendor PUBLIC ${tinyxml_INCLUDE_DIRS} ) 24 | +target_include_directories( menge_vendor PUBLIC ${TinyXML_INCLUDE_DIRS} ) 25 | 26 | -target_link_libraries ( menge_vendor PUBLIC dl PRIVATE ${tinyxml_LIBRARIES} ) 27 | +target_link_libraries ( menge_vendor PUBLIC dl PRIVATE ${TinyXML_LIBRARIES} ) 28 | 29 | set_target_properties( menge_vendor PROPERTIES LINKER_LANGUAGE CXX ) 30 | 31 | diff --git a/FindTinyXML.cmake b/FindTinyXML.cmake 32 | new file mode 100644 33 | index 0000000..666d4ec 34 | --- /dev/null 35 | +++ b/FindTinyXML.cmake 36 | @@ -0,0 +1,84 @@ 37 | +################################################################################################## 38 | +# 39 | +# CMake script for finding TinyXML. 40 | +# 41 | +# Input variables: 42 | +# 43 | +# - TinyXML_ROOT_DIR (optional): When specified, header files and libraries will be searched for in 44 | +# ${TinyXML_ROOT_DIR}/include 45 | +# ${TinyXML_ROOT_DIR}/libs 46 | +# respectively, and the default CMake search order will be ignored. When unspecified, the default 47 | +# CMake search order is used. 48 | +# This variable can be specified either as a CMake or environment variable. If both are set, 49 | +# preference is given to the CMake variable. 50 | +# Use this variable for finding packages installed in a nonstandard location, or for enforcing 51 | +# that one of multiple package installations is picked up. 52 | +# 53 | +# 54 | +# Cache variables (not intended to be used in CMakeLists.txt files) 55 | +# 56 | +# - TinyXML_INCLUDE_DIR: Absolute path to package headers. 57 | +# - TinyXML_LIBRARY: Absolute path to library. 58 | +# 59 | +# 60 | +# Output variables: 61 | +# 62 | +# - TinyXML_FOUND: Boolean that indicates if the package was found 63 | +# - TinyXML_INCLUDE_DIRS: Paths to the necessary header files 64 | +# - TinyXML_LIBRARIES: Package libraries 65 | +# 66 | +# 67 | +# Example usage: 68 | +# 69 | +# find_package(TinyXML) 70 | +# if(NOT TinyXML_FOUND) 71 | +# # Error handling 72 | +# endif() 73 | +# ... 74 | +# include_directories(${TinyXML_INCLUDE_DIRS} ...) 75 | +# ... 76 | +# target_link_libraries(my_target ${TinyXML_LIBRARIES}) 77 | +# 78 | +################################################################################################## 79 | + 80 | +# First attempt to find Config-file package 81 | +find_package(TinyXML CONFIG QUIET) 82 | + 83 | +if (NOT TinyXML_FOUND) 84 | + 85 | + 86 | + # Get package location hint from environment variable (if any) 87 | + if(NOT TinyXML_ROOT_DIR AND DEFINED ENV{TinyXML_ROOT_DIR}) 88 | + set(TinyXML_ROOT_DIR "$ENV{TinyXML_ROOT_DIR}" CACHE PATH 89 | + "TinyXML base directory location (optional, used for nonstandard installation paths)") 90 | + endif() 91 | + 92 | + # Search path for nonstandard package locations 93 | + if(TinyXML_ROOT_DIR) 94 | + set(TinyXML_INCLUDE_PATH PATHS "${TinyXML_ROOT_DIR}/include" NO_DEFAULT_PATH) 95 | + set(TinyXML_LIBRARY_PATH PATHS "${TinyXML_ROOT_DIR}/lib" NO_DEFAULT_PATH) 96 | + else() 97 | + set(TinyXML_INCLUDE_PATH "") 98 | + set(TinyXML_LIBRARY_PATH "") 99 | + endif() 100 | + 101 | + # Find headers and libraries 102 | + find_path(TinyXML_INCLUDE_DIR NAMES tinyxml.h PATH_SUFFIXES "tinyxml" ${TinyXML_INCLUDE_PATH}) 103 | + find_library(TinyXML_LIBRARY NAMES tinyxml PATH_SUFFIXES "tinyxml" ${TinyXML_LIBRARY_PATH}) 104 | + 105 | + mark_as_advanced(TinyXML_INCLUDE_DIR 106 | + TinyXML_LIBRARY) 107 | + 108 | + # Output variables generation 109 | + include(FindPackageHandleStandardArgs) 110 | + find_package_handle_standard_args(TinyXML DEFAULT_MSG TinyXML_LIBRARY 111 | + TinyXML_INCLUDE_DIR) 112 | + 113 | + set(TinyXML_FOUND ${TINYXML_FOUND}) # Enforce case-correctness: Set appropriately cased variable... 114 | + unset(TINYXML_FOUND) # ...and unset uppercase variable generated by find_package_handle_standard_args 115 | + 116 | + if(TinyXML_FOUND) 117 | + set(TinyXML_INCLUDE_DIRS ${TinyXML_INCLUDE_DIR}) 118 | + set(TinyXML_LIBRARIES ${TinyXML_LIBRARY}) 119 | + endif() 120 | +endif() 121 | -------------------------------------------------------------------------------- /patch/ros-galactic-mimick-vendor.osx.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index e4cf591..3b1519d 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -58,11 +58,12 @@ macro(build_mimick) 6 | endif() 7 | 8 | include(ExternalProject) 9 | - set(mimick_version "f171450b5ebaa3d2538c762a059dfc6ab7a01039") 10 | + set(mimick_version "de11f8377eb95f932a03707b583bf3d4ce5bd3e7") 11 | externalproject_add(mimick-${mimick_version} 12 | GIT_REPOSITORY https://github.com/ros2/Mimick.git 13 | GIT_TAG ${mimick_version} 14 | GIT_CONFIG advice.detachedHead=false 15 | + PATCH_COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/crosscompile.patch 16 | # Suppress git update due to https://gitlab.kitware.com/cmake/cmake/-/issues/16419 17 | UPDATE_COMMAND "" 18 | TIMEOUT 6000 19 | diff --git a/crosscompile.patch b/crosscompile.patch 20 | new file mode 100644 21 | index 0000000..8d6fc61 22 | --- /dev/null 23 | +++ b/crosscompile.patch 24 | @@ -0,0 +1,15 @@ 25 | +diff --git a/CMakeLists.txt b/CMakeLists.txt 26 | +index a0ff848..34c95ff 100644 27 | +--- a/CMakeLists.txt 28 | ++++ b/CMakeLists.txt 29 | +@@ -32,6 +32,10 @@ else () 30 | + set (_ARCH "${CMAKE_SYSTEM_PROCESSOR}") 31 | + endif () 32 | + 33 | ++if(APPLE AND "$ENV{CONDA_BUILD_CROSS_COMPILATION}" EQUAL "1") 34 | ++ set (_ARCH "arm64") 35 | ++endif() 36 | ++ 37 | + set (MMK_MANGLING "none") 38 | + 39 | + if (MSVC) 40 | -------------------------------------------------------------------------------- /patch/ros-galactic-mimick-vendor.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index e4cf591..3934ec7 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -59,7 +59,8 @@ macro(build_mimick) 6 | 7 | include(ExternalProject) 8 | set(mimick_version "f171450b5ebaa3d2538c762a059dfc6ab7a01039") 9 | - externalproject_add(mimick-${mimick_version} 10 | + externalproject_add(mimick 11 | + PREFIX mck 12 | GIT_REPOSITORY https://github.com/ros2/Mimick.git 13 | GIT_TAG ${mimick_version} 14 | GIT_CONFIG advice.detachedHead=false 15 | -------------------------------------------------------------------------------- /patch/ros-galactic-moveit-common.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/cmake/moveit_package.cmake b/cmake/moveit_package.cmake 2 | index 1fed492e2d..7d14b5b477 100644 3 | --- a/cmake/moveit_package.cmake 4 | +++ b/cmake/moveit_package.cmake 5 | @@ -33,7 +33,7 @@ macro(moveit_package) 6 | ament_package_xml() 7 | 8 | # Enable backward_ros on every moveit package 9 | - find_package(backward_ros QUIET) 10 | + # find_package(backward_ros QUIET) 11 | 12 | if(NOT "${CMAKE_CXX_STANDARD}") 13 | set(CMAKE_CXX_STANDARD 17) 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-moveit-core.osx.patch: -------------------------------------------------------------------------------- 1 | diff --git a/background_processing/include/moveit/background_processing/background_processing.h b/background_processing/include/moveit/background_processing/background_processing.h 2 | index 3ecb98b5..5a7c5f48 100644 3 | --- a/background_processing/include/moveit/background_processing/background_processing.h 4 | +++ b/background_processing/include/moveit/background_processing/background_processing.h 5 | @@ -38,7 +38,7 @@ 6 | 7 | #include 8 | #include 9 | -#include 10 | +#include 11 | #include 12 | #include 13 | #include 14 | @@ -96,11 +96,11 @@ public: 15 | void clearJobUpdateEvent(); 16 | 17 | private: 18 | - std::unique_ptr processing_thread_; 19 | + std::unique_ptr processing_thread_; 20 | bool run_processing_thread_; 21 | 22 | - mutable boost::mutex action_lock_; 23 | - boost::condition_variable new_action_condition_; 24 | + mutable std::mutex action_lock_; 25 | + std::condition_variable new_action_condition_; 26 | std::deque actions_; 27 | std::deque action_names_; 28 | 29 | diff --git a/background_processing/src/background_processing.cpp b/background_processing/src/background_processing.cpp 30 | index 7e7b2447..348caf53 100644 31 | --- a/background_processing/src/background_processing.cpp 32 | +++ b/background_processing/src/background_processing.cpp 33 | @@ -49,7 +49,7 @@ BackgroundProcessing::BackgroundProcessing() 34 | // spin a thread that will process user events 35 | run_processing_thread_ = true; 36 | processing_ = false; 37 | - processing_thread_ = std::make_unique(boost::bind(&BackgroundProcessing::processingThread, this)); 38 | + processing_thread_ = std::make_unique(std::bind(&BackgroundProcessing::processingThread, this)); 39 | } 40 | 41 | BackgroundProcessing::~BackgroundProcessing() 42 | @@ -61,7 +61,7 @@ BackgroundProcessing::~BackgroundProcessing() 43 | 44 | void BackgroundProcessing::processingThread() 45 | { 46 | - boost::unique_lock ulock(action_lock_); 47 | + std::unique_lock ulock(action_lock_); 48 | 49 | while (run_processing_thread_) 50 | { 51 | @@ -99,7 +99,7 @@ void BackgroundProcessing::processingThread() 52 | void BackgroundProcessing::addJob(const boost::function& job, const std::string& name) 53 | { 54 | { 55 | - boost::mutex::scoped_lock _(action_lock_); 56 | + std::scoped_lock _(action_lock_); 57 | actions_.push_back(job); 58 | action_names_.push_back(name); 59 | new_action_condition_.notify_all(); 60 | @@ -113,7 +113,7 @@ void BackgroundProcessing::clear() 61 | bool update = false; 62 | std::deque removed; 63 | { 64 | - boost::mutex::scoped_lock _(action_lock_); 65 | + std::scoped_lock _(action_lock_); 66 | update = !actions_.empty(); 67 | actions_.clear(); 68 | action_names_.swap(removed); 69 | @@ -125,13 +125,13 @@ void BackgroundProcessing::clear() 70 | 71 | std::size_t BackgroundProcessing::getJobCount() const 72 | { 73 | - boost::mutex::scoped_lock _(action_lock_); 74 | + std::scoped_lock _(action_lock_); 75 | return actions_.size() + (processing_ ? 1 : 0); 76 | } 77 | 78 | void BackgroundProcessing::setJobUpdateEvent(const JobUpdateCallback& event) 79 | { 80 | - boost::mutex::scoped_lock _(action_lock_); 81 | + std::scoped_lock _(action_lock_); 82 | queue_change_event_ = event; 83 | } 84 | 85 | diff --git a/profiler/include/moveit/profiler/profiler.h b/profiler/include/moveit/profiler/profiler.h 86 | index 3ea38f58..10e72e10 100644 87 | --- a/profiler/include/moveit/profiler/profiler.h 88 | +++ b/profiler/include/moveit/profiler/profiler.h 89 | @@ -56,7 +56,7 @@ 90 | #include 91 | #include 92 | #include 93 | -#include 94 | +#include 95 | #include 96 | #include 97 | 98 | @@ -304,8 +304,8 @@ private: 99 | 100 | void printThreadInfo(std::ostream& out, const PerThread& data); 101 | 102 | - boost::mutex lock_; 103 | - std::map data_; 104 | + std::mutex lock_; 105 | + std::map data_; 106 | TimeInfo tinfo_; 107 | bool running_; 108 | bool printOnDestroy_; 109 | diff --git a/profiler/src/profiler.cpp b/profiler/src/profiler.cpp 110 | index 69a0bf39..00a53ba4 100644 111 | --- a/profiler/src/profiler.cpp 112 | +++ b/profiler/src/profiler.cpp 113 | @@ -88,14 +88,14 @@ void Profiler::clear() 114 | void Profiler::event(const std::string& name, const unsigned int times) 115 | { 116 | lock_.lock(); 117 | - data_[boost::this_thread::get_id()].events[name] += times; 118 | + data_[std::this_thread::get_id()].events[name] += times; 119 | lock_.unlock(); 120 | } 121 | 122 | void Profiler::average(const std::string& name, const double value) 123 | { 124 | lock_.lock(); 125 | - AvgInfo& a = data_[boost::this_thread::get_id()].avg[name]; 126 | + AvgInfo& a = data_[std::this_thread::get_id()].avg[name]; 127 | a.total += value; 128 | a.totalSqr += value * value; 129 | a.parts++; 130 | @@ -105,14 +105,14 @@ void Profiler::average(const std::string& name, const double value) 131 | void Profiler::begin(const std::string& name) 132 | { 133 | lock_.lock(); 134 | - data_[boost::this_thread::get_id()].time[name].set(); 135 | + data_[std::this_thread::get_id()].time[name].set(); 136 | lock_.unlock(); 137 | } 138 | 139 | void Profiler::end(const std::string& name) 140 | { 141 | lock_.lock(); 142 | - data_[boost::this_thread::get_id()].time[name].update(); 143 | + data_[std::this_thread::get_id()].time[name].update(); 144 | lock_.unlock(); 145 | } 146 | 147 | @@ -136,7 +136,7 @@ void Profiler::status(std::ostream& out, bool merge) 148 | if (merge) 149 | { 150 | PerThread combined; 151 | - for (std::map::const_iterator it = data_.begin(); it != data_.end(); ++it) 152 | + for (std::map::const_iterator it = data_.begin(); it != data_.end(); ++it) 153 | { 154 | for (const std::pair& event : it->second.events) 155 | combined.events[event.first] += event.second; 156 | @@ -160,7 +160,7 @@ void Profiler::status(std::ostream& out, bool merge) 157 | printThreadInfo(out, combined); 158 | } 159 | else 160 | - for (std::map::const_iterator it = data_.begin(); it != data_.end(); ++it) 161 | + for (std::map::const_iterator it = data_.begin(); it != data_.end(); ++it) 162 | { 163 | out << "Thread " << it->first << ":\n"; 164 | printThreadInfo(out, it->second); 165 | -------------------------------------------------------------------------------- /patch/ros-galactic-moveit-core.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index ceb8b5286..5f75bbebe 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -15,13 +15,6 @@ include(ConfigExtras.cmake) 6 | 7 | find_package(PkgConfig REQUIRED) 8 | pkg_check_modules(LIBFCL REQUIRED "fcl>=0.5.0") 9 | -# replace LIBFCL_LIBRARIES with full paths to the libraries 10 | -set(LIBFCL_LIBRARIES_FULL "") 11 | -foreach(LIBFCL_LIBRARY ${LIBFCL_LIBRARIES}) 12 | - find_library(${LIBFCL_LIBRARY}_LIB ${LIBFCL_LIBRARY} ${LIBFCL_LIBRARY_DIRS}) 13 | - list(APPEND LIBFCL_LIBRARIES_FULL ${${LIBFCL_LIBRARY}_LIB}) 14 | -endforeach() 15 | -set(LIBFCL_LIBRARIES "${LIBFCL_LIBRARIES_FULL}") 16 | 17 | find_package(Bullet 2.87 REQUIRED) 18 | find_package(angles REQUIRED) 19 | -------------------------------------------------------------------------------- /patch/ros-galactic-moveit-core.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/collision_detection_fcl/CMakeLists.txt b/collision_detection_fcl/CMakeLists.txt 2 | index 32002955a7..7e8d737c8f 100644 3 | --- a/collision_detection_fcl/CMakeLists.txt 4 | +++ b/collision_detection_fcl/CMakeLists.txt 5 | @@ -14,12 +14,13 @@ ament_target_dependencies(${MOVEIT_LIB_NAME} 6 | urdf 7 | urdfdom 8 | urdfdom_headers 9 | - LIBFCL 10 | Boost 11 | visualization_msgs 12 | ) 13 | +message(WARNING "Linking to ${LIBFCL_LINK_LIBRARIES}") 14 | target_link_libraries(${MOVEIT_LIB_NAME} 15 | moveit_collision_detection 16 | + ${LIBFCL_LINK_LIBRARIES} 17 | ) 18 | 19 | add_library(collision_detector_fcl_plugin SHARED src/collision_detector_fcl_plugin_loader.cpp) 20 | -------------------------------------------------------------------------------- /patch/ros-galactic-moveit-kinematics.patch: -------------------------------------------------------------------------------- 1 | diff --git a/cached_ik_kinematics_plugin/include/moveit/cached_ik_kinematics_plugin/detail/NearestNeighborsGNAT.h b/cached_ik_kinematics_plugin/include/moveit/cached_ik_kinematics_plugin/detail/NearestNeighborsGNAT.h 2 | index 49a02b9d6b..e8142e5711 100644 3 | --- a/cached_ik_kinematics_plugin/include/moveit/cached_ik_kinematics_plugin/detail/NearestNeighborsGNAT.h 4 | +++ b/cached_ik_kinematics_plugin/include/moveit/cached_ik_kinematics_plugin/detail/NearestNeighborsGNAT.h 5 | @@ -551,7 +551,9 @@ class NearestNeighborsGNAT : public NearestNeighbors<_T> 6 | std::vector permutation(children_.size()); 7 | for (unsigned int i = 0; i < permutation.size(); ++i) 8 | permutation[i] = i; 9 | - std::random_shuffle(permutation.begin(), permutation.end()); 10 | + std::random_device rng; 11 | + std::mt19937 urng(rng()); 12 | + std::shuffle(permutation.begin(), permutation.end(), urng); 13 | 14 | for (unsigned int i = 0; i < children_.size(); ++i) 15 | if (permutation[i] >= 0) 16 | @@ -605,7 +607,9 @@ class NearestNeighborsGNAT : public NearestNeighbors<_T> 17 | std::vector permutation(children_.size()); 18 | for (unsigned int i = 0; i < permutation.size(); ++i) 19 | permutation[i] = i; 20 | - std::random_shuffle(permutation.begin(), permutation.end()); 21 | + std::random_device rng; 22 | + std::mt19937 urng(rng()); 23 | + std::shuffle(permutation.begin(), permutation.end(), urng); 24 | 25 | for (unsigned int i = 0; i < children_.size(); ++i) 26 | if (permutation[i] >= 0) 27 | 28 | -------------------------------------------------------------------------------- /patch/ros-galactic-moveit-planners-ompl.patch: -------------------------------------------------------------------------------- 1 | diff --git a/ompl_interface/CMakeLists.txt b/ompl_interface/CMakeLists.txt 2 | index ff71c07c..0d0aef71 100644 3 | --- a/ompl_interface/CMakeLists.txt 4 | +++ b/ompl_interface/CMakeLists.txt 5 | @@ -24,7 +24,12 @@ add_library(${MOVEIT_LIB_NAME} SHARED 6 | ) 7 | set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") 8 | 9 | -find_package(OpenMP REQUIRED) 10 | +if(APPLE) 11 | + find_package(OpenMP) 12 | + set(OpenMP_CXX_FLAGS "-fopenmp") 13 | +else() 14 | + find_package(OpenMP REQUIRED) 15 | +endif() 16 | 17 | # Used to link in ODE, an OMPL dependency, on macOS 18 | if(APPLE) 19 | -------------------------------------------------------------------------------- /patch/ros-galactic-moveit-resources-prbt-ikfast-manipulator-plugin.patch: -------------------------------------------------------------------------------- 1 | diff --git a/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/CMakeLists.txt b/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/CMakeLists.txt 2 | index ee7e2d0bd5..a84887f89a 100644 3 | --- a/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/CMakeLists.txt 4 | +++ b/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/CMakeLists.txt 5 | @@ -4,10 +4,12 @@ project(moveit_resources_prbt_ikfast_manipulator_plugin) 6 | set(CMAKE_CXX_STANDARD 17) 7 | set(CMAKE_CXX_EXTENSIONS OFF) 8 | 9 | -add_compile_options(-Wall) 10 | -add_compile_options(-Wextra) 11 | -add_compile_options(-Wno-unused-parameter) 12 | -add_compile_options(-Wno-unused-variable) 13 | +if(NOT WIN32) 14 | + add_compile_options(-Wall) 15 | + add_compile_options(-Wextra) 16 | + add_compile_options(-Wno-unused-parameter) 17 | + add_compile_options(-Wno-unused-variable) 18 | +endif() 19 | 20 | # enable aligned new in gcc7+ 21 | if(CMAKE_COMPILER_IS_GNUCXX) 22 | @@ -29,8 +31,11 @@ include_directories(include) 23 | 24 | add_library(prbt_manipulator_moveit_ikfast_plugin SHARED 25 | src/prbt_manipulator_ikfast_moveit_plugin.cpp) 26 | -# suppress warnings about unused variables in OpenRave's solver code 27 | -target_compile_options(prbt_manipulator_moveit_ikfast_plugin PRIVATE -Wno-unused-variable) 28 | + 29 | +if(NOT WIN32) 30 | + # suppress warnings about unused variables in OpenRave's solver code 31 | + target_compile_options(prbt_manipulator_moveit_ikfast_plugin PRIVATE -Wno-unused-variable) 32 | +endif() 33 | ament_target_dependencies(prbt_manipulator_moveit_ikfast_plugin 34 | moveit_core 35 | pluginlib 36 | diff --git a/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp b/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp 37 | index c1359ad572..7a238a9df7 100644 38 | --- a/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp 39 | +++ b/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_solver.cpp 40 | @@ -25,10 +25,6 @@ 41 | #include "ikfast.h" // found inside share/openrave-X.Y/python/ikfast.h 42 | using namespace ikfast; 43 | 44 | -// check if the included ikfast version matches what this file was compiled with 45 | -#define IKFAST_COMPILE_ASSERT(x) extern int __dummy[(int)x] 46 | -IKFAST_COMPILE_ASSERT(IKFAST_VERSION==0x1000004a); 47 | - 48 | #include 49 | #include 50 | #include 51 | diff --git a/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp b/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp 52 | index 7479184c92..48da20018c 100644 53 | --- a/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp 54 | +++ b/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp 55 | @@ -805,7 +805,7 @@ bool IKFastKinematicsPlugin::getPositionFK(const std::vector& link_ 56 | return false; 57 | } 58 | 59 | - IkReal angles[num_joints_]; 60 | + IkReal* angles = new IkReal[num_joints_]; 61 | for (unsigned char i = 0; i < num_joints_; i++) 62 | angles[i] = joint_angles[i]; 63 | 64 | -------------------------------------------------------------------------------- /patch/ros-galactic-moveit-ros-planning.patch: -------------------------------------------------------------------------------- 1 | diff --git a/kinematics_plugin_loader/CMakeLists.txt b/kinematics_plugin_loader/CMakeLists.txt 2 | index ee1b58e8..56858550 100644 3 | --- a/kinematics_plugin_loader/CMakeLists.txt 4 | +++ b/kinematics_plugin_loader/CMakeLists.txt 5 | @@ -1,5 +1,8 @@ 6 | set(MOVEIT_LIB_NAME moveit_kinematics_plugin_loader) 7 | 8 | +find_package(PkgConfig REQUIRED) 9 | +pkg_check_modules(LIBFCL REQUIRED "fcl>=0.5.0") 10 | + 11 | add_library(${MOVEIT_LIB_NAME} SHARED src/kinematics_plugin_loader.cpp) 12 | set_target_properties(${MOVEIT_LIB_NAME} PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") 13 | ament_target_dependencies(${MOVEIT_LIB_NAME} 14 | @@ -12,6 +15,7 @@ ament_target_dependencies(${MOVEIT_LIB_NAME} 15 | ) 16 | target_link_libraries(${MOVEIT_LIB_NAME} 17 | moveit_rdf_loader 18 | + ${LIBFCL_LINK_LIBRARIES} 19 | ) 20 | 21 | install(DIRECTORY include/ DESTINATION include) 22 | diff --git a/kinematics_plugin_loader/src/kinematics_plugin_loader.cpp b/kinematics_plugin_loader/src/kinematics_plugin_loader.cpp 23 | index f718f3f4..9db5cbb8 100644 24 | --- a/kinematics_plugin_loader/src/kinematics_plugin_loader.cpp 25 | +++ b/kinematics_plugin_loader/src/kinematics_plugin_loader.cpp 26 | @@ -38,6 +38,8 @@ 27 | #include 28 | #include 29 | #include 30 | +#include 31 | +#include 32 | #include 33 | #include 34 | #include 35 | -------------------------------------------------------------------------------- /patch/ros-galactic-mrt-cmake-modules.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index aa99d8d..8327d4e 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -1,7 +1,7 @@ 6 | cmake_minimum_required(VERSION 3.0.2) 7 | project(mrt_cmake_modules) 8 | 9 | -if($ENV{ROS_VERSION} EQUAL 1) 10 | +if(2 EQUAL 1) 11 | find_package(catkin REQUIRED) 12 | catkin_package(CFG_EXTRAS mrt_cmake_modules-extras.cmake) 13 | else() 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-amcl.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nav2_amcl/CMakeLists.txt b/nav2_amcl/CMakeLists.txt 2 | index af2e6bf42..cf24fde81 100644 3 | --- a/nav2_amcl/CMakeLists.txt 4 | +++ b/nav2_amcl/CMakeLists.txt 5 | @@ -1,6 +1,8 @@ 6 | cmake_minimum_required(VERSION 3.5) 7 | project(nav2_amcl) 8 | 9 | +add_definitions(-DNOMINMAX) 10 | + 11 | find_package(ament_cmake REQUIRED) 12 | find_package(nav2_common REQUIRED) 13 | find_package(rclcpp REQUIRED) 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-behavior-tree.osx.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server.hpp b/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server.hpp 2 | index ec9779444..4909367f9 100644 3 | --- a/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server.hpp 4 | +++ b/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server.hpp 5 | @@ -168,7 +168,7 @@ class BtActionServer 6 | * @brief Getter function for the current BT tree 7 | * @return BT::Tree Current behavior tree 8 | */ 9 | - BT::Tree getTree() const 10 | + BT::Tree& getTree() 11 | { 12 | return tree_; 13 | } 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-behavior-tree.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nav2_behavior_tree/CMakeLists.txt b/nav2_behavior_tree/CMakeLists.txt 2 | index 9de075152..ade316733 100644 3 | --- a/nav2_behavior_tree/CMakeLists.txt 4 | +++ b/nav2_behavior_tree/CMakeLists.txt 5 | @@ -1,6 +1,8 @@ 6 | cmake_minimum_required(VERSION 3.5) 7 | project(nav2_behavior_tree CXX) 8 | 9 | +add_definitions(-DNOMINMAX) 10 | + 11 | find_package(ament_cmake REQUIRED) 12 | find_package(nav2_common REQUIRED) 13 | find_package(rclcpp REQUIRED) 14 | diff --git a/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server.hpp b/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server.hpp 15 | index ec9779444..e423afcb4 100644 16 | --- a/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server.hpp 17 | +++ b/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server.hpp 18 | @@ -231,11 +231,6 @@ class BtActionServer 19 | // Default timeout value while waiting for response from a server 20 | std::chrono::milliseconds default_server_timeout_; 21 | 22 | - // Parameters for Groot monitoring 23 | - bool enable_groot_monitoring_; 24 | - int groot_zmq_publisher_port_; 25 | - int groot_zmq_server_port_; 26 | - 27 | // User-provided callbacks 28 | OnGoalReceivedCallback on_goal_received_callback_; 29 | OnLoopCallback on_loop_callback_; 30 | diff --git a/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server_impl.hpp b/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server_impl.hpp 31 | index 64f4ffa81..bb10a8830 100644 32 | --- a/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server_impl.hpp 33 | +++ b/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server_impl.hpp 34 | @@ -59,15 +59,6 @@ BtActionServer::BtActionServer( 35 | if (!node->has_parameter("default_server_timeout")) { 36 | node->declare_parameter("default_server_timeout", 20); 37 | } 38 | - if (!node->has_parameter("enable_groot_monitoring")) { 39 | - node->declare_parameter("enable_groot_monitoring", true); 40 | - } 41 | - if (!node->has_parameter("groot_zmq_publisher_port")) { 42 | - node->declare_parameter("groot_zmq_publisher_port", 1666); 43 | - } 44 | - if (!node->has_parameter("groot_zmq_server_port")) { 45 | - node->declare_parameter("groot_zmq_server_port", 1667); 46 | - } 47 | } 48 | 49 | template 50 | @@ -102,11 +93,6 @@ bool BtActionServer::on_configure() 51 | node->get_node_waitables_interface(), 52 | action_name_, std::bind(&BtActionServer::executeCallback, this)); 53 | 54 | - // Get parameter for monitoring with Groot via ZMQ Publisher 55 | - node->get_parameter("enable_groot_monitoring", enable_groot_monitoring_); 56 | - node->get_parameter("groot_zmq_publisher_port", groot_zmq_publisher_port_); 57 | - node->get_parameter("groot_zmq_server_port", groot_zmq_server_port_); 58 | - 59 | // Get parameters for BT timeouts 60 | int timeout; 61 | node->get_parameter("bt_loop_duration", timeout); 62 | @@ -156,7 +142,6 @@ bool BtActionServer::on_cleanup() 63 | current_bt_xml_filename_.clear(); 64 | blackboard_.reset(); 65 | bt_->haltAllActions(tree_.rootNode()); 66 | - bt_->resetGrootMonitor(); 67 | bt_.reset(); 68 | return true; 69 | } 70 | @@ -173,9 +158,6 @@ bool BtActionServer::loadBehaviorTree(const std::string & bt_xml_filena 71 | return true; 72 | } 73 | 74 | - // if a new tree is created, than the ZMQ Publisher must be destroyed 75 | - bt_->resetGrootMonitor(); 76 | - 77 | // Read the input BT XML from the specified file into a string 78 | std::ifstream xml_file(filename); 79 | 80 | @@ -194,16 +176,6 @@ bool BtActionServer::loadBehaviorTree(const std::string & bt_xml_filena 81 | 82 | current_bt_xml_filename_ = filename; 83 | 84 | - // Enable monitoring with Groot 85 | - if (enable_groot_monitoring_) { 86 | - // optionally add max_msg_per_second = 25 (default) here 87 | - try { 88 | - bt_->addGrootMonitoring(&tree_, groot_zmq_publisher_port_, groot_zmq_server_port_); 89 | - } catch (const std::logic_error & e) { 90 | - RCLCPP_ERROR(logger_, "ZMQ already enabled, Error: %s", e.what()); 91 | - } 92 | - } 93 | - 94 | return true; 95 | } 96 | diff --git a/nav2_behavior_tree/src/behavior_tree_engine.cpp b/nav2_behavior_tree/src/behavior_tree_engine.cpp 97 | index e689cae927..ed55b08534 100644 98 | --- a/nav2_behavior_tree/src/behavior_tree_engine.cpp 99 | +++ b/nav2_behavior_tree/src/behavior_tree_engine.cpp 100 | @@ -83,27 +83,6 @@ BehaviorTreeEngine::createTreeFromFile( 101 | return factory_.createTreeFromFile(file_path, blackboard); 102 | } 103 | 104 | -void 105 | -BehaviorTreeEngine::addGrootMonitoring( 106 | - BT::Tree * tree, 107 | - uint16_t publisher_port, 108 | - uint16_t server_port, 109 | - uint16_t max_msg_per_second) 110 | -{ 111 | - // This logger publish status changes using ZeroMQ. Used by Groot 112 | - groot_monitor_ = std::make_unique( 113 | - *tree, max_msg_per_second, publisher_port, 114 | - server_port); 115 | -} 116 | - 117 | -void 118 | -BehaviorTreeEngine::resetGrootMonitor() 119 | -{ 120 | - if (groot_monitor_) { 121 | - groot_monitor_.reset(); 122 | - } 123 | -} 124 | - 125 | // In order to re-run a Behavior Tree, we must be able to reset all nodes to the initial state 126 | void 127 | BehaviorTreeEngine::haltAllActions(BT::TreeNode * root_node) 128 | diff --git a/nav2_behavior_tree/include/nav2_behavior_tree/behavior_tree_engine.hpp b/nav2_behavior_tree/include/nav2_behavior_tree/behavior_tree_engine.hpp 129 | index f5aab180c..6f0c9bfb9 100644 130 | --- a/nav2_behavior_tree/include/nav2_behavior_tree/behavior_tree_engine.hpp 131 | +++ b/nav2_behavior_tree/include/nav2_behavior_tree/behavior_tree_engine.hpp 132 | @@ -83,24 +83,6 @@ class BehaviorTreeEngine 133 | const std::string & file_path, 134 | BT::Blackboard::Ptr blackboard); 135 | 136 | - /** 137 | - * @brief Add groot monitor to publish BT status changes 138 | - * @param tree BT to monitor 139 | - * @param publisher_port ZMQ publisher port for the Groot monitor 140 | - * @param server_port ZMQ server port for the Groot monitor 141 | - * @param max_msg_per_second Maximum number of messages that can be sent per second 142 | - */ 143 | - void addGrootMonitoring( 144 | - BT::Tree * tree, 145 | - uint16_t publisher_port, 146 | - uint16_t server_port, 147 | - uint16_t max_msg_per_second = 25); 148 | - 149 | - /** 150 | - * @brief Reset groot monitor 151 | - */ 152 | - void resetGrootMonitor(); 153 | - 154 | /** 155 | * @brief Function to explicitly reset all BT nodes to initial state 156 | * @param root_node Pointer to BT root node 157 | @@ -110,8 +92,6 @@ class BehaviorTreeEngine 158 | protected: 159 | // The factory that will be used to dynamically construct the behavior tree 160 | BT::BehaviorTreeFactory factory_; 161 | - 162 | - static inline std::unique_ptr groot_monitor_; 163 | }; 164 | 165 | } // namespace nav2_behavior_tree 166 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-common.osx.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nav2_common/cmake/nav2_package.cmake b/nav2_common/cmake/nav2_package.cmake 2 | index b00d30c17b..e4d69043bd 100644 3 | --- a/nav2_common/cmake/nav2_package.cmake 4 | +++ b/nav2_common/cmake/nav2_package.cmake 5 | @@ -33,7 +33,7 @@ macro(nav2_package) 6 | endif() 7 | 8 | if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") 9 | - add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wdeprecated -fPIC) 10 | + add_compile_options(-fPIC) 11 | endif() 12 | 13 | option(COVERAGE_ENABLED "Enable code coverage" FALSE) 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-common.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nav2_common/cmake/nav2_package.cmake b/nav2_common/cmake/nav2_package.cmake 2 | index b00d30c17b..439f5b523a 100644 3 | --- a/nav2_common/cmake/nav2_package.cmake 4 | +++ b/nav2_common/cmake/nav2_package.cmake 5 | @@ -45,6 +45,7 @@ macro(nav2_package) 6 | 7 | # Defaults for Microsoft C++ compiler 8 | if(MSVC) 9 | + add_definitions(-DNOMINMAX) 10 | # https://blog.kitware.com/create-dlls-on-windows-without-declspec-using-new-cmake-export-all-feature/ 11 | set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) 12 | 13 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-controller.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nav2_controller/CMakeLists.txt b/nav2_controller/CMakeLists.txt 2 | index f8e7bd91a..f794a0b16 100644 3 | --- a/nav2_controller/CMakeLists.txt 4 | +++ b/nav2_controller/CMakeLists.txt 5 | @@ -1,6 +1,8 @@ 6 | cmake_minimum_required(VERSION 3.5) 7 | project(nav2_controller) 8 | 9 | +add_definitions(-DNOMINMAX) 10 | + 11 | find_package(ament_cmake REQUIRED) 12 | find_package(nav2_core REQUIRED) 13 | find_package(nav2_common REQUIRED) 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-costmap-2d.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nav2_costmap_2d/CMakeLists.txt b/nav2_costmap_2d/CMakeLists.txt 2 | index 84f86617a..e94cfaec0 100644 3 | --- a/nav2_costmap_2d/CMakeLists.txt 4 | +++ b/nav2_costmap_2d/CMakeLists.txt 5 | @@ -1,6 +1,8 @@ 6 | cmake_minimum_required(VERSION 3.5) 7 | project(nav2_costmap_2d) 8 | 9 | +add_definitions(-DNOMINMAX) 10 | + 11 | find_package(ament_cmake REQUIRED) 12 | find_package(geometry_msgs REQUIRED) 13 | find_package(laser_geometry REQUIRED) 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-map-server.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/map_io.cpp b/src/map_io.cpp 2 | index b26b09be38..251985f487 100644 3 | --- a/src/map_io.cpp 4 | +++ b/src/map_io.cpp 5 | @@ -86,7 +86,7 @@ char * dirname(char * path) 6 | /* This assignment is ill-designed but the XPG specs require to 7 | return a string containing "." in any case no directory part is 8 | found and so a static and constant string is required. */ 9 | - path = reinterpret_cast(dot); 10 | + path = (char *)dot; 11 | } 12 | 13 | return path; 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-recoveries.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nav2_recoveries/CMakeLists.txt b/nav2_recoveries/CMakeLists.txt 2 | index 8af7c5b2f..fb83ff2a5 100644 3 | --- a/nav2_recoveries/CMakeLists.txt 4 | +++ b/nav2_recoveries/CMakeLists.txt 5 | @@ -1,6 +1,8 @@ 6 | cmake_minimum_required(VERSION 3.5) 7 | project(nav2_recoveries) 8 | 9 | +add_definitions(-DNOMINMAX) 10 | + 11 | find_package(ament_cmake REQUIRED) 12 | find_package(nav2_common REQUIRED) 13 | find_package(rclcpp REQUIRED) 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-regulated-pure-pursuit-controller.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 9c87714f..7076cb84 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -15,6 +15,8 @@ find_package(tf2 REQUIRED) 6 | nav2_package() 7 | set(CMAKE_CXX_STANDARD 17) 8 | 9 | +add_definitions(-DNOMINMAX) 10 | + 11 | include_directories( 12 | include 13 | ) 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-rotation-shim-controller.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nav2_rotation_shim_controller/CMakeLists.txt b/nav2_rotation_shim_controller/CMakeLists.txt 2 | index 2e141d5f44..44db4213a3 100644 3 | --- a/nav2_rotation_shim_controller/CMakeLists.txt 4 | +++ b/nav2_rotation_shim_controller/CMakeLists.txt 5 | @@ -13,6 +13,8 @@ find_package(pluginlib REQUIRED) 6 | find_package(tf2 REQUIRED) 7 | find_package(angles REQUIRED) 8 | 9 | +add_definitions(-DNOMINMAX) 10 | + 11 | nav2_package() 12 | set(CMAKE_CXX_STANDARD 17) 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-smac-planner.osx.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 6da37d4c..e2eab3ad 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -22,7 +22,9 @@ find_package(pluginlib REQUIRED) 6 | find_package(eigen3_cmake_module REQUIRED) 7 | find_package(Eigen3 REQUIRED) 8 | find_package(ompl REQUIRED) 9 | -find_package(OpenMP REQUIRED) 10 | +if(NOT APPLE) 11 | + find_package(OpenMP REQUIRED) 12 | +endif() 13 | 14 | if(NOT CMAKE_CXX_STANDARD) 15 | set(CMAKE_CXX_STANDARD 17) 16 | @@ -47,6 +49,10 @@ if(OPENMP_FOUND) 17 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") 18 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") 19 | set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}") 20 | +else() 21 | + if(APPLE) 22 | + set(${OpenMP_LIBRARIES} "-fopenmp") 23 | + endif() 24 | endif() 25 | 26 | set(library_name nav2_smac_planner) 27 | @@ -78,7 +84,11 @@ add_library(${library_name} SHARED 28 | src/node_2d.cpp 29 | ) 30 | 31 | -target_link_libraries(${library_name} ${OMPL_LIBRARIES} ${OpenMP_LIBRARIES} OpenMP::OpenMP_CXX) 32 | +if(NOT APPLE) 33 | + target_link_libraries(${library_name} ${OMPL_LIBRARIES} ${OpenMP_LIBRARIES} OpenMP::OpenMP_CXX) 34 | +else() 35 | + target_link_libraries(${library_name} ${OMPL_LIBRARIES} ${OpenMP_LIBRARIES}) 36 | +endif() 37 | target_include_directories(${library_name} PUBLIC ${Eigen3_INCLUDE_DIRS}) 38 | 39 | ament_target_dependencies(${library_name} 40 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-smac-planner.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nav2_smac_planner/CMakeLists.txt b/nav2_smac_planner/CMakeLists.txt 2 | index c21e856da8..eb5cd2ed4c 100644 3 | --- a/nav2_smac_planner/CMakeLists.txt 4 | +++ b/nav2_smac_planner/CMakeLists.txt 5 | @@ -33,6 +33,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") 6 | 7 | if(MSVC) 8 | add_compile_definitions(_USE_MATH_DEFINES) 9 | + add_definitions(-DNOMINMAX) 10 | else() 11 | add_compile_options(-O3 -Wextra -Wdeprecated -fPIC) 12 | endif() 13 | -------------------------------------------------------------------------------- /patch/ros-galactic-nav2-waypoint-follower.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nav2_waypoint_follower/CMakeLists.txt b/nav2_waypoint_follower/CMakeLists.txt 2 | index a3b46942b..b0930e1aa 100644 3 | --- a/nav2_waypoint_follower/CMakeLists.txt 4 | +++ b/nav2_waypoint_follower/CMakeLists.txt 5 | @@ -1,6 +1,8 @@ 6 | cmake_minimum_required(VERSION 3.5) 7 | project(nav2_waypoint_follower) 8 | 9 | +add_definitions(-DNOMINMAX) 10 | + 11 | # Try for OpenCV 4.X, but settle for whatever is installed 12 | find_package(OpenCV 4 QUIET) 13 | if(NOT OpenCV_FOUND) 14 | @@ -25,7 +25,11 @@ find_package(pluginlib REQUIRED) 15 | 16 | nav2_package() 17 | 18 | -link_libraries(stdc++fs) 19 | +if(UNIX AND NOT APPLE) 20 | + link_libraries(stdc++fs) 21 | +else() 22 | + 23 | +endif() 24 | 25 | include_directories( 26 | include 27 | diff --git a/nav2_waypoint_follower/include/nav2_waypoint_follower/plugins/photo_at_waypoint.hpp b/nav2_waypoint_follower/include/nav2_waypoint_follower/plugins/photo_at_waypoint.hpp 28 | index fc4aee5c5e..4198919fe2 100644 29 | --- a/nav2_waypoint_follower/include/nav2_waypoint_follower/plugins/photo_at_waypoint.hpp 30 | +++ b/nav2_waypoint_follower/include/nav2_waypoint_follower/plugins/photo_at_waypoint.hpp 31 | @@ -20,6 +20,7 @@ 32 | * to ignore deprecated declarations 33 | */ 34 | #define _LIBCPP_NO_EXPERIMENTAL_DEPRECATION_WARNING_FILESYSTEM 35 | +#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING 36 | 37 | 38 | #include 39 | @@ -27,13 +28,14 @@ 40 | #include 41 | #include 42 | 43 | +#include 44 | +#include 45 | + 46 | #include "rclcpp/rclcpp.hpp" 47 | #include "rclcpp_components/register_node_macro.hpp" 48 | 49 | #include "sensor_msgs/msg/image.hpp" 50 | #include "nav2_core/waypoint_task_executor.hpp" 51 | -#include "opencv4/opencv2/core.hpp" 52 | -#include "opencv4/opencv2/opencv.hpp" 53 | #include "cv_bridge/cv_bridge.h" 54 | #include "image_transport/image_transport.hpp" 55 | 56 | diff --git a/nav2_waypoint_follower/plugins/photo_at_waypoint.cpp b/nav2_waypoint_follower/plugins/photo_at_waypoint.cpp 57 | index 7d1f4a9b1b..902ea5ff5f 100644 58 | --- a/nav2_waypoint_follower/plugins/photo_at_waypoint.cpp 59 | +++ b/nav2_waypoint_follower/plugins/photo_at_waypoint.cpp 60 | @@ -118,7 +118,7 @@ bool PhotoAtWaypoint::processAtWaypoint( 61 | std::lock_guard guard(global_mutex_); 62 | cv::Mat curr_frame_mat; 63 | deepCopyMsg2Mat(curr_frame_msg_, curr_frame_mat); 64 | - cv::imwrite(full_path_image_path.c_str(), curr_frame_mat); 65 | + cv::imwrite(full_path_image_path.string().c_str(), curr_frame_mat); 66 | RCLCPP_INFO( 67 | logger_, 68 | "Photo has been taken sucessfully at waypoint %i", curr_waypoint_index); 69 | -------------------------------------------------------------------------------- /patch/ros-galactic-octomap.win.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 38499022..6f3b2998 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -4,7 +4,7 @@ set(CMAKE_INSTALL_LIBDIR "lib") # workaround for GNUInstallDirs 6 | 7 | include(CTest) 8 | include(GNUInstallDirs) 9 | - 10 | +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) 11 | # version (e.g. for packaging) 12 | set(OCTOMAP_MAJOR_VERSION 1) 13 | set(OCTOMAP_MINOR_VERSION 9) 14 | diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt 15 | index 45b384f7..fa4cf234 100644 16 | --- a/src/CMakeLists.txt 17 | +++ b/src/CMakeLists.txt 18 | @@ -16,9 +16,14 @@ set_target_properties( octomap PROPERTIES 19 | VERSION ${OCTOMAP_VERSION} 20 | SOVERSION ${OCTOMAP_SOVERSION} 21 | ) 22 | -ADD_LIBRARY( octomap-static STATIC ${octomap_SRCS}) 23 | -SET_TARGET_PROPERTIES(octomap-static PROPERTIES OUTPUT_NAME "octomap") 24 | -add_dependencies(octomap-static octomath-static) 25 | +# ADD_LIBRARY( octomap-static STATIC ${octomap_SRCS}) 26 | +# if (WIN32) 27 | +# set (STATIC_OUTPUT_SUFFIX "-static") 28 | +# else () 29 | +# set (STATIC_OUTPUT_SUFFIX "") 30 | +# endif() 31 | +# SET_TARGET_PROPERTIES(octomap-static PROPERTIES OUTPUT_NAME "octomap${STATIC_OUTPUT_SUFFIX}") 32 | +# add_dependencies(octomap-static octomath-static) 33 | 34 | TARGET_LINK_LIBRARIES(octomap octomath) 35 | 36 | @@ -26,7 +31,7 @@ if(NOT EXISTS "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap") 37 | file(MAKE_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap") 38 | endif() 39 | 40 | -export(TARGETS octomap octomap-static 41 | +export(TARGETS octomap 42 | APPEND FILE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap/octomap-targets.cmake") 43 | 44 | ADD_SUBDIRECTORY( testing ) 45 | @@ -67,7 +72,7 @@ TARGET_LINK_LIBRARIES(intersection_example octomap) 46 | ADD_EXECUTABLE(octree2pointcloud octree2pointcloud.cpp) 47 | TARGET_LINK_LIBRARIES(octree2pointcloud octomap) 48 | 49 | -install(TARGETS octomap octomap-static 50 | +install(TARGETS octomap 51 | EXPORT octomap-targets 52 | INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" 53 | ${INSTALL_TARGETS_DEFAULT_ARGS} 54 | diff --git a/src/math/CMakeLists.txt b/src/math/CMakeLists.txt 55 | index 3b47ec44..5f07fe89 100644 56 | --- a/src/math/CMakeLists.txt 57 | +++ b/src/math/CMakeLists.txt 58 | @@ -12,17 +12,23 @@ SET_TARGET_PROPERTIES( octomath PROPERTIES 59 | SOVERSION ${OCTOMAP_SOVERSION} 60 | ) 61 | 62 | -ADD_LIBRARY( octomath-static STATIC ${octomath_SRCS}) 63 | -SET_TARGET_PROPERTIES(octomath-static PROPERTIES OUTPUT_NAME "octomath") 64 | +# ADD_LIBRARY( octomath-static STATIC ${octomath_SRCS}) 65 | +# if (WIN32) 66 | +# set (STATIC_OUTPUT_SUFFIX "-static") 67 | +# else () 68 | +# set (STATIC_OUTPUT_SUFFIX "") 69 | +# endif() 70 | + 71 | +# SET_TARGET_PROPERTIES(octomath-static PROPERTIES OUTPUT_NAME "octomath${STATIC_OUTPUT_SUFFIX}") 72 | 73 | if(NOT EXISTS "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap") 74 | file(MAKE_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap") 75 | endif() 76 | 77 | -export(TARGETS octomath octomath-static 78 | +export(TARGETS octomath 79 | APPEND FILE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap/octomap-targets.cmake") 80 | 81 | -install(TARGETS octomath octomath-static 82 | +install(TARGETS octomath 83 | EXPORT octomap-targets 84 | INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" 85 | ${INSTALL_TARGETS_DEFAULT_ARGS} 86 | -------------------------------------------------------------------------------- /patch/ros-galactic-octovis.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeModules/FindQGLViewer.cmake b/CMakeModules/FindQGLViewer.cmake 2 | index 982d294c..b51d8b2d 100644 3 | --- a/CMakeModules/FindQGLViewer.cmake 4 | +++ b/CMakeModules/FindQGLViewer.cmake 5 | @@ -14,6 +14,7 @@ SET( QGLViewer_FOUND 0 CACHE BOOL "Do we have QGLViewer?" ) 6 | FIND_PATH( QGLVIEWER_BASE_DIR qglviewer.h 7 | ${CMAKE_SOURCE_DIR}/src/extern/QGLViewer 8 | ${CMAKE_SOURCE_DIR}/octovis/src/extern/QGLViewer 9 | + PATH_SUFFIXES QGLViewer 10 | ) 11 | 12 | FIND_PATH( QGLViewer_INCLUDE_DIR qglviewer.h 13 | -------------------------------------------------------------------------------- /patch/ros-galactic-osrf-testing-tools-cpp.osx.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/memory_tools/vendor/bombela/backward-cpp/backward.hpp b/src/memory_tools/vendor/bombela/backward-cpp/backward.hpp 2 | index 0370ef2..3b5f9d6 100644 3 | --- a/src/memory_tools/vendor/bombela/backward-cpp/backward.hpp 4 | +++ b/src/memory_tools/vendor/bombela/backward-cpp/backward.hpp 5 | @@ -3927,8 +3927,10 @@ public: 6 | error_addr = reinterpret_cast(uctx->uc_mcontext.gregs[REG_EIP]); 7 | #elif defined(__arm__) 8 | error_addr = reinterpret_cast(uctx->uc_mcontext.arm_pc); 9 | -#elif defined(__aarch64__) 10 | +#elif defined(__aarch64__) && !defined(__APPLE__) 11 | error_addr = reinterpret_cast(uctx->uc_mcontext.pc); 12 | +#elif defined(__aarch64__) && defined(__APPLE__) 13 | + error_addr = reinterpret_cast(uctx->uc_mcontext->__ss.__pc); 14 | #elif defined(__mips__) 15 | error_addr = reinterpret_cast(reinterpret_cast(&uctx->uc_mcontext)->sc_pc); 16 | #elif defined(__ppc__) || defined(__powerpc) || defined(__powerpc__) || \ 17 | -------------------------------------------------------------------------------- /patch/ros-galactic-osrf-testing-tools-cpp.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/memory_tools/CMakeLists.txt b/src/memory_tools/CMakeLists.txt 2 | index 7cfbba3..3451c95 100644 3 | --- a/src/memory_tools/CMakeLists.txt 4 | +++ b/src/memory_tools/CMakeLists.txt 5 | @@ -34,7 +34,7 @@ if(UNIX AND NOT APPLE) 6 | # On Linux like systems, add dl and use the normal library and LD_PRELOAD. 7 | 8 | if(DL_LIBRARY) 9 | - target_link_libraries(memory_tools PUBLIC ${DL_LIBRARY}) 10 | + target_link_libraries(memory_tools PUBLIC dl) 11 | endif() 12 | endif() 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-pendulum-control.patch: -------------------------------------------------------------------------------- 1 | diff --git a/pendulum_control/src/pendulum_demo.cpp b/pendulum_control/src/pendulum_demo.cpp 2 | index 4efbf7a97..0653215e7 100644 3 | --- a/pendulum_control/src/pendulum_demo.cpp 4 | +++ b/pendulum_control/src/pendulum_demo.cpp 5 | @@ -12,82 +12,28 @@ 6 | // See the License for the specific language governing permissions and 7 | // limitations under the License. 8 | 9 | -#include 10 | -#include 11 | -#include 12 | -#include 13 | #include 14 | 15 | +#include 16 | + 17 | #include 18 | #include 19 | #include 20 | 21 | -#include 22 | - 23 | #include 24 | 25 | #include 26 | #include 27 | #include 28 | 29 | +#include 30 | +#include 31 | #include 32 | 33 | #include "pendulum_control/pendulum_controller.hpp" 34 | #include "pendulum_control/pendulum_motor.hpp" 35 | #include "pendulum_control/rtt_executor.hpp" 36 | 37 | - 38 | -static bool running = false; 39 | - 40 | -// Initialize a malloc hook so we can show that no mallocs are made during real-time execution 41 | - 42 | -/// Declare a function pointer into which we will store the default malloc. 43 | -static void * (* prev_malloc_hook)(size_t, const void *); 44 | - 45 | -// Use pragma to ignore a warning for using __malloc_hook, which is deprecated (but still awesome). 46 | -#pragma GCC diagnostic push 47 | -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" 48 | -/// Implement a custom malloc. 49 | -/** 50 | - * Our custom malloc backtraces to find the address of the function that called malloc and formats 51 | - * the line as a string (if the code was compiled with debug symbols. 52 | - * \param[in] size Requested malloc size. 53 | - * \param[in] caller pointer to the caller of this function (unused). 54 | - * \return Pointer to the allocated memory 55 | - */ 56 | -static void * testing_malloc(size_t size, const void * caller) 57 | -{ 58 | - (void)caller; 59 | - // Set the malloc implementation to the default malloc hook so that we can call it implicitly 60 | - // to initialize a string, otherwise this function will loop infinitely. 61 | - __malloc_hook = prev_malloc_hook; 62 | - 63 | - if (running) { 64 | - fprintf(stderr, "Called malloc during realtime execution phase!\n"); 65 | - rclcpp::shutdown(); 66 | - exit(-1); 67 | - } 68 | - 69 | - // Execute the requested malloc. 70 | - void * mem = malloc(size); 71 | - // Set the malloc hook back to this function, so that we can intercept future mallocs. 72 | - __malloc_hook = testing_malloc; 73 | - return mem; 74 | -} 75 | - 76 | -/// Function to be called when the malloc hook is initialized. 77 | -void init_malloc_hook() 78 | -{ 79 | - // Store the default malloc. 80 | - prev_malloc_hook = __malloc_hook; 81 | - // Set our custom malloc to the malloc hook. 82 | - __malloc_hook = testing_malloc; 83 | -} 84 | -#pragma GCC diagnostic pop 85 | - 86 | -/// Set the hook for malloc initialize so that init_malloc_hook gets called. 87 | -void(*volatile __malloc_initialize_hook)(void) = init_malloc_hook; 88 | - 89 | using rclcpp::strategies::message_pool_memory_strategy::MessagePoolMemoryStrategy; 90 | using rclcpp::memory_strategies::allocator_memory_strategy::AllocatorMemoryStrategy; 91 | 92 | @@ -100,7 +46,7 @@ int main(int argc, char * argv[]) 93 | // In the initialization phase of a realtime program, non-realtime-safe operations such as 94 | // allocation memory are permitted. 95 | 96 | - // Create a structure with the default physical propreties of the pendulum (length and mass). 97 | + // Create a structure with the default physical properties of the pendulum (length and mass). 98 | pendulum_control::PendulumProperties properties; 99 | // Instantiate a PendulumMotor class which simulates the physics of the inverted pendulum 100 | // and provide a sensor message for the current position. 101 | @@ -288,9 +234,6 @@ int main(int argc, char * argv[]) 102 | 103 | // End initialization phase 104 | 105 | - // Execution phase 106 | - running = true; 107 | - 108 | // Unlike the default SingleThreadedExecutor::spin function, RttExecutor::spin runs in 109 | // bounded time (for as many iterations as specified in the rttest parameters). 110 | executor->spin(); 111 | @@ -299,10 +242,6 @@ int main(int argc, char * argv[]) 112 | 113 | // End execution phase 114 | 115 | - // Teardown phase 116 | - // deallocation is handled automatically by objects going out of scope 117 | - running = false; 118 | - 119 | printf("PendulumMotor received %zu messages\n", pendulum_motor->messages_received); 120 | printf("PendulumController received %zu messages\n", pendulum_controller->messages_received); 121 | 122 | -------------------------------------------------------------------------------- /patch/ros-galactic-pilz-industrial-motion-planner.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index d0d638fb..410f6352 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -85,11 +85,6 @@ set(THIS_PACKAGE_INCLUDE_DEPENDS 6 | ## Libraries ## 7 | ############### 8 | 9 | -add_library(planning_context_loader_base SHARED 10 | - src/planning_context_loader.cpp 11 | -) 12 | -ament_target_dependencies(planning_context_loader_base ${THIS_PACKAGE_INCLUDE_DEPENDS}) 13 | - 14 | add_library(joint_limits_common SHARED 15 | src/joint_limits_aggregator.cpp 16 | src/joint_limits_container.cpp 17 | @@ -100,18 +95,27 @@ add_library(joint_limits_common SHARED 18 | ) 19 | ament_target_dependencies(joint_limits_common ${THIS_PACKAGE_INCLUDE_DEPENDS}) 20 | 21 | +add_library(planning_context_loader_base SHARED 22 | + src/planning_context_loader.cpp 23 | +) 24 | +ament_target_dependencies(planning_context_loader_base ${THIS_PACKAGE_INCLUDE_DEPENDS}) 25 | +target_link_libraries(planning_context_loader_base joint_limits_common) 26 | + 27 | + 28 | add_library(trajectory_generation_common SHARED 29 | src/trajectory_functions.cpp 30 | src/trajectory_generator.cpp 31 | src/trajectory_blender_transition_window.cpp 32 | ) 33 | ament_target_dependencies(trajectory_generation_common ${THIS_PACKAGE_INCLUDE_DEPENDS}) 34 | +target_link_libraries(trajectory_generation_common joint_limits_common) 35 | 36 | add_library(command_list_manager SHARED 37 | src/command_list_manager.cpp 38 | src/plan_components_builder.cpp 39 | ) 40 | ament_target_dependencies(command_list_manager ${THIS_PACKAGE_INCLUDE_DEPENDS}) 41 | +target_link_libraries(command_list_manager joint_limits_common trajectory_generation_common) 42 | 43 | ############# 44 | ## Plugins ## 45 | -------------------------------------------------------------------------------- /patch/ros-galactic-plotjuggler.patch: -------------------------------------------------------------------------------- 1 | diff --git a/3rdparty/Qt-Advanced-Docking/CMakeLists.txt b/3rdparty/Qt-Advanced-Docking/CMakeLists.txt 2 | index 6b650f1b..4d940448 100644 3 | --- a/3rdparty/Qt-Advanced-Docking/CMakeLists.txt 4 | +++ b/3rdparty/Qt-Advanced-Docking/CMakeLists.txt 5 | @@ -4,6 +4,7 @@ project(QtADS LANGUAGES CXX) 6 | 7 | include_directories(include/Qads) 8 | 9 | +find_package(XCB REQUIRED) 10 | find_package(Qt5 5.5 COMPONENTS Core Gui Widgets REQUIRED) 11 | if (UNIX AND NOT APPLE) 12 | find_package(Qt5 5.5 COMPONENTS X11Extras REQUIRED) 13 | @@ -67,7 +68,8 @@ target_link_libraries(qt_advanced_docking PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets 14 | 15 | if(UNIX AND NOT APPLE) 16 | target_link_libraries(qt_advanced_docking PUBLIC Qt5::X11Extras) 17 | - target_link_libraries(qt_advanced_docking PRIVATE xcb) 18 | + target_link_libraries(qt_advanced_docking PRIVATE ${XCB_LIBRARIES}) 19 | + target_include_directories(qt_advanced_docking SYSTEM PUBLIC ${XCB_INCLUDE_DIRS}) 20 | endif() 21 | 22 | set_target_properties(qt_advanced_docking PROPERTIES 23 | diff --git a/cmake/FindXCB.cmake b/cmake/FindXCB.cmake 24 | new file mode 100644 25 | index 00000000..a2e2757a 26 | --- /dev/null 27 | +++ b/cmake/FindXCB.cmake 28 | @@ -0,0 +1,51 @@ 29 | +# - FindXCB 30 | +# 31 | +# Copyright 2015 Valve Coporation 32 | + 33 | +find_package(PkgConfig) 34 | + 35 | +if(NOT XCB_FIND_COMPONENTS) 36 | + set(XCB_FIND_COMPONENTS xcb) 37 | +endif() 38 | + 39 | +include(FindPackageHandleStandardArgs) 40 | +set(XCB_FOUND true) 41 | +set(XCB_INCLUDE_DIRS "") 42 | +set(XCB_LIBRARIES "") 43 | +foreach(comp ${XCB_FIND_COMPONENTS}) 44 | + # component name 45 | + string(TOUPPER ${comp} compname) 46 | + string(REPLACE "-" "_" compname ${compname}) 47 | + # header name 48 | + string(REPLACE "xcb-" "" headername xcb/${comp}.h) 49 | + # library name 50 | + set(libname ${comp}) 51 | + 52 | + pkg_check_modules(PC_${comp} QUIET ${comp}) 53 | + 54 | + find_path(${compname}_INCLUDE_DIR NAMES ${headername} 55 | + HINTS 56 | + ${PC_${comp}_INCLUDEDIR} 57 | + ${PC_${comp}_INCLUDE_DIRS} 58 | + ) 59 | + 60 | + find_library(${compname}_LIBRARY NAMES ${libname} 61 | + HINTS 62 | + ${PC_${comp}_LIBDIR} 63 | + ${PC_${comp}_LIBRARY_DIRS} 64 | + ) 65 | + 66 | + find_package_handle_standard_args(${comp} 67 | + FOUND_VAR ${comp}_FOUND 68 | + REQUIRED_VARS ${compname}_INCLUDE_DIR ${compname}_LIBRARY) 69 | + mark_as_advanced(${compname}_INCLUDE_DIR ${compname}_LIBRARY) 70 | + 71 | + list(APPEND XCB_INCLUDE_DIRS ${${compname}_INCLUDE_DIR}) 72 | + list(APPEND XCB_LIBRARIES ${${compname}_LIBRARY}) 73 | + 74 | + if(NOT ${comp}_FOUND) 75 | + set(XCB_FOUND false) 76 | + endif() 77 | +endforeach() 78 | + 79 | +list(REMOVE_DUPLICATES XCB_INCLUDE_DIRS) 80 | 81 | diff --git a/plotjuggler_plugins/DataStreamZMQ/CMakeLists.txt b/plotjuggler_plugins/DataStreamZMQ/CMakeLists.txt 82 | index 68a3c5cc..2e808351 100644 83 | --- a/plotjuggler_plugins/DataStreamZMQ/CMakeLists.txt 84 | +++ b/plotjuggler_plugins/DataStreamZMQ/CMakeLists.txt 85 | @@ -1,6 +1,8 @@ 86 | 87 | include_directories(../) 88 | 89 | +find_package(cppzmq) 90 | + 91 | add_definitions(${QT_DEFINITIONS}) 92 | add_definitions(-DQT_PLUGIN) 93 | 94 | @@ -13,8 +15,10 @@ add_library(DataStreamZMQ SHARED ${SRC} ${UI_SRC} ) 95 | target_link_libraries(DataStreamZMQ 96 | ${Qt5Widgets_LIBRARIES} 97 | plotjuggler_base 98 | - zmq 99 | + ${cppzmq_LIBRARY} 100 | ) 101 | + 102 | +target_include_directories(DataStreamZMQ PUBLIC ${cppzmq_INCLUDE_DIR}) 103 | 104 | install(TARGETS DataStreamZMQ DESTINATION ${PJ_PLUGIN_INSTALL_DIRECTORY} ) 105 | 106 | -------------------------------------------------------------------------------- /patch/ros-galactic-popf.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index a2ed58a..d4236d3 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -16,6 +16,9 @@ find_package(CoinUtils) 6 | find_package(Cbc) 7 | find_package(Cgl) 8 | 9 | +find_package(BISON REQUIRED) 10 | +find_package(FLEX REQUIRED) 11 | + 12 | set(val_SOURCE_DIR src/VALfiles) 13 | set(popf_SOURCE_DIR src/popf) 14 | set(parsePDDL_SOURCE_DIR ${val_SOURCE_DIR}/parsing) 15 | @@ -29,22 +32,11 @@ include_directories( 16 | ${CBC_INCLUDES}/coin 17 | ${CPLEX_INCLUDES} 18 | ${CONCERT_INCLUDES} 19 | + ${FLEX_INCLUDE_DIRS} 20 | ) 21 | 22 | ## ParsePDDL 23 | 24 | -find_program(BISON_EXECUTABLE bison) 25 | - 26 | -if(NOT EXISTS ${BISON_EXECUTABLE}) 27 | - message("Could not find bison executable.") 28 | -endif(NOT EXISTS ${BISON_EXECUTABLE}) 29 | - 30 | -FIND_PROGRAM(FLEX_EXECUTABLE flex) 31 | - 32 | -if(NOT EXISTS ${FLEX_EXECUTABLE}) 33 | - message("Could not find flex executable.") 34 | -endif(NOT EXISTS ${FLEX_EXECUTABLE}) 35 | - 36 | add_custom_command( 37 | OUTPUT 38 | ${CMAKE_CURRENT_BINARY_DIR}/lex.yy.cc 39 | @@ -66,7 +58,7 @@ add_custom_command( 40 | DEPENDS 41 | ${CMAKE_CURRENT_SOURCE_DIR}/${parsePDDL_SOURCE_DIR}/pddl+.yacc ${CMAKE_CURRENT_BINARY_DIR}/lex.yy.cc 42 | COMMAND 43 | - ${CMAKE_CURRENT_SOURCE_DIR}/${parsePDDL_SOURCE_DIR}/fixyywrap ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${parsePDDL_SOURCE_DIR}/ 44 | + ${CMAKE_CURRENT_SOURCE_DIR}/${parsePDDL_SOURCE_DIR}/fixyywrap ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${parsePDDL_SOURCE_DIR}/ ${FLEX_INCLUDE_DIRS} 45 | ) 46 | 47 | set(libParsePDDL_SRCS 48 | @@ -91,6 +83,8 @@ set(libInst_SRCS 49 | ${val_SOURCE_DIR}/TypeStripWC.cpp 50 | ) 51 | 52 | +target_link_libraries(ParsePDDL ${FLEX_LIBRARIES}) 53 | + 54 | add_library(Inst SHARED ${libInst_SRCS}) 55 | target_link_libraries(Inst ParsePDDL) 56 | 57 | @@ -129,6 +123,7 @@ add_executable(parser ${parser_SRCS}) 58 | 59 | target_link_libraries(parser 60 | ParsePDDL 61 | + ${FLEX_LIBRARIES} 62 | ) 63 | 64 | install(TARGETS validate parser ParsePDDL 65 | @@ -184,4 +179,4 @@ install(FILES src/popf/Popf.hpp 66 | ament_export_include_directories(include) 67 | ament_export_libraries(popfCommon ParsePDDL Inst ${CBC_LIBRARY} ${CGL_LIBRARIES} ${OSICLP_LIBRARIES} ${OSI_LIBRARIES} ${CLP_LIBRARIES} ${COINUTILS_LIBRARIES}) 68 | ament_export_dependencies(${dependencies}) 69 | -ament_package() 70 | \ No newline at end of file 71 | +ament_package() 72 | diff --git a/src/VALfiles/parse.cpp b/src/VALfiles/parse.cpp 73 | index b51c585..5880ffe 100644 74 | --- a/src/VALfiles/parse.cpp 75 | +++ b/src/VALfiles/parse.cpp 76 | @@ -44,6 +44,8 @@ 77 | #include "ptree.h" 78 | #include "FlexLexer.h" 79 | 80 | +//extern int yyFlexLexer::yywrap(); 81 | +//extern "C" int yywrap(); 82 | extern int yyparse(); 83 | extern int yydebug; 84 | 85 | diff --git a/src/VALfiles/parsing/CMakeLists.txt b/src/VALfiles/parsing/CMakeLists.txt 86 | index dd7dc8e..0627f81 100644 87 | --- a/src/VALfiles/parsing/CMakeLists.txt 88 | +++ b/src/VALfiles/parsing/CMakeLists.txt 89 | @@ -2,18 +2,10 @@ cmake_minimum_required(VERSION 2.4) 90 | 91 | project(ParsePDDL) 92 | 93 | -find_program(BISON_EXECUTABLE bison) 94 | +find_package(FLEX REQUIRED) 95 | +find_package(BISON REQUIRED) 96 | 97 | -if(NOT EXISTS ${BISON_EXECUTABLE}) 98 | - message("Could not find bison executable.") 99 | -endif(NOT EXISTS ${BISON_EXECUTABLE}) 100 | - 101 | - 102 | -FIND_PROGRAM(FLEX_EXECUTABLE flex HINTS /usr/local/opt/flex/bin/) 103 | - 104 | -if(NOT EXISTS ${FLEX_EXECUTABLE}) 105 | - message("Could not find flex executable.") 106 | -endif(NOT EXISTS ${FLEX_EXECUTABLE}) 107 | +include_directories(${FLEX_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) 108 | 109 | add_custom_command( 110 | OUTPUT 111 | @@ -36,11 +28,9 @@ add_custom_command( 112 | DEPENDS 113 | ${CMAKE_CURRENT_SOURCE_DIR}/pddl+.yacc ${CMAKE_CURRENT_BINARY_DIR}/lex.yy.cc 114 | COMMAND 115 | - ${CMAKE_CURRENT_SOURCE_DIR}/fixyywrap ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} 116 | + ${CMAKE_CURRENT_SOURCE_DIR}/fixyywrap ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${FLEX_INCLUDE_DIRS} 117 | ) 118 | 119 | -include_directories(/usr/local/opt/flex/include ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) 120 | - 121 | set(libParsePDDL_SRCS 122 | pddl+.cpp ptree.cpp DebugWriteController.cpp 123 | ) 124 | diff --git a/src/VALfiles/parsing/fixyywrap b/src/VALfiles/parsing/fixyywrap 125 | index 11aef39..be36596 100755 126 | --- a/src/VALfiles/parsing/fixyywrap 127 | +++ b/src/VALfiles/parsing/fixyywrap 128 | @@ -1,13 +1,14 @@ 129 | -#!/usr/bin/perl -w 130 | +#!/usr/bin/env perl 131 | 132 | $bindir = shift @ARGV; 133 | $srcdir = shift @ARGV; 134 | +$includepath = shift @ARGV; 135 | 136 | # MacOS' sed requires '' as a parameter to -i 137 | -system("sed -i '' 's/yyerror(char/yyerror(const char/' $bindir/pddl+.cpp"); 138 | +system("sed 's/yyerror(char/yyerror(const char/' $bindir/pddl+.cpp"); 139 | 140 | # add Homebrew's flex include path 141 | -open IN, "g++ -E -I/usr/local/opt/flex/include $srcdir/fixyywrap.cpp |"; 142 | +open IN, "g++ -E -I$includepath $srcdir/fixyywrap.cpp |"; 143 | open OUT, "> $bindir/fixyywrap.h"; 144 | 145 | while () { 146 | diff --git a/src/VALfiles/parsing/pddl+.lex b/src/VALfiles/parsing/pddl+.lex 147 | index 598c8e5..dba389c 100644 148 | --- a/src/VALfiles/parsing/pddl+.lex 149 | +++ b/src/VALfiles/parsing/pddl+.lex 150 | @@ -8,7 +8,8 @@ 151 | using std::cerr; 152 | using std::istream; 153 | using namespace VAL; 154 | -extern "C" int yywrap(); 155 | +//extern int yyFlexLexer::yywrap(); 156 | +//extern "C" int yywrap(); 157 | 158 | %} 159 | %option case-insensitive 160 | diff --git a/src/VALfiles/test/lex.yy.cc b/src/VALfiles/test/lex.yy.cc 161 | index 974fc92..cc5dfcc 100644 162 | --- a/src/VALfiles/test/lex.yy.cc 163 | +++ b/src/VALfiles/test/lex.yy.cc 164 | @@ -1041,7 +1041,8 @@ static yyconst flex_int16_t yy_chk[1781] = 165 | using std::cerr; 166 | using std::istream; 167 | using namespace VAL; 168 | -extern "C" int yywrap(); 169 | +//extern "C" int yywrap(); 170 | +//extern int yyFlexLexer::yywrap(); 171 | 172 | #line 1047 "lex.yy.cc" 173 | 174 | -------------------------------------------------------------------------------- /patch/ros-galactic-pybind11-vendor.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 9b79b46..084754e 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -68,6 +68,7 @@ endmacro() 6 | 7 | # Currently, always build. 8 | # This could be improved with logic to use installed platform packages. 9 | -build_pybind11() 10 | +# build_pybind11() 11 | +find_package(pybind11 REQUIRED) 12 | 13 | ament_package() 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-python-qt-binding.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 919969e..2bf015a 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -11,6 +11,7 @@ install(FILES 6 | cmake/shiboken_helper.cmake 7 | cmake/sip_configure.py 8 | cmake/sip_helper.cmake 9 | + cmake/pyproject.toml.in 10 | DESTINATION share/${PROJECT_NAME}/cmake) 11 | 12 | if(BUILD_TESTING) 13 | diff --git a/cmake/pyproject.toml.in b/cmake/pyproject.toml.in 14 | new file mode 100644 15 | index 0000000..2ab2b55 16 | --- /dev/null 17 | +++ b/cmake/pyproject.toml.in 18 | @@ -0,0 +1,27 @@ 19 | +# Specify sip v5 as the build system for the package. 20 | +[build-system] 21 | +requires = ["PyQt-builder >=1, <2"] 22 | +build-backend = "sipbuild.api" 23 | + 24 | +[tool.sip] 25 | +project-factory = "pyqtbuild:PyQtProject" 26 | + 27 | +[tool.sip.builder] 28 | +qmake = "@QMAKE_EXECUTABLE@" 29 | + 30 | +[tool.sip.project] 31 | +sip-files-dir = "@SIP_FILES_DIR@" 32 | +build-dir = "@SIP_BUILD_DIR@" 33 | + 34 | +# Specify the PEP 566 metadata for the project. 35 | +[tool.sip.metadata] 36 | +name = "lib@PROJECT_NAME@" 37 | + 38 | +[tool.sip.bindings.libqt_gui_cpp_sip] 39 | +sip-file = "@SIP_FILE@" 40 | +include-dirs = [@SIP_INCLUDE_DIRS@] 41 | +libraries = [@SIP_LIBARIES@] 42 | +library-dirs = [@SIP_LIBRARY_DIRS@] 43 | +qmake-QT = ["widgets"] 44 | +exceptions = true 45 | + 46 | diff --git a/cmake/sip_helper.cmake b/cmake/sip_helper.cmake 47 | index c589899..c91e723 100644 48 | --- a/cmake/sip_helper.cmake 49 | +++ b/cmake/sip_helper.cmake 50 | @@ -15,7 +15,7 @@ execute_process( 51 | if(PYTHON_SIP_EXECUTABLE) 52 | string(STRIP ${PYTHON_SIP_EXECUTABLE} SIP_EXECUTABLE) 53 | else() 54 | - find_program(SIP_EXECUTABLE sip) 55 | + find_program(SIP_EXECUTABLE NAMES sip sip-build) 56 | endif() 57 | 58 | if(SIP_EXECUTABLE) 59 | @@ -26,6 +26,15 @@ else() 60 | set(sip_helper_NOTFOUND TRUE) 61 | endif() 62 | 63 | +if(sip_helper_FOUND) 64 | + execute_process( 65 | + COMMAND ${SIP_EXECUTABLE} -V 66 | + OUTPUT_VARIABLE SIP_VERSION 67 | + ERROR_QUIET) 68 | + string(STRIP ${SIP_VERSION} SIP_VERSION) 69 | + message(STATUS "SIP binding generator version: ${SIP_VERSION}") 70 | +endif() 71 | + 72 | # 73 | # Run the SIP generator and compile the generated code into a library. 74 | # 75 | @@ -77,32 +86,89 @@ function(build_sip_binding PROJECT_NAME SIP_FILE) 76 | set(LIBRARY_DIRS ${${PROJECT_NAME}_LIBRARY_DIRS}) 77 | set(LDFLAGS_OTHER ${${PROJECT_NAME}_LDFLAGS_OTHER}) 78 | 79 | - add_custom_command( 80 | - OUTPUT ${SIP_BUILD_DIR}/Makefile 81 | - COMMAND ${Python3_EXECUTABLE} ${sip_SIP_CONFIGURE} ${SIP_BUILD_DIR} ${SIP_FILE} ${sip_LIBRARY_DIR} 82 | - \"${INCLUDE_DIRS}\" \"${LIBRARIES}\" \"${LIBRARY_DIRS}\" \"${LDFLAGS_OTHER}\" 83 | - DEPENDS ${sip_SIP_CONFIGURE} ${SIP_FILE} ${sip_DEPENDS} 84 | - WORKING_DIRECTORY ${sip_SOURCE_DIR} 85 | - COMMENT "Running SIP generator for ${PROJECT_NAME} Python bindings..." 86 | - ) 87 | + if(${SIP_VERSION} VERSION_GREATER_EQUAL "5.0.0") 88 | + # Since v5, SIP implements the backend per PEP 517, PEP 518 89 | + # Here we synthesize `pyproject.toml` and run `pip install` 90 | + 91 | + find_program(QMAKE_EXECUTABLE NAMES qmake REQUIRED) 92 | 93 | - if(NOT EXISTS "${sip_LIBRARY_DIR}") 94 | + file(REMOVE_RECURSE ${SIP_BUILD_DIR}) 95 | file(MAKE_DIRECTORY ${sip_LIBRARY_DIR}) 96 | - endif() 97 | 98 | - if(WIN32) 99 | - set(MAKE_EXECUTABLE NMake.exe) 100 | + set(SIP_FILES_DIR ${sip_SOURCE_DIR}) 101 | + 102 | + set(SIP_INCLUDE_DIRS "") 103 | + foreach(_x ${INCLUDE_DIRS}) 104 | + set(SIP_INCLUDE_DIRS "${SIP_INCLUDE_DIRS},\"${_x}\"") 105 | + endforeach() 106 | + string(REGEX REPLACE "^," "" SIP_INCLUDE_DIRS ${SIP_INCLUDE_DIRS}) 107 | + 108 | + # SIP expects the libraries WITHOUT the file extension. 109 | + set(SIP_LIBARIES "") 110 | + set(SIP_LIBRARY_DIRS "") 111 | + foreach(_x ${LIBRARIES} ${PYTHON_LIBRARIES}) 112 | + get_filename_component(_x_NAME "${_x}" NAME_WLE) 113 | + get_filename_component(_x_DIR "${_x}" DIRECTORY) 114 | + get_filename_component(_x "${_x_DIR}/${_x_NAME}" ABSOLUTE) 115 | + STRING(REGEX REPLACE "^lib" "" _x_NAME_NOPREFIX ${_x_NAME}) 116 | + 117 | + string(FIND "${_x_NAME_NOPREFIX}" "$= sizeof(atomic_uint_least64_t), 33 | "expected rcl_context_t's instance id storage to be >= size of atomic_uint_least64_t"); 34 | // initialize atomic 35 | -------------------------------------------------------------------------------- /patch/ros-galactic-rclcpp-lifecycle.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rclcpp_lifecycle/include/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp b/rclcpp_lifecycle/include/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp 2 | index 9f2459e296..214a82cc8b 100644 3 | --- a/rclcpp_lifecycle/include/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp 4 | +++ b/rclcpp_lifecycle/include/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp 5 | @@ -22,6 +22,10 @@ 6 | #include "rclcpp_lifecycle/state.hpp" 7 | #include "rclcpp_lifecycle/visibility_control.h" 8 | 9 | +#ifdef ERROR 10 | +#undef ERROR 11 | +#endif 12 | + 13 | namespace rclcpp_lifecycle 14 | { 15 | namespace node_interfaces 16 | -------------------------------------------------------------------------------- /patch/ros-galactic-rclpy.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 1481e6a..a2b19a3 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -14,6 +14,8 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang") 6 | add_compile_options(-Wall -Wextra) 7 | endif() 8 | 9 | +set(CMAKE_XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS "-o linker-signed") 10 | + 11 | find_package(ament_cmake REQUIRED) 12 | find_package(ament_cmake_python REQUIRED) 13 | find_package(rcl REQUIRED) 14 | @@ -25,27 +27,9 @@ find_package(rcutils REQUIRED) 15 | find_package(rmw REQUIRED) 16 | find_package(rmw_implementation_cmake REQUIRED) 17 | 18 | -# Find python before pybind11 19 | -find_package(python_cmake_module REQUIRED) 20 | -find_package(PythonExtra REQUIRED) 21 | - 22 | -set(_PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE}") 23 | -if(WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug") 24 | - # Set the python debug interpreter. 25 | - # pybind11 will setup the build for debug now. 26 | - set(PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE_DEBUG}") 27 | -endif() 28 | - 29 | -find_package(pybind11_vendor REQUIRED) 30 | +find_package(Python COMPONENTS Interpreter Development) 31 | find_package(pybind11 REQUIRED) 32 | 33 | -if(WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug") 34 | - # pybind11 logic for setting up a debug build when both a debug and release 35 | - # python interpreter are present in the system seems to be pretty much broken. 36 | - # This works around the issue. 37 | - set(PYTHON_LIBRARIES "${PYTHON_DEBUG_LIBRARIES}") 38 | -endif() 39 | - 40 | function(clean_windows_flags target) 41 | # Hack to avoid pybind11 issue. 42 | # 43 | @@ -109,11 +93,13 @@ endif() 44 | 45 | # Set the build location and install location for a CPython extension 46 | function(configure_build_install_location _library_name) 47 | - # Install into test_rclpy folder in build space for unit tests to import 48 | - set_target_properties(${_library_name} PROPERTIES 49 | - # Use generator expression to avoid prepending a build type specific directory on Windows 50 | - LIBRARY_OUTPUT_DIRECTORY $<1:${CMAKE_CURRENT_BINARY_DIR}/test_rclpy> 51 | - RUNTIME_OUTPUT_DIRECTORY $<1:${CMAKE_CURRENT_BINARY_DIR}/test_rclpy>) 52 | + if(NOT $ENV{CONDA_BUILD_CROSS_COMPILATION} STREQUAL "1") 53 | + # Install into test_rclpy folder in build space for unit tests to import 54 | + set_target_properties(${_library_name} PROPERTIES 55 | + # Use generator expression to avoid prepending a build type specific directory on Windows 56 | + LIBRARY_OUTPUT_DIRECTORY $<1:${CMAKE_CURRENT_BINARY_DIR}/test_rclpy> 57 | + RUNTIME_OUTPUT_DIRECTORY $<1:${CMAKE_CURRENT_BINARY_DIR}/test_rclpy>) 58 | + endif() 59 | 60 | # Install library for actual use 61 | install(TARGETS ${_library_name} 62 | @@ -128,10 +114,17 @@ add_library(rclpy_common SHARED 63 | ) 64 | target_link_libraries(rclpy_common PUBLIC 65 | pybind11::pybind11 66 | - ${PYTHON_LIBRARIES} 67 | rcl::rcl 68 | rmw::rmw 69 | ) 70 | + 71 | +if(NOT APPLE) 72 | + target_link_libraries(rclpy_common PUBLIC ${Python_LIBRARIES}) 73 | +else() 74 | + set_target_properties(rclpy_common PROPERTIES 75 | + LINK_FLAGS "-undefined dynamic_lookup") 76 | +endif() 77 | + 78 | target_include_directories(rclpy_common PUBLIC 79 | src/rclpy_common/include 80 | ) 81 | @@ -147,7 +140,7 @@ install(TARGETS rclpy_common 82 | ) 83 | 84 | # Split from main extension and converted to pybind11 85 | -pybind11_add_module(_rclpy_pybind11 SHARED 86 | +add_library(_rclpy_pybind11 MODULE 87 | src/rclpy/_rclpy_handle.cpp 88 | src/rclpy/_rclpy_logging.cpp 89 | src/rclpy/_rclpy_pybind11.cpp 90 | @@ -178,6 +171,10 @@ pybind11_add_module(_rclpy_pybind11 SHARED 91 | src/rclpy/utils.cpp 92 | src/rclpy/wait_set.cpp 93 | ) 94 | +set_target_properties(_rclpy_pybind11 PROPERTIES PREFIX "") 95 | +if(WIN32) 96 | + set_target_properties(_rclpy_pybind11 PROPERTIES SUFFIX ".pyd") 97 | +endif() 98 | target_include_directories(_rclpy_pybind11 PRIVATE 99 | src/rclpy/ 100 | ) 101 | @@ -188,18 +185,24 @@ target_link_libraries(_rclpy_pybind11 PRIVATE 102 | rclpy_common 103 | rcpputils::rcpputils 104 | rcutils::rcutils 105 | + pybind11::module 106 | ) 107 | configure_build_install_location(_rclpy_pybind11) 108 | clean_windows_flags(_rclpy_pybind11) 109 | 110 | # Signal handling library 111 | -pybind11_add_module(_rclpy_signal_handler SHARED 112 | +add_library(_rclpy_signal_handler MODULE 113 | src/rclpy/_rclpy_signal_handler.c 114 | ) 115 | +set_target_properties(_rclpy_signal_handler PROPERTIES PREFIX "") 116 | +if(WIN32) 117 | + set_target_properties(_rclpy_signal_handler PROPERTIES SUFFIX ".pyd") 118 | +endif() 119 | target_link_libraries(_rclpy_signal_handler PRIVATE 120 | rclpy_common 121 | rcl::rcl 122 | rcutils::rcutils 123 | + pybind11::module 124 | ) 125 | configure_build_install_location(_rclpy_signal_handler) 126 | clean_windows_flags(_rclpy_signal_handler) 127 | @@ -301,6 +304,5 @@ if(BUILD_TESTING) 128 | endforeach() 129 | endif() 130 | endif() 131 | -set(PYTHON_EXECUTABLE "${_PYTHON_EXECUTABLE}") 132 | 133 | ament_package() 134 | -------------------------------------------------------------------------------- /patch/ros-galactic-rcutils.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index f573c54..4db288b 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -3,13 +3,9 @@ cmake_minimum_required(VERSION 3.5) 6 | project(rcutils) 7 | 8 | # Default to C11 9 | -if(NOT CMAKE_C_STANDARD) 10 | - set(CMAKE_C_STANDARD 11) 11 | -endif() 12 | +set(CMAKE_C_STANDARD 11) 13 | # Default to C++14 14 | -if(NOT CMAKE_CXX_STANDARD) 15 | - set(CMAKE_CXX_STANDARD 14) 16 | -endif() 17 | +set(CMAKE_CXX_STANDARD 14) 18 | 19 | include(CheckLibraryExists) 20 | 21 | @@ -131,6 +127,10 @@ endif() 22 | 23 | target_link_libraries(${PROJECT_NAME} ${CMAKE_DL_LIBS}) 24 | 25 | +if (UNIX AND NOT APPLE) 26 | + target_link_libraries(${PROJECT_NAME} rt) 27 | +endif() 28 | + 29 | # Needed if pthread is used for thread local storage. 30 | if(IOS AND IOS_SDK_VERSION LESS 10.0) 31 | ament_export_libraries(pthread) 32 | @@ -595,6 +595,9 @@ endif() 33 | ament_export_dependencies(ament_cmake) 34 | ament_export_include_directories(include) 35 | ament_export_libraries(${PROJECT_NAME} ${CMAKE_DL_LIBS}) 36 | +if (UNIX AND NOT APPLE) 37 | + ament_export_libraries(${PROJECT_NAME} rt) 38 | +endif() 39 | ament_export_targets(${PROJECT_NAME}) 40 | ament_package() 41 | 42 | diff --git a/include/rcutils/error_handling.h b/include/rcutils/error_handling.h 43 | index 0469070..6a05f25 100644 44 | --- a/include/rcutils/error_handling.h 45 | +++ b/include/rcutils/error_handling.h 46 | @@ -122,7 +122,7 @@ typedef struct rcutils_error_state_t 47 | 48 | // make sure our math is right... 49 | #if __STDC_VERSION__ >= 201112L 50 | -static_assert( 51 | +_Static_assert( 52 | sizeof(rcutils_error_string_t) == ( 53 | RCUTILS_ERROR_STATE_MESSAGE_MAX_LENGTH + 54 | RCUTILS_ERROR_STATE_FILE_MAX_LENGTH + 55 | diff --git a/src/error_handling.c b/src/error_handling.c 56 | index a060537..03e8e2e 100644 57 | --- a/src/error_handling.c 58 | +++ b/src/error_handling.c 59 | @@ -200,7 +200,7 @@ rcutils_set_error_state( 60 | // Only warn of overwritting if the new error is different from the old ones. 61 | size_t characters_to_compare = strnlen(error_string, RCUTILS_ERROR_MESSAGE_MAX_LENGTH); 62 | // assumption is that message length is <= max error string length 63 | - static_assert( 64 | + _Static_assert( 65 | sizeof(gtls_rcutils_error_state.message) <= sizeof(gtls_rcutils_error_string.str), 66 | "expected error state's max message length to be less than or equal to error string max"); 67 | if ( 68 | diff --git a/src/error_handling_helpers.h b/src/error_handling_helpers.h 69 | index 70acb4e..67ebfc0 100644 70 | --- a/src/error_handling_helpers.h 71 | +++ b/src/error_handling_helpers.h 72 | @@ -145,7 +145,7 @@ __rcutils_format_error_string( 73 | static const char format_1[] = ", at "; 74 | static const char format_2[] = ":"; 75 | char line_number_buffer[21]; 76 | - static_assert( 77 | + _Static_assert( 78 | sizeof(error_string->str) == ( 79 | sizeof(error_state->message) + 80 | sizeof(format_1) - 1 /* minus the null-term */ + 81 | -------------------------------------------------------------------------------- /patch/ros-galactic-rmw-implementation.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rmw_implementation-extras.cmake.in b/rmw_implementation-extras.cmake.in 2 | index 7f89a49..3b9b1c5 100644 3 | --- a/rmw_implementation-extras.cmake.in 4 | +++ b/rmw_implementation-extras.cmake.in 5 | @@ -54,5 +54,13 @@ else() 6 | # since this code is already part of a find_package call of that package 7 | endif() 8 | 9 | +IF(APPLE) 10 | + set(CMAKE_THREAD_LIBS_INIT "-lpthread") 11 | + set(CMAKE_HAVE_THREADS_LIBRARY 1) 12 | + set(CMAKE_USE_WIN32_THREADS_INIT 0) 13 | + set(CMAKE_USE_PTHREADS_INIT 1) 14 | + set(THREADS_PREFER_PTHREAD_FLAG ON) 15 | +ENDIF() 16 | + 17 | find_package(Threads REQUIRED) 18 | list(APPEND rmw_implementation_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}") 19 | -------------------------------------------------------------------------------- /patch/ros-galactic-robot-localization.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index b49b9c8..7bffbd0 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.5) 6 | project(robot_localization) 7 | 8 | if(NOT WIN32) 9 | - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") 10 | + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") 11 | endif() 12 | 13 | if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") 14 | @@ -35,7 +35,7 @@ find_package(yaml_cpp_vendor REQUIRED) 15 | 16 | # Geographiclib installs FindGeographicLib.cmake to this non-standard location 17 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "/usr/share/cmake/geographiclib/") 18 | -find_package(GeographicLib REQUIRED COMPONENTS STATIC) 19 | +find_package(GeographicLib REQUIRED) 20 | 21 | set(library_name rl_lib) 22 | 23 | -------------------------------------------------------------------------------- /patch/ros-galactic-ros-ign-gazebo.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 8e2d4e7..85d2244 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -13,6 +13,7 @@ endif() 6 | find_package(ament_cmake REQUIRED) 7 | find_package(ignition-math6 REQUIRED) 8 | find_package(rclcpp REQUIRED) 9 | +find_package(std_msgs REQUIRED) 10 | 11 | # Citadel 12 | if("$ENV{IGNITION_VERSION}" STREQUAL "citadel") 13 | @@ -60,6 +61,7 @@ add_executable(create src/create.cpp) 14 | ament_target_dependencies(create 15 | rclcpp 16 | ignition-math6 17 | + std_msgs 18 | ) 19 | target_link_libraries(create 20 | gflags 21 | diff --git a/package.xml b/package.xml 22 | index 0d22162..f99dbeb 100644 23 | --- a/package.xml 24 | +++ b/package.xml 25 | @@ -16,7 +16,7 @@ 26 | libgflags-dev 27 | rclcpp 28 | ignition-math6 29 | - 30 | + std_msgs 31 | 32 | ignition-gazebo6 33 | 34 | -------------------------------------------------------------------------------- /patch/ros-galactic-ros-workspace.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 99c9e2d..e581f48 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -4,7 +4,7 @@ project(ros_workspace NONE) 6 | find_package(ament_cmake_core REQUIRED) 7 | 8 | # Collect current python 3 version 9 | -execute_process(COMMAND python3 -c "from distutils import sysconfig; print(sysconfig.get_python_version())" OUTPUT_VARIABLE PYTHON_MAJOR_MINOR OUTPUT_STRIP_TRAILING_WHITESPACE) 10 | +execute_process(COMMAND python -c "from distutils import sysconfig; print(sysconfig.get_python_version())" OUTPUT_VARIABLE PYTHON_MAJOR_MINOR OUTPUT_STRIP_TRAILING_WHITESPACE) 11 | 12 | # Locate ament_package template files. 13 | if(WIN32) 14 | @@ -15,6 +15,16 @@ else() 15 | set(SHELL_EXT "sh") 16 | endif() 17 | set(AMENT_PACKAGE_DIR "${CMAKE_INSTALL_PREFIX}/${PYTHON_INSTALL_DIR}/ament_package") 18 | +if(NOT EXISTS "${AMENT_PACKAGE_DIR}" OR "$ENV{CONDA_BUILD_CROSS_COMPILATION}" EQUAL "1") 19 | + execute_process( 20 | + COMMAND python -c "import site; print(site.getsitepackages()[-1])" 21 | + OUTPUT_VARIABLE _PYTHON_SYSPREFIX 22 | + OUTPUT_STRIP_TRAILING_WHITESPACE 23 | + ) 24 | + message(WARNING "Could not find '${AMENT_PACKAGE_DIR}', now try '${_PYTHON_SYSPREFIX}/ament_package' instead.") 25 | + set(AMENT_PACKAGE_DIR "${_PYTHON_SYSPREFIX}/ament_package") 26 | +endif() 27 | + 28 | if(NOT EXISTS "${AMENT_PACKAGE_DIR}") 29 | # Check for an .egg-link file and use the listed directory if it exists 30 | get_filename_component(AMENT_PACKAGE_EGG_LINK "${AMENT_PACKAGE_DIR}" DIRECTORY) 31 | @@ -39,28 +39,7 @@ set( 32 | "prepend-non-duplicate;PYTHONPATH;${PYTHON_INSTALL_DIR}") 33 | 34 | # Set environment hooks for default environment. 35 | -if(WIN32) 36 | - ament_environment_hooks("${BINARY_PATH_HOOK}" "${PYTHONPATH_HOOK}") 37 | -else() 38 | - set(LIBRARY_PATH_HOOK "${AMENT_PACKAGE_TEMPLATE_DIR}/environment_hook/library_path.${SHELL_EXT}") 39 | - # enable C language so that a trycompile can determine what the 40 | - # anticipated libdir will be. 41 | - enable_language(C) 42 | - include(GNUInstallDirs) 43 | - if(NOT ${CMAKE_INSTALL_LIBDIR} STREQUAL "lib") 44 | - # register multiarch information for .dsv generation 45 | - if(APPLE) 46 | - set(LIBRARY_PATH_ENV_VAR "DYLD_LIBRARY_PATH") 47 | - else() 48 | - set(LIBRARY_PATH_ENV_VAR "LD_LIBRARY_PATH") 49 | - endif() 50 | - set( 51 | - AMENT_CMAKE_ENVIRONMENT_HOOKS_DESC_multiarch_library_paths 52 | - "prepend-non-duplicate;${LIBRARY_PATH_ENV_VAR};${CMAKE_INSTALL_LIBDIR}") 53 | - set(MULTIARCH_LIBRARY_PATH_HOOK "env-hooks/multiarch_library_paths.sh.in") 54 | - endif() 55 | - ament_environment_hooks("${BINARY_PATH_HOOK}" "${LIBRARY_PATH_HOOK}" "${PYTHONPATH_HOOK}" ${MULTIARCH_LIBRARY_PATH_HOOK}) 56 | -endif() 57 | +ament_environment_hooks("${BINARY_PATH_HOOK}" "${PYTHONPATH_HOOK}") 58 | 59 | # skip using ament_index/resource_index/parent_prefix_path 60 | # if for Debian packages it is known that there are no underlays 61 | -------------------------------------------------------------------------------- /patch/ros-galactic-ros2-socketcan.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/socket_can_id.cpp b/src/socket_can_id.cpp 2 | index 75f85ca..816f477 100644 3 | --- a/src/socket_can_id.cpp 4 | +++ b/src/socket_can_id.cpp 5 | @@ -14,6 +14,8 @@ 6 | // 7 | // Co-developed by Tier IV, Inc. and Apex.AI, Inc. 8 | 9 | + 10 | +#include 11 | #include // for CAN typedef so I can static_assert it 12 | 13 | #include 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosbag2-py.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index a5284cad..8f925de2 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -68,7 +68,7 @@ endfunction() 6 | 7 | ament_python_install_package(${PROJECT_NAME}) 8 | 9 | -pybind11_add_module(_reader SHARED 10 | +add_library(_reader MODULE 11 | src/rosbag2_py/_reader.cpp 12 | ) 13 | ament_target_dependencies(_reader PUBLIC 14 | @@ -77,8 +77,15 @@ ament_target_dependencies(_reader PUBLIC 15 | "rosbag2_storage" 16 | ) 17 | clean_windows_flags(_reader) 18 | +set_target_properties(_reader PROPERTIES PREFIX "") 19 | +if(WIN32) 20 | + set_target_properties(_reader PROPERTIES SUFFIX ".pyd") 21 | +endif() 22 | +target_link_libraries(_reader PRIVATE 23 | + pybind11::module 24 | +) 25 | 26 | -pybind11_add_module(_storage SHARED 27 | +add_library(_storage MODULE 28 | src/rosbag2_py/_storage.cpp 29 | src/rosbag2_py/format_bag_metadata.cpp 30 | ) 31 | @@ -87,8 +91,15 @@ ament_target_dependencies(_storage PUBLIC 32 | "rosbag2_storage" 33 | ) 34 | clean_windows_flags(_storage) 35 | +set_target_properties(_storage PROPERTIES PREFIX "") 36 | +if(WIN32) 37 | + set_target_properties(_storage PROPERTIES SUFFIX ".pyd") 38 | +endif() 39 | +target_link_libraries(_storage PRIVATE 40 | + pybind11::module 41 | +) 42 | 43 | -pybind11_add_module(_writer SHARED 44 | +add_library(_writer MODULE 45 | src/rosbag2_py/_writer.cpp 46 | ) 47 | ament_target_dependencies(_writer PUBLIC 48 | @@ -97,8 +105,15 @@ ament_target_dependencies(_writer PUBLIC 49 | "rosbag2_storage" 50 | ) 51 | clean_windows_flags(_writer) 52 | +set_target_properties(_writer PROPERTIES PREFIX "") 53 | +if(WIN32) 54 | + set_target_properties(_writer PROPERTIES SUFFIX ".pyd") 55 | +endif() 56 | +target_link_libraries(_writer PRIVATE 57 | + pybind11::module 58 | +) 59 | 60 | -pybind11_add_module(_info SHARED 61 | +add_library(_info MODULE 62 | src/rosbag2_py/_info.cpp 63 | ) 64 | ament_target_dependencies(_info PUBLIC 65 | @@ -106,8 +118,15 @@ ament_target_dependencies(_info PUBLIC 66 | "rosbag2_storage" 67 | ) 68 | clean_windows_flags(_info) 69 | +set_target_properties(_info PROPERTIES PREFIX "") 70 | +if(WIN32) 71 | + set_target_properties(_info PROPERTIES SUFFIX ".pyd") 72 | +endif() 73 | +target_link_libraries(_info PRIVATE 74 | + pybind11::module 75 | +) 76 | 77 | -pybind11_add_module(_transport SHARED 78 | +add_library(_transport MODULE 79 | src/rosbag2_py/_transport.cpp 80 | ) 81 | ament_target_dependencies(_transport PUBLIC 82 | @@ -117,8 +133,15 @@ ament_target_dependencies(_transport PUBLIC 83 | "rosbag2_transport" 84 | ) 85 | clean_windows_flags(_transport) 86 | +set_target_properties(_transport PROPERTIES PREFIX "") 87 | +if(WIN32) 88 | + set_target_properties(_transport PROPERTIES SUFFIX ".pyd") 89 | +endif() 90 | +target_link_libraries(_transport PRIVATE 91 | + pybind11::module 92 | +) 93 | 94 | -pybind11_add_module(_reindexer SHARED 95 | +add_library(_reindexer MODULE 96 | src/rosbag2_py/_reindexer.cpp 97 | ) 98 | ament_target_dependencies(_reindexer PUBLIC 99 | @@ -126,6 +146,13 @@ ament_target_dependencies(_reindexer PUBLIC 100 | "rosbag2_storage" 101 | ) 102 | clean_windows_flags(_reindexer) 103 | +set_target_properties(_reindexer PROPERTIES PREFIX "") 104 | +if(WIN32) 105 | + set_target_properties(_reindexer PROPERTIES SUFFIX ".pyd") 106 | +endif() 107 | +target_link_libraries(_reindexer PRIVATE 108 | + pybind11::module 109 | +) 110 | 111 | # Install cython modules as sub-modules of the project 112 | install( 113 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-generator-c.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_generator_c/rosidl_generator_c-extras.cmake.in b/rosidl_generator_c/rosidl_generator_c-extras.cmake.in 2 | index 48ff0d8f..b6e2b507 100644 3 | --- a/rosidl_generator_c/rosidl_generator_c-extras.cmake.in 4 | +++ b/rosidl_generator_c/rosidl_generator_c-extras.cmake.in 5 | @@ -6,6 +6,6 @@ set(rosidl_generator_c_LIBRARY_TYPE "@rosidl_generator_c_LIBRARY_TYPE@") 6 | include("${CMAKE_CURRENT_LIST_DIR}/register_c.cmake") 7 | rosidl_generator_c_extras( 8 | "${rosidl_generator_c_DIR}/../../../lib/rosidl_generator_c/rosidl_generator_c" 9 | - "${rosidl_generator_c_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_generator_c/__init__.py" 10 | + "@PYTHON_INSTALL_DIR@/rosidl_generator_c/__init__.py" 11 | "${rosidl_generator_c_DIR}/../resource" 12 | ) 13 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-generator-cpp.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_generator_cpp/rosidl_generator_cpp-extras.cmake.in b/rosidl_generator_cpp/rosidl_generator_cpp-extras.cmake.in 2 | index 703ced5e..8007dcac 100644 3 | --- a/rosidl_generator_cpp/rosidl_generator_cpp-extras.cmake.in 4 | +++ b/rosidl_generator_cpp/rosidl_generator_cpp-extras.cmake.in 5 | @@ -3,6 +3,6 @@ 6 | include("${CMAKE_CURRENT_LIST_DIR}/register_cpp.cmake") 7 | rosidl_generator_cpp_extras( 8 | "${rosidl_generator_cpp_DIR}/../../../lib/rosidl_generator_cpp/rosidl_generator_cpp" 9 | - "${rosidl_generator_cpp_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_generator_cpp/__init__.py" 10 | + "@PYTHON_INSTALL_DIR@/rosidl_generator_cpp/__init__.py" 11 | "${rosidl_generator_cpp_DIR}/../resource" 12 | ) 13 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-generator-dds-idl.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_generator_dds_idl/rosidl_generator_dds_idl-extras.cmake.in b/rosidl_generator_dds_idl/rosidl_generator_dds_idl-extras.cmake.in 2 | index 4db2e71..15d04f4 100644 3 | --- a/rosidl_generator_dds_idl/rosidl_generator_dds_idl-extras.cmake.in 4 | +++ b/rosidl_generator_dds_idl/rosidl_generator_dds_idl-extras.cmake.in 5 | @@ -9,7 +9,7 @@ normalize_path(rosidl_generator_dds_idl_BIN 6 | "${rosidl_generator_dds_idl_BIN}") 7 | 8 | set(rosidl_generator_dds_idl_GENERATOR_FILES 9 | - "${rosidl_generator_dds_idl_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_generator_dds_idl/__init__.py") 10 | + "@PYTHON_INSTALL_DIR@/rosidl_generator_dds_idl/__init__.py") 11 | normalize_path(rosidl_generator_dds_idl_GENERATOR_FILES 12 | "${rosidl_generator_dds_idl_GENERATOR_FILES}") 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-generator-py.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake b/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake 2 | index 4af35d6..8db124a 100644 3 | --- a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake 4 | +++ b/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake 5 | @@ -17,7 +17,7 @@ find_package(rosidl_runtime_c REQUIRED) 6 | find_package(rosidl_typesupport_c REQUIRED) 7 | find_package(rosidl_typesupport_interface REQUIRED) 8 | 9 | -find_package(PythonInterp 3.5 REQUIRED) 10 | +find_package(Python3 REQUIRED COMPONENTS Interpreter NumPy) 11 | 12 | find_package(python_cmake_module REQUIRED) 13 | find_package(PythonExtra MODULE REQUIRED) 14 | @@ -126,10 +126,8 @@ endif() 15 | 16 | set(_target_suffix "__py") 17 | 18 | +set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) 19 | set(_PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE}) 20 | -if(WIN32 AND "${CMAKE_BUILD_TYPE}" STREQUAL "Debug") 21 | - set(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE_DEBUG}) 22 | -endif() 23 | 24 | # move custom command into a subdirectory to avoid multiple invocations on Windows 25 | set(_subdir "${CMAKE_CURRENT_BINARY_DIR}/${rosidl_generate_interfaces_TARGET}${_target_suffix}") 26 | @@ -169,10 +169,17 @@ add_dependencies( 27 | ${rosidl_generate_interfaces_TARGET}__rosidl_typesupport_c 28 | ) 29 | 30 | -target_link_libraries( 31 | - ${_target_name_lib} 32 | - ${PythonExtra_LIBRARIES} 33 | -) 34 | + 35 | +if(NOT APPLE) 36 | + target_link_libraries( 37 | + ${_target_name_lib} 38 | + ${PythonExtra_LIBRARIES} 39 | + ) 40 | +else() 41 | + set_target_properties(${_target_name_lib} PROPERTIES 42 | + LINK_FLAGS "-undefined dynamic_lookup") 43 | +endif() 44 | + 45 | target_include_directories(${_target_name_lib} 46 | PUBLIC 47 | ${CMAKE_CURRENT_BINARY_DIR}/rosidl_generator_c 48 | @@ -180,31 +178,9 @@ target_include_directories(${_target_name_lib} 49 | ${PythonExtra_INCLUDE_DIRS} 50 | ) 51 | 52 | -# Check if numpy is in the include path 53 | -find_file(_numpy_h numpy/numpyconfig.h 54 | - PATHS ${PythonExtra_INCLUDE_DIRS} 55 | -) 56 | 57 | -if(APPLE OR WIN32 OR NOT _numpy_h) 58 | - # add include directory for numpy headers 59 | - set(_python_code 60 | - "import numpy" 61 | - "print(numpy.get_include())" 62 | - ) 63 | - execute_process( 64 | - COMMAND "${PYTHON_EXECUTABLE}" "-c" "${_python_code}" 65 | - OUTPUT_VARIABLE _output 66 | - RESULT_VARIABLE _result 67 | - OUTPUT_STRIP_TRAILING_WHITESPACE 68 | - ) 69 | - if(NOT _result EQUAL 0) 70 | - message(FATAL_ERROR 71 | - "execute_process(${PYTHON_EXECUTABLE} -c '${_python_code}') returned " 72 | - "error code ${_result}") 73 | - endif() 74 | - message(STATUS "Using numpy include directory: ${_output}") 75 | - target_include_directories(${_target_name_lib} PUBLIC "${_output}") 76 | -endif() 77 | +message(STATUS "Using numpy include directory: ${Python3_NumPy_INCLUDE_DIRS}") 78 | +target_include_directories(${_target_name_lib} PUBLIC "${Python3_NumPy_INCLUDE_DIRS}") 79 | 80 | rosidl_target_interfaces(${_target_name_lib} 81 | ${rosidl_generate_interfaces_TARGET} rosidl_typesupport_c) 82 | @@ -255,9 +261,15 @@ foreach(_typesupport_impl ${_typesupport_impls}) 83 | target_link_libraries( 84 | ${_target_name} 85 | ${_target_name_lib} 86 | - ${PythonExtra_LIBRARIES} 87 | ${rosidl_generate_interfaces_TARGET}__${_typesupport_impl} 88 | ) 89 | + 90 | + if(NOT APPLE) 91 | + target_link_libraries(${_target_name} ${PythonExtra_LIBRARIES}) 92 | + else() 93 | + set_target_properties(${_target_name} PROPERTIES 94 | + LINK_FLAGS "-undefined dynamic_lookup") 95 | + endif() 96 | 97 | target_include_directories(${_target_name} 98 | PUBLIC 99 | diff --git a/rosidl_generator_py/rosidl_generator_py-extras.cmake.in b/rosidl_generator_py/rosidl_generator_py-extras.cmake.in 100 | index 80bed29..ba70acc 100644 101 | --- a/rosidl_generator_py/rosidl_generator_py-extras.cmake.in 102 | +++ b/rosidl_generator_py/rosidl_generator_py-extras.cmake.in 103 | @@ -2,6 +2,6 @@ 104 | include("${CMAKE_CURRENT_LIST_DIR}/register_py.cmake") 105 | rosidl_generator_py_extras( 106 | "${rosidl_generator_py_DIR}/../../../lib/rosidl_generator_py/rosidl_generator_py" 107 | - "${rosidl_generator_py_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_generator_py/__init__.py;${rosidl_generator_py_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_generator_py/generate_py_impl.py" 108 | + "@PYTHON_INSTALL_DIR@/rosidl_generator_py/__init__.py;@PYTHON_INSTALL_DIR@/rosidl_generator_py/generate_py_impl.py" 109 | "${rosidl_generator_py_DIR}/../resource" 110 | ) 111 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-typesupport-c.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_typesupport_c/rosidl_typesupport_c-extras.cmake.in b/rosidl_typesupport_c/rosidl_typesupport_c-extras.cmake.in 2 | index 8afe385..154b63f 100644 3 | --- a/rosidl_typesupport_c/rosidl_typesupport_c-extras.cmake.in 4 | +++ b/rosidl_typesupport_c/rosidl_typesupport_c-extras.cmake.in 5 | @@ -25,7 +25,7 @@ normalize_path(rosidl_typesupport_c_BIN 6 | "${rosidl_typesupport_c_BIN}") 7 | 8 | set(rosidl_typesupport_c_GENERATOR_FILES 9 | - "${rosidl_typesupport_c_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_c/__init__.py") 10 | + "@PYTHON_INSTALL_DIR@/rosidl_typesupport_c/__init__.py") 11 | normalize_path(rosidl_typesupport_c_GENERATOR_FILES 12 | "${rosidl_typesupport_c_GENERATOR_FILES}") 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-typesupport-connext-c.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_typesupport_connext_c/rosidl_typesupport_connext_c-extras.cmake.in b/rosidl_typesupport_connext_c/rosidl_typesupport_connext_c-extras.cmake.in 2 | index 510e1d4..6770f33 100644 3 | --- a/rosidl_typesupport_connext_c/rosidl_typesupport_connext_c-extras.cmake.in 4 | +++ b/rosidl_typesupport_connext_c/rosidl_typesupport_connext_c-extras.cmake.in 5 | @@ -19,7 +19,7 @@ else() 6 | "${rosidl_typesupport_connext_c_BIN}") 7 | 8 | set(rosidl_typesupport_connext_c_GENERATOR_FILES 9 | - "${rosidl_typesupport_connext_c_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_connext_c/__init__.py") 10 | + "@PYTHON_INSTALL_DIR@/rosidl_typesupport_connext_c/__init__.py") 11 | normalize_path(rosidl_typesupport_connext_c_GENERATOR_FILES 12 | "${rosidl_typesupport_connext_c_GENERATOR_FILES}") 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-typesupport-connext-cpp.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_typesupport_connext_cpp/rosidl_typesupport_connext_cpp-extras.cmake.in b/rosidl_typesupport_connext_cpp/rosidl_typesupport_connext_cpp-extras.cmake.in 2 | index 5deef97..3cd5d2e 100644 3 | --- a/rosidl_typesupport_connext_cpp/rosidl_typesupport_connext_cpp-extras.cmake.in 4 | +++ b/rosidl_typesupport_connext_cpp/rosidl_typesupport_connext_cpp-extras.cmake.in 5 | @@ -19,7 +19,7 @@ else() 6 | "${rosidl_typesupport_connext_cpp_BIN}") 7 | 8 | set(rosidl_typesupport_connext_cpp_GENERATOR_FILES 9 | - "${rosidl_typesupport_connext_cpp_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_connext_cpp/__init__.py") 10 | + "@PYTHON_INSTALL_DIR@/rosidl_typesupport_connext_cpp/__init__.py") 11 | normalize_path(rosidl_typesupport_connext_cpp_GENERATOR_FILES 12 | "${rosidl_typesupport_connext_cpp_GENERATOR_FILES}") 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-typesupport-cpp.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_typesupport_cpp/rosidl_typesupport_cpp-extras.cmake.in b/rosidl_typesupport_cpp/rosidl_typesupport_cpp-extras.cmake.in 2 | index 50609ce..0a0ddc6 100644 3 | --- a/rosidl_typesupport_cpp/rosidl_typesupport_cpp-extras.cmake.in 4 | +++ b/rosidl_typesupport_cpp/rosidl_typesupport_cpp-extras.cmake.in 5 | @@ -25,7 +25,7 @@ normalize_path(rosidl_typesupport_cpp_BIN 6 | "${rosidl_typesupport_cpp_BIN}") 7 | 8 | set(rosidl_typesupport_cpp_GENERATOR_FILES 9 | - "${rosidl_typesupport_cpp_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_cpp/__init__.py") 10 | + "@PYTHON_INSTALL_DIR@/rosidl_typesupport_cpp/__init__.py") 11 | normalize_path(rosidl_typesupport_cpp_GENERATOR_FILES 12 | "${rosidl_typesupport_cpp_GENERATOR_FILES}") 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-typesupport-fastrtps-c.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_typesupport_fastrtps_c/rosidl_typesupport_fastrtps_c-extras.cmake.in b/rosidl_typesupport_fastrtps_c/rosidl_typesupport_fastrtps_c-extras.cmake.in 2 | index f23e9d0..cc19345 100644 3 | --- a/rosidl_typesupport_fastrtps_c/rosidl_typesupport_fastrtps_c-extras.cmake.in 4 | +++ b/rosidl_typesupport_fastrtps_c/rosidl_typesupport_fastrtps_c-extras.cmake.in 5 | @@ -21,7 +21,7 @@ else() 6 | "${rosidl_typesupport_fastrtps_c_BIN}") 7 | 8 | set(rosidl_typesupport_fastrtps_c_GENERATOR_FILES 9 | - "${rosidl_typesupport_fastrtps_c_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_fastrtps_c/__init__.py") 10 | + "@PYTHON_INSTALL_DIR@/rosidl_typesupport_fastrtps_c/__init__.py") 11 | normalize_path(rosidl_typesupport_fastrtps_c_GENERATOR_FILES 12 | "${rosidl_typesupport_fastrtps_c_GENERATOR_FILES}") 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-typesupport-fastrtps-cpp.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_typesupport_fastrtps_cpp/rosidl_typesupport_fastrtps_cpp-extras.cmake.in b/rosidl_typesupport_fastrtps_cpp/rosidl_typesupport_fastrtps_cpp-extras.cmake.in 2 | index 0dd5b22..67f17fd 100644 3 | --- a/rosidl_typesupport_fastrtps_cpp/rosidl_typesupport_fastrtps_cpp-extras.cmake.in 4 | +++ b/rosidl_typesupport_fastrtps_cpp/rosidl_typesupport_fastrtps_cpp-extras.cmake.in 5 | @@ -22,7 +22,7 @@ else() 6 | "${rosidl_typesupport_fastrtps_cpp_BIN}") 7 | 8 | set(rosidl_typesupport_fastrtps_cpp_GENERATOR_FILES 9 | - "${rosidl_typesupport_fastrtps_cpp_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_fastrtps_cpp/__init__.py") 10 | + "@PYTHON_INSTALL_DIR@/rosidl_typesupport_fastrtps_cpp/__init__.py") 11 | normalize_path(rosidl_typesupport_fastrtps_cpp_GENERATOR_FILES 12 | "${rosidl_typesupport_fastrtps_cpp_GENERATOR_FILES}") 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-typesupport-gurumdds-c.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_typesupport_gurumdds_c/rosidl_typesupport_gurumdds_c-extras.cmake.in b/rosidl_typesupport_gurumdds_c/rosidl_typesupport_gurumdds_c-extras.cmake.in 2 | index 1c8a3dc..3a69e87 100644 3 | --- a/rosidl_typesupport_gurumdds_c/rosidl_typesupport_gurumdds_c-extras.cmake.in 4 | +++ b/rosidl_typesupport_gurumdds_c/rosidl_typesupport_gurumdds_c-extras.cmake.in 5 | @@ -19,7 +19,7 @@ else() 6 | "${rosidl_typesupport_gurumdds_c_BIN}") 7 | 8 | set(rosidl_typesupport_gurumdds_c_GENERATOR_FILES 9 | - "${rosidl_typesupport_gurumdds_c_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_gurumdds_c/__init__.py") 10 | + "@PYTHON_INSTALL_DIR@/rosidl_typesupport_gurumdds_c/__init__.py") 11 | normalize_path(rosidl_typesupport_gurumdds_c_GENERATOR_FILES 12 | "${rosidl_typesupport_gurumdds_c_GENERATOR_FILES}") 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-typesupport-gurumdds-cpp.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_typesupport_gurumdds_cpp/rosidl_typesupport_gurumdds_cpp-extras.cmake.in b/rosidl_typesupport_gurumdds_cpp/rosidl_typesupport_gurumdds_cpp-extras.cmake.in 2 | index 2c7a381..60b85df 100644 3 | --- a/rosidl_typesupport_gurumdds_cpp/rosidl_typesupport_gurumdds_cpp-extras.cmake.in 4 | +++ b/rosidl_typesupport_gurumdds_cpp/rosidl_typesupport_gurumdds_cpp-extras.cmake.in 5 | @@ -15,7 +15,7 @@ else() 6 | "${rosidl_typesupport_gurumdds_cpp_BIN}") 7 | 8 | set(rosidl_typesupport_gurumdds_cpp_GENERATOR_FILES 9 | - "${rosidl_typesupport_gurumdds_cpp_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_gurumdds_cpp/__init__.py") 10 | + "@PYTHON_INSTALL_DIR@/rosidl_typesupport_gurumdds_cpp/__init__.py") 11 | normalize_path(rosidl_typesupport_gurumdds_GENERATOR_FILES 12 | "${rosidl_typesupport_gurumdds_cpp_GENERATOR_FILES}") 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-typesupport-introspection-c.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_typesupport_introspection_c/rosidl_typesupport_introspection_c-extras.cmake.in b/rosidl_typesupport_introspection_c/rosidl_typesupport_introspection_c-extras.cmake.in 2 | index 004a1e62..ee3c19ab 100644 3 | --- a/rosidl_typesupport_introspection_c/rosidl_typesupport_introspection_c-extras.cmake.in 4 | +++ b/rosidl_typesupport_introspection_c/rosidl_typesupport_introspection_c-extras.cmake.in 5 | @@ -21,7 +21,7 @@ normalize_path(rosidl_typesupport_introspection_c_BIN 6 | "${rosidl_typesupport_introspection_c_BIN}") 7 | 8 | set(rosidl_typesupport_introspection_c_GENERATOR_FILES 9 | - "${rosidl_typesupport_introspection_c_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_introspection_c/__init__.py") 10 | + "@PYTHON_INSTALL_DIR@/rosidl_typesupport_introspection_c/__init__.py") 11 | normalize_path(rosidl_typesupport_introspection_c_GENERATOR_FILES 12 | "${rosidl_typesupport_introspection_c_GENERATOR_FILES}") 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-typesupport-introspection-cpp.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_typesupport_introspection_cpp/rosidl_typesupport_introspection_cpp-extras.cmake.in b/rosidl_typesupport_introspection_cpp/rosidl_typesupport_introspection_cpp-extras.cmake.in 2 | index c90641b9..f1d02b9d 100644 3 | --- a/rosidl_typesupport_introspection_cpp/rosidl_typesupport_introspection_cpp-extras.cmake.in 4 | +++ b/rosidl_typesupport_introspection_cpp/rosidl_typesupport_introspection_cpp-extras.cmake.in 5 | @@ -21,7 +21,7 @@ normalize_path(rosidl_typesupport_introspection_cpp_BIN 6 | "${rosidl_typesupport_introspection_cpp_BIN}") 7 | 8 | set(rosidl_typesupport_introspection_cpp_GENERATOR_FILES 9 | - "${rosidl_typesupport_introspection_cpp_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_introspection_cpp/__init__.py") 10 | + "@PYTHON_INSTALL_DIR@/rosidl_typesupport_introspection_cpp/__init__.py") 11 | normalize_path(rosidl_typesupport_introspection_cpp_GENERATOR_FILES 12 | "${rosidl_typesupport_introspection_cpp_GENERATOR_FILES}") 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-typesupport-opensplice-c.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_typesupport_opensplice_c/rosidl_typesupport_opensplice_c-extras.cmake.in b/rosidl_typesupport_opensplice_c/rosidl_typesupport_opensplice_c-extras.cmake.in 2 | index 4a57f4b..22673b5 100644 3 | --- a/rosidl_typesupport_opensplice_c/rosidl_typesupport_opensplice_c-extras.cmake.in 4 | +++ b/rosidl_typesupport_opensplice_c/rosidl_typesupport_opensplice_c-extras.cmake.in 5 | @@ -21,7 +21,7 @@ else() 6 | "${rosidl_typesupport_opensplice_c_BIN}") 7 | 8 | set(rosidl_typesupport_opensplice_c_GENERATOR_FILES 9 | - "${rosidl_typesupport_opensplice_c_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_opensplice_c/__init__.py") 10 | + "@PYTHON_INSTALL_DIR@/rosidl_typesupport_opensplice_c/__init__.py") 11 | normalize_path(rosidl_typesupport_opensplice_c_GENERATOR_FILES 12 | "${rosidl_typesupport_opensplice_c_GENERATOR_FILES}") 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rosidl-typesupport-opensplice-cpp.patch: -------------------------------------------------------------------------------- 1 | diff --git a/rosidl_typesupport_opensplice_cpp/rosidl_typesupport_opensplice_cpp-extras.cmake.in b/rosidl_typesupport_opensplice_cpp/rosidl_typesupport_opensplice_cpp-extras.cmake.in 2 | index c9e5e73..ed334a5 100644 3 | --- a/rosidl_typesupport_opensplice_cpp/rosidl_typesupport_opensplice_cpp-extras.cmake.in 4 | +++ b/rosidl_typesupport_opensplice_cpp/rosidl_typesupport_opensplice_cpp-extras.cmake.in 5 | @@ -21,7 +21,7 @@ else() 6 | "${rosidl_typesupport_opensplice_cpp_BIN}") 7 | 8 | set(rosidl_typesupport_opensplice_cpp_GENERATOR_FILES 9 | - "${rosidl_typesupport_opensplice_cpp_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_opensplice_cpp/__init__.py") 10 | + "@PYTHON_INSTALL_DIR@/rosidl_typesupport_opensplice_cpp/__init__.py") 11 | normalize_path(rosidl_typesupport_opensplice_cpp_GENERATOR_FILES 12 | "${rosidl_typesupport_opensplice_cpp_GENERATOR_FILES}") 13 | 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-rtabmap.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 5cdae61..0e691ba 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -1,5 +1,5 @@ 6 | # Top-Level CmakeLists.txt 7 | -cmake_minimum_required(VERSION 3.5) 8 | +cmake_minimum_required(VERSION 3.18) 9 | PROJECT( RTABMap ) 10 | SET(PROJECT_PREFIX rtabmap) 11 | 12 | @@ -80,12 +80,12 @@ IF(MINGW) 13 | ENDIF(MINGW) 14 | 15 | # GCC 4 required 16 | -IF(UNIX OR MINGW) 17 | - EXEC_PROGRAM( gcc ARGS "-dumpversion" OUTPUT_VARIABLE GCC_VERSION ) 18 | - IF(GCC_VERSION VERSION_LESS "4.0.0") 19 | - MESSAGE(FATAL_ERROR "GCC ${GCC_VERSION} found, but version 4.x.x minimum is required") 20 | - ENDIF(GCC_VERSION VERSION_LESS "4.0.0") 21 | -ENDIF(UNIX OR MINGW) 22 | +# IF(UNIX OR MINGW) 23 | +# EXEC_PROGRAM( gcc ARGS "-dumpversion" OUTPUT_VARIABLE GCC_VERSION ) 24 | +# IF(GCC_VERSION VERSION_LESS "4.0.0") 25 | +# MESSAGE(FATAL_ERROR "GCC ${GCC_VERSION} found, but version 4.x.x minimum is required") 26 | +# ENDIF(GCC_VERSION VERSION_LESS "4.0.0") 27 | +# ENDIF(UNIX OR MINGW) 28 | 29 | #The CDT Error Parser cannot handle error messages that span 30 | #more than one line, which is the default gcc behavior. 31 | @@ -353,12 +353,26 @@ IF(WITH_TORCH) 32 | ENDIF(WITH_TORCH) 33 | 34 | IF(WITH_PYTHON) 35 | - FIND_PACKAGE(Python3 COMPONENTS Interpreter Development) 36 | + FIND_PACKAGE(Python3 REQUIRED COMPONENTS Interpreter Development) 37 | IF(Python3_FOUND) 38 | MESSAGE(STATUS "Found Python3") 39 | ENDIF(Python3_FOUND) 40 | ENDIF(WITH_PYTHON) 41 | 42 | +execute_process( 43 | + COMMAND 44 | + "${Python3_EXECUTABLE}" -c 45 | +# multiline string; indentation would break this 46 | +"try: 47 | + import sys 48 | + import numpy 49 | + sys.stdout.write(numpy.get_include()) 50 | +except: 51 | + pass 52 | +" 53 | + OUTPUT_VARIABLE NUMPY_INCLUDE_DIRS 54 | +) 55 | + 56 | IF(WITH_PDAL) 57 | FIND_PACKAGE(PDAL QUIET) 58 | IF(PDAL_FOUND) 59 | @@ -1213,7 +1227,7 @@ MESSAGE(STATUS " With SupertPoint = NO (libtorch not found)") 60 | ENDIF() 61 | 62 | IF(Python3_FOUND) 63 | -MESSAGE(STATUS " With Python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} = YES (License: PSF)") 64 | +MESSAGE(STATUS " With Python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} = YES (License: PSF) ${NUMPY_INCLUDE_DIRS}") 65 | ELSEIF(NOT WITH_PYTHON) 66 | MESSAGE(STATUS " With Python3 = NO (WITH_PYTHON=OFF)") 67 | ELSE() 68 | diff --git a/corelib/src/CMakeLists.txt b/corelib/src/CMakeLists.txt 69 | index 25d5e2d..6950109 100644 70 | --- a/corelib/src/CMakeLists.txt 71 | +++ b/corelib/src/CMakeLists.txt 72 | @@ -150,10 +150,15 @@ SET(INCLUDE_DIRS 73 | ${ZLIB_INCLUDE_DIRS} 74 | ) 75 | 76 | +find_package(PkgConfig REQUIRED) 77 | +pkg_check_modules(udev REQUIRED libudev) 78 | + 79 | + 80 | SET(LIBRARIES 81 | ${OpenCV_LIBS} 82 | ${PCL_LIBRARIES} 83 | ${ZLIB_LIBRARIES} 84 | + ${udev_LINK_LIBRARIES} 85 | ) 86 | 87 | IF(Sqlite3_FOUND) 88 | @@ -204,6 +209,7 @@ IF(Python3_FOUND) 89 | python/PyDetector.cpp 90 | ) 91 | SET(INCLUDE_DIRS 92 | + ${NUMPY_INCLUDE_DIRS} 93 | ${TORCH_INCLUDE_DIRS} 94 | ${CMAKE_CURRENT_SOURCE_DIR}/python 95 | ${INCLUDE_DIRS} 96 | -------------------------------------------------------------------------------- /patch/ros-galactic-rviz-assimp-vendor.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 034f3f2a..2c1b4c2d 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -83,6 +83,8 @@ if(FORCE_BUILD_VENDOR_PKG OR NOT assimp_FOUND OR "${assimp_VERSION}" VERSION_LES 6 | set(ENV_VAR_VALUE "opt/rviz_assimp_vendor/lib") 7 | endif() 8 | ament_environment_hooks(env_hook/rviz_assimp_vendor_library_path.dsv.in) 9 | +else() 10 | + ament_export_dependencies(assimp) 11 | endif() 12 | 13 | if(BUILD_TESTING) 14 | diff --git a/rviz_assimp_vendor-extras.cmake.in b/rviz_assimp_vendor-extras.cmake.in 15 | index d8ec4765..ad39a517 100644 16 | --- a/rviz_assimp_vendor-extras.cmake.in 17 | +++ b/rviz_assimp_vendor-extras.cmake.in 18 | @@ -4,35 +4,13 @@ 19 | # https://bugs.launchpad.net/ubuntu/+source/assimp/+bug/1869405 20 | set(ON 1) 21 | 22 | -find_package(assimp QUIET) 23 | +find_package(assimp REQUIRED) 24 | 25 | -if(NOT assimp_FOUND OR "${assimp_VERSION}" VERSION_LESS 4.1.0) 26 | - # add the local Modules directory to the modules path 27 | - set(assimp_DIR "${@PROJECT_NAME@_DIR}/../../../opt/rviz_assimp_vendor/lib/cmake/assimp-4.1") 28 | - message(STATUS "Setting assimp_DIR to: '${assimp_DIR}'") 29 | -endif() 30 | +set(ASSIMP_LIBRARIES assimp::assimp) 31 | +set(rviz_assimp_vendor_LIBRARIES "${ASSIMP_LIBRARIES}") 32 | 33 | -find_package(assimp REQUIRED QUIET) 34 | +find_library(ASSIMP_LIB assimp) 35 | +get_filename_component(ASSIMP_LIBRARY_DIRS "${ASSIMP_LIB}" DIRECTORY) 36 | 37 | -# workaround bug in Assimp 4.1.0 https://github.com/assimp/assimp/issues/1914 38 | -# Affecting Ubuntu package: libassimp-dev 4.1.0~dfsg-3, Brew: assimp 4.1.0 39 | -string(REPLACE "/lib/lib/" "/lib/" ASSIMP_LIBRARY_DIRS "${ASSIMP_LIBRARY_DIRS}") 40 | -string(REGEX REPLACE "/lib/include$" "/include" ASSIMP_INCLUDE_DIRS "${ASSIMP_INCLUDE_DIRS}") 41 | - 42 | -# Fix for https://github.com/ros2/ros2/issues/1222 43 | -if(TARGET assimp::assimp AND "${assimp_VERSION}" VERSION_GREATER 5.0.1) 44 | - set(rviz_assimp_vendor_LIBRARIES assimp::assimp) 45 | -else() 46 | - set(rviz_assimp_vendor_LIBRARIES) 47 | - foreach(library IN LISTS ASSIMP_LIBRARIES) 48 | - message(STATUS "library: ${library}") 49 | - if(IS_ABSOLUTE "${library}") 50 | - list(APPEND rviz_assimp_vendor_LIBRARIES "${library}") 51 | - else() 52 | - find_library(library_abs ${library} PATHS "${ASSIMP_LIBRARY_DIRS}" NO_DEFAULT_PATH) 53 | - list(APPEND rviz_assimp_vendor_LIBRARIES "${library_abs}") 54 | - endif() 55 | - endforeach() 56 | -endif() 57 | set(rviz_assimp_vendor_LIBRARY_DIRS ${ASSIMP_LIBRARY_DIRS}) 58 | set(rviz_assimp_vendor_INCLUDE_DIRS ${ASSIMP_INCLUDE_DIRS}) 59 | -------------------------------------------------------------------------------- /patch/ros-galactic-rviz-default-plugins.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index d6b1e67f..19e21299 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -219,12 +219,12 @@ add_library(rviz_default_plugins SHARED 6 | target_include_directories(rviz_default_plugins PUBLIC 7 | $ 8 | $ 9 | - ${Qt5Widgets_INCLUDE_DIRS} 10 | ) 11 | 12 | target_link_libraries(rviz_default_plugins PUBLIC 13 | rviz_ogre_vendor::OgreMain 14 | rviz_ogre_vendor::OgreOverlay 15 | + Qt5::Widgets 16 | ) 17 | 18 | # Causes the visibility macros to use dllexport rather than dllimport, 19 | diff --git a/include/rviz_default_plugins/displays/interactive_markers/interactive_marker.hpp b/include/rviz_default_plugins/displays/interactive_markers/interactive_marker.hpp 20 | index 0dc32a42fd0..4a8f2b9f970 100644 21 | --- a/include/rviz_default_plugins/displays/interactive_markers/interactive_marker.hpp 22 | +++ b/include/rviz_default_plugins/displays/interactive_markers/interactive_marker.hpp 23 | @@ -54,6 +54,8 @@ 24 | 25 | #include "rviz_default_plugins/displays/interactive_markers/interactive_marker_control.hpp" 26 | 27 | +#include "rviz_default_plugins/visibility_control.hpp" 28 | + 29 | namespace Ogre 30 | { 31 | class SceneNode; 32 | @@ -72,7 +74,7 @@ namespace displays 33 | { 34 | class InteractiveMarkerDisplay; 35 | 36 | -class InteractiveMarker : public QObject 37 | +class RVIZ_DEFAULT_PLUGINS_PUBLIC InteractiveMarker : public QObject 38 | { 39 | Q_OBJECT 40 | 41 | -------------------------------------------------------------------------------- /patch/ros-galactic-rviz-ogre-vendor.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 7a917af8..591cfbae 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -6,13 +6,8 @@ find_package(ament_cmake REQUIRED) 6 | 7 | set(PACKAGE_VERSION "1.0.0") 8 | 9 | -if(WIN32) 10 | - set(BUILDING_FREETYPE_LOCALLY ON) 11 | - set(BUILDING_ZLIB_LOCALLY ON) 12 | -else() 13 | - set(BUILDING_FREETYPE_LOCALLY OFF) 14 | - set(BUILDING_ZLIB_LOCALLY OFF) 15 | -endif() 16 | +set(BUILDING_FREETYPE_LOCALLY OFF) 17 | +set(BUILDING_ZLIB_LOCALLY OFF) 18 | 19 | if(WIN32 AND NOT ${CMAKE_VERBOSE_MAKEFILE}) 20 | set(should_log ON) # prevent warnings in Windows CI 21 | @@ -217,20 +212,32 @@ if(BUILDING_ZLIB_LOCALLY) 22 | build_zlib() 23 | endif() 24 | 25 | -build_ogre() 26 | +find_package(OGRE) 27 | 28 | -if(WIN32) 29 | - ament_environment_hooks(env_hook/rviz_ogre_vendor_library_path.bat) 30 | - set(ENV_VAR_NAME "PATH") 31 | - set(ENV_VAR_VALUE "opt\\rviz_ogre_vendor\\bin") 32 | -else() 33 | - ament_environment_hooks(env_hook/rviz_ogre_vendor_library_path.sh) 34 | - if(APPLE) 35 | - set(ENV_VAR_NAME "DYLD_LIBRARY_PATH") 36 | +if(FORCE_BUILD_VENDOR_PKG OR NOT OGRE_FOUND OR "${OGRE_VERSION}" VERSION_LESS 1.12.1) 37 | + set(RVIZ_OGRE_IS_VENDORBUILD ON) 38 | + if(BUILDING_FREETYPE_LOCALLY) 39 | + build_freetype() 40 | + endif() 41 | + if(BUILDING_ZLIB_LOCALLY) 42 | + build_zlib() 43 | + endif() 44 | + 45 | + build_ogre() 46 | + 47 | + if(WIN32) 48 | + ament_environment_hooks(env_hook/rviz_ogre_vendor_library_path.bat) 49 | + set(ENV_VAR_NAME "PATH") 50 | + set(ENV_VAR_VALUE "opt\\rviz_ogre_vendor\\bin") 51 | else() 52 | - set(ENV_VAR_NAME "LD_LIBRARY_PATH") 53 | + ament_environment_hooks(env_hook/rviz_ogre_vendor_library_path.sh) 54 | + if(APPLE) 55 | + set(ENV_VAR_NAME "DYLD_LIBRARY_PATH") 56 | + else() 57 | + set(ENV_VAR_NAME "LD_LIBRARY_PATH") 58 | + endif() 59 | + set(ENV_VAR_VALUE "opt/rviz_ogre_vendor/lib") 60 | endif() 61 | - set(ENV_VAR_VALUE "opt/rviz_ogre_vendor/lib") 62 | endif() 63 | ament_environment_hooks(env_hook/rviz_ogre_vendor_library_path.dsv.in) 64 | 65 | diff --git a/rviz_ogre_vendor-extras.cmake.in b/rviz_ogre_vendor-extras.cmake.in 66 | index 786aff99..935ed247 100644 67 | --- a/rviz_ogre_vendor-extras.cmake.in 68 | +++ b/rviz_ogre_vendor-extras.cmake.in 69 | @@ -1,20 +1,26 @@ 70 | # add the local Modules directory to the modules path 71 | -if(WIN32) 72 | - set(OGRE_DIR "${@PROJECT_NAME@_DIR}/../../../opt/rviz_ogre_vendor/CMake") 73 | - set(OGRE_CMAKE_MODULE_DIR "${@PROJECT_NAME@_DIR}/../../../opt/rviz_ogre_vendor/CMake") 74 | - list(INSERT CMAKE_MODULE_PATH 0 ${OGRE_CMAKE_MODULE_DIR}) 75 | - message(STATUS "Prepending to CMAKE_MODULE_PATH: '${OGRE_CMAKE_MODULE_DIR}'") 76 | -elseif(APPLE) 77 | - set(OGRE_DIR "${@PROJECT_NAME@_DIR}/../../../opt/rviz_ogre_vendor/CMake") 78 | +set (RVIZ_OGRE_IS_VENDORBUILD @RVIZ_OGRE_IS_VENDORBUILD@) 79 | +if (RVIZ_OGRE_IS_VENDORBUILD) 80 | + if(WIN32) 81 | + set(OGRE_DIR "${@PROJECT_NAME@_DIR}/../../../opt/rviz_ogre_vendor/CMake") 82 | + set(OGRE_CMAKE_MODULE_DIR "${@PROJECT_NAME@_DIR}/../../../opt/rviz_ogre_vendor/CMake") 83 | + list(INSERT CMAKE_MODULE_PATH 0 ${OGRE_CMAKE_MODULE_DIR}) 84 | + message(STATUS "Prepending to CMAKE_MODULE_PATH: '${OGRE_CMAKE_MODULE_DIR}'") 85 | + elseif(APPLE) 86 | + set(OGRE_DIR "${@PROJECT_NAME@_DIR}/../../../opt/rviz_ogre_vendor/CMake") 87 | + else() 88 | + set(OGRE_DIR "${@PROJECT_NAME@_DIR}/../../../opt/rviz_ogre_vendor/lib/OGRE/cmake") 89 | + endif() 90 | + message(STATUS "Setting OGRE_DIR to: '${OGRE_DIR}'") 91 | + 92 | + set(FREETYPE_HOME "${rviz_ogre_vendor_DIR}/../../../opt/rviz_ogre_vendor") 93 | + set(ZLIB_HOME "${rviz_ogre_vendor_DIR}/../../../opt/rviz_ogre_vendor") 94 | + 95 | + find_package(OGRE REQUIRED NO_SYSTEM_ENVIRONMENT_PATH) 96 | else() 97 | - set(OGRE_DIR "${@PROJECT_NAME@_DIR}/../../../opt/rviz_ogre_vendor/lib/OGRE/cmake") 98 | + find_package(OGRE REQUIRED) 99 | endif() 100 | -message(STATUS "Setting OGRE_DIR to: '${OGRE_DIR}'") 101 | 102 | -set(FREETYPE_HOME "${rviz_ogre_vendor_DIR}/../../../opt/rviz_ogre_vendor") 103 | -set(ZLIB_HOME "${rviz_ogre_vendor_DIR}/../../../opt/rviz_ogre_vendor") 104 | - 105 | -find_package(OGRE REQUIRED NO_SYSTEM_ENVIRONMENT_PATH) 106 | message(STATUS "OGRE_LIBRARIES: ${OGRE_LIBRARIES}") 107 | message(STATUS "OGRE_LIBRARY_DIRS: ${OGRE_LIBRARY_DIRS}") 108 | message(STATUS "OGRE_PLUGINS: ${OGRE_PLUGINS}") 109 | @@ -97,15 +103,7 @@ foreach(_lib IN LISTS OGRE_LIBRARIES) 110 | message(FATAL_ERROR "Could not find freetype package") 111 | endif() 112 | 113 | - if(WIN32) 114 | - if(_ogre_main_static_library_debug_abs) 115 | - set(ZLIB_LIBRARIES "${ZLIB_HOME}/lib/zlibstaticd.lib") 116 | - else() 117 | - set(ZLIB_LIBRARIES "${ZLIB_HOME}/lib/zlibstatic.lib") 118 | - endif() 119 | - else() 120 | - find_package(ZLIB REQUIRED) 121 | - endif() 122 | + find_package(ZLIB REQUIRED) 123 | 124 | if(NOT ZLIB_LIBRARIES) 125 | message(FATAL_ERROR "Could not find zlib library") 126 | -------------------------------------------------------------------------------- /patch/ros-galactic-rviz-rendering.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/rviz_rendering/render_system.cpp b/src/rviz_rendering/render_system.cpp 2 | index 1765e804..eb426dd8 100644 3 | --- a/src/rviz_rendering/render_system.cpp 4 | +++ b/src/rviz_rendering/render_system.cpp 5 | @@ -301,9 +301,9 @@ RenderSystem::setPluginDirectory() 6 | std::string prefix_path; 7 | ament_index_cpp::get_resource("packages", "rviz_ogre_vendor", content, &prefix_path); 8 | #ifdef _WIN32 9 | - set_ogre_plugin_directory(prefix_path + "\\opt\\rviz_ogre_vendor\\bin\\"); 10 | + set_ogre_plugin_directory(prefix_path + "\\bin\\"); 11 | #else 12 | - set_ogre_plugin_directory(prefix_path + "/opt/rviz_ogre_vendor/lib/OGRE/"); 13 | + set_ogre_plugin_directory(prefix_path + "/lib/OGRE/"); 14 | #endif 15 | } 16 | 17 | -------------------------------------------------------------------------------- /patch/ros-galactic-rviz2.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 37118e6b..14571801 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -19,26 +19,26 @@ find_package(rviz_ogre_vendor REQUIRED) 6 | 7 | find_package(Qt5 REQUIRED COMPONENTS Widgets) 8 | # TODO(wjwwood): this block is to setup the windeployqt tool, could be removed later. 9 | -if(Qt5_FOUND AND WIN32 AND TARGET Qt5::qmake AND NOT TARGET Qt5::windeployqt) 10 | - get_target_property(_qt5_qmake_location Qt5::qmake IMPORTED_LOCATION) 11 | +# if(Qt5_FOUND AND WIN32 AND TARGET Qt5::qmake AND NOT TARGET Qt5::windeployqt) 12 | +# get_target_property(_qt5_qmake_location Qt5::qmake IMPORTED_LOCATION) 13 | 14 | - execute_process( 15 | - COMMAND "${_qt5_qmake_location}" -query QT_INSTALL_PREFIX 16 | - RESULT_VARIABLE return_code 17 | - OUTPUT_VARIABLE qt5_install_prefix 18 | - OUTPUT_STRIP_TRAILING_WHITESPACE 19 | - ) 20 | +# execute_process( 21 | +# COMMAND "${_qt5_qmake_location}" -query QT_INSTALL_PREFIX 22 | +# RESULT_VARIABLE return_code 23 | +# OUTPUT_VARIABLE qt5_install_prefix 24 | +# OUTPUT_STRIP_TRAILING_WHITESPACE 25 | +# ) 26 | 27 | - set(imported_location "${qt5_install_prefix}/bin/windeployqt.exe") 28 | +# set(imported_location "${qt5_install_prefix}/bin/windeployqt.exe") 29 | 30 | - if(EXISTS ${imported_location}) 31 | - add_executable(Qt5::windeployqt IMPORTED) 32 | +# if(EXISTS ${imported_location}) 33 | +# add_executable(Qt5::windeployqt IMPORTED) 34 | 35 | - set_target_properties(Qt5::windeployqt PROPERTIES 36 | - IMPORTED_LOCATION ${imported_location} 37 | - ) 38 | - endif() 39 | -endif() 40 | +# set_target_properties(Qt5::windeployqt PROPERTIES 41 | +# IMPORTED_LOCATION ${imported_location} 42 | +# ) 43 | +# endif() 44 | +# endif() 45 | 46 | add_executable(${PROJECT_NAME} 47 | src/main.cpp 48 | @@ -54,30 +54,30 @@ target_link_libraries(${PROJECT_NAME} 49 | # necessary dlls and stuff to the bin folder. 50 | # see: 51 | # https://stackoverflow.com/questions/41193584/deploy-all-qt-dependencies-when-building#41199492 52 | -if(TARGET Qt5::windeployqt) 53 | - # execute windeployqt in a tmp directory after build 54 | - add_custom_command(TARGET ${PROJECT_NAME} 55 | - POST_BUILD 56 | - COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_BINARY_DIR}/windeployqt" 57 | - COMMAND set PATH=%PATH%$${qt5_install_prefix}/bin 58 | - COMMAND 59 | - Qt5::windeployqt 60 | - --dir "${CMAKE_CURRENT_BINARY_DIR}/windeployqt" 61 | - "$/$" 62 | - ) 63 | - 64 | - # copy deployment directory during installation 65 | - install( 66 | - DIRECTORY 67 | - "${CMAKE_CURRENT_BINARY_DIR}/windeployqt/" 68 | - DESTINATION bin 69 | - ) 70 | - install( 71 | - DIRECTORY 72 | - "${CMAKE_CURRENT_BINARY_DIR}/windeployqt/" 73 | - DESTINATION lib/${PROJECT_NAME} 74 | - ) 75 | -endif() 76 | +# if(TARGET Qt5::windeployqt) 77 | +# # execute windeployqt in a tmp directory after build 78 | +# add_custom_command(TARGET ${PROJECT_NAME} 79 | +# POST_BUILD 80 | +# COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_BINARY_DIR}/windeployqt" 81 | +# COMMAND set PATH=%PATH%$${qt5_install_prefix}/bin 82 | +# COMMAND 83 | +# Qt5::windeployqt 84 | +# --dir "${CMAKE_CURRENT_BINARY_DIR}/windeployqt" 85 | +# "$/$" 86 | +# ) 87 | + 88 | +# # copy deployment directory during installation 89 | +# install( 90 | +# DIRECTORY 91 | +# "${CMAKE_CURRENT_BINARY_DIR}/windeployqt/" 92 | +# DESTINATION bin 93 | +# ) 94 | +# install( 95 | +# DIRECTORY 96 | +# "${CMAKE_CURRENT_BINARY_DIR}/windeployqt/" 97 | +# DESTINATION lib/${PROJECT_NAME} 98 | +# ) 99 | +# endif() 100 | 101 | install(TARGETS ${PROJECT_NAME} DESTINATION bin) 102 | install(TARGETS ${PROJECT_NAME} DESTINATION lib/${PROJECT_NAME}) 103 | -------------------------------------------------------------------------------- /patch/ros-galactic-sdformat-urdf.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 23f11ab..846d08a 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -14,7 +14,7 @@ find_package(ament_cmake_ros REQUIRED) 6 | 7 | find_package(pluginlib REQUIRED) 8 | find_package(rcutils REQUIRED) 9 | -find_package(sdformat9 REQUIRED) 10 | +find_package(sdformat11 REQUIRED) 11 | find_package(urdfdom_headers REQUIRED) 12 | find_package(urdf_parser_plugin REQUIRED) 13 | find_package(tinyxml2_vendor REQUIRED) 14 | @@ -25,7 +25,7 @@ add_library(sdformat_urdf SHARED 15 | src/sdformat_urdf.cpp 16 | ) 17 | target_link_libraries(sdformat_urdf PUBLIC 18 | - sdformat9::sdformat9 19 | + sdformat11::sdformat11 20 | ) 21 | target_link_libraries(sdformat_urdf PRIVATE 22 | rcutils::rcutils 23 | @@ -50,7 +50,7 @@ target_link_libraries(sdformat_urdf_plugin PRIVATE 24 | ) 25 | 26 | ament_export_dependencies(urdfdom_headers) 27 | -ament_export_dependencies(sdformat9) 28 | +ament_export_dependencies(sdformat11) 29 | 30 | install(TARGETS sdformat_urdf EXPORT sdformat_urdf-export 31 | ARCHIVE DESTINATION lib 32 | -------------------------------------------------------------------------------- /patch/ros-galactic-spacenav.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 247381b..4474a03 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -31,7 +31,7 @@ ament_target_dependencies(spacenav 6 | "rclcpp" 7 | "sensor_msgs") 8 | 9 | -target_link_libraries(spacenav spnav) 10 | +target_link_libraries(spacenav ${SPNAV_LIBRARIES}) 11 | 12 | # Install targets 13 | install(TARGETS spacenav 14 | -------------------------------------------------------------------------------- /patch/ros-galactic-tf2-py.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 4312925f..aa53e2fa 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -20,51 +20,25 @@ if(CMAKE_COMPILER_IS_GNUCXX) 6 | add_compile_options(-Wno-cast-function-type) 7 | endif() 8 | 9 | +find_package(Python3 REQUIRED COMPONENTS Interpreter Development) 10 | find_package(ament_cmake REQUIRED) 11 | find_package(ament_cmake_python REQUIRED) 12 | find_package(geometry_msgs REQUIRED) 13 | find_package(tf2 REQUIRED) 14 | 15 | -find_package(python_cmake_module REQUIRED) 16 | -find_package(PythonExtra REQUIRED) 17 | - 18 | -set(_PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE}") 19 | - 20 | -if(WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug") 21 | - set(PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE_DEBUG}") 22 | -endif() 23 | - 24 | ament_python_install_package(${PROJECT_NAME}) 25 | 26 | include_directories(include) 27 | 28 | -function(set_properties _targetname _build_type) 29 | - set_target_properties(${_targetname} PROPERTIES 30 | - PREFIX "" 31 | - LIBRARY_OUTPUT_DIRECTORY${_build_type} "${CMAKE_CURRENT_BINARY_DIR}/test_${PROJECT_NAME}" 32 | - RUNTIME_OUTPUT_DIRECTORY${_build_type} "${CMAKE_CURRENT_BINARY_DIR}/test_${PROJECT_NAME}" 33 | - OUTPUT_NAME "_${_targetname}${PythonExtra_EXTENSION_SUFFIX}" 34 | - SUFFIX "${PythonExtra_EXTENSION_EXTENSION}") 35 | -endfunction() 36 | +python3_add_library(_tf2_py src/tf2_py.cpp) 37 | 38 | -add_library(${PROJECT_NAME} SHARED src/tf2_py.cpp) 39 | - 40 | -set_properties(${PROJECT_NAME} "") 41 | -if(WIN32) 42 | - set_properties(${PROJECT_NAME} "_DEBUG") 43 | - set_properties(${PROJECT_NAME} "_MINSIZEREL") 44 | - set_properties(${PROJECT_NAME} "_RELEASE") 45 | - set_properties(${PROJECT_NAME} "_RELWITHDEBINFO") 46 | -endif() 47 | - 48 | -ament_target_dependencies(${PROJECT_NAME} 49 | - "geometry_msgs" 50 | - "tf2" 51 | - "PythonExtra" 52 | +target_link_libraries(_tf2_py PRIVATE 53 | + ${geometry_msgs_TARGETS} 54 | + tf2::tf2 55 | ) 56 | 57 | install(TARGETS 58 | - ${PROJECT_NAME} 59 | + _tf2_py 60 | DESTINATION ${PYTHON_INSTALL_DIR}/${PROJECT_NAME} 61 | ) 62 | 63 | @@ -89,6 +63,4 @@ if(BUILD_TESTING) 64 | file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_tf2_py/__init__.py" "") 65 | endif() 66 | 67 | -set(PYTHON_EXECUTABLE "${_PYTHON_EXECUTABLE}") 68 | - 69 | ament_package() 70 | -------------------------------------------------------------------------------- /patch/ros-galactic-theora-image-transport.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index d301dee..d7fdcd7 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -22,11 +22,11 @@ find_package(sensor_msgs REQUIRED) 6 | find_package(std_msgs REQUIRED) 7 | 8 | find_package(OpenCV REQUIRED imgproc) 9 | -find_package(PkgConfig) 10 | -pkg_check_modules(PC_OGG REQUIRED ogg) 11 | -pkg_check_modules(PC_THEORA REQUIRED theora) 12 | -pkg_check_modules(PC_THEORAENC REQUIRED theoraenc) 13 | -pkg_check_modules(PC_THEORADEC REQUIRED theoradec) 14 | +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake) 15 | + 16 | + 17 | +find_package(OGG REQUIRED) 18 | +find_package(THEORA REQUIRED) 19 | 20 | set (LIBRARY_NAME ${PROJECT_NAME}_component) 21 | 22 | @@ -40,17 +40,13 @@ add_library( 23 | 24 | include_directories(include 25 | ${OpenCV_INCLUDE_DIRS} 26 | - ${PC_OGG_INCLUDE_DIRS} 27 | - ${PC_THEORA_INCLUDE_DIRS} 28 | - ${PC_THEORAENC_INCLUDE_DIRS} 29 | - ${PC_THEORADEC_INCLUDE_DIRS}) 30 | + ${THEORA_INCLUDE_DIRS} 31 | + ${OGG_INCLUDE_DIRS}) 32 | 33 | target_link_libraries(${LIBRARY_NAME} 34 | ${OpenCV_LIBRARIES} 35 | - ${PC_OGG_LIBRARIES} 36 | - ${PC_THEORA_LIBRARIES} 37 | - ${PC_THEORAENC_LIBRARIES} 38 | - ${PC_THEORADEC_LIBRARIES} 39 | + ${OGG_LIBRARIES} 40 | + ${THEORA_LIBRARIES} 41 | ) 42 | 43 | ament_target_dependencies(${LIBRARY_NAME} 44 | @@ -61,17 +57,10 @@ ament_target_dependencies(${LIBRARY_NAME} 45 | "sensor_msgs" 46 | ) 47 | 48 | -add_definitions(${PC_OGG_CFLAGS_OTHER} 49 | - ${PC_THEORA_CFLAGS_OTHER} 50 | - ${PC_THEORAENC_CFLAGS_OTHER} 51 | - ${PC_THEORADEC_CFLAGS_OTHER}) 52 | - 53 | add_executable(ogg_saver src/ogg_saver.cpp) 54 | -target_link_libraries(ogg_saver ${PC_THEORA_LIBRARY} 55 | - ${PC_OGG_LIBRARY} 56 | - ${OpenCV_LIBRARIES} 57 | - ${PC_THEORAENC_LIBRARIES} 58 | - ${PC_THEORADEC_LIBRARIES}) 59 | +target_link_libraries(ogg_saver ${THEORA_LIBRARIES} 60 | + ${OGG_LIBRARIES} 61 | + ${OpenCV_LIBRARIES}) 62 | 63 | ament_target_dependencies(ogg_saver 64 | "rclcpp" 65 | diff --git a/cmake/FindOGG.cmake b/cmake/FindOGG.cmake 66 | new file mode 100644 67 | index 0000000..3121d17 68 | --- /dev/null 69 | +++ b/cmake/FindOGG.cmake 70 | @@ -0,0 +1,26 @@ 71 | +find_path(OGG_INCLUDE_DIR 72 | + NAMES 73 | + ogg/ogg.h 74 | + DOC "ogg include directory") 75 | +mark_as_advanced(OGG_INCLUDE_DIR) 76 | + 77 | +find_library(OGG_LIBRARY 78 | + NAMES 79 | + ogg 80 | + DOC "ogg library") 81 | +mark_as_advanced(OGG_LIBRARY) 82 | + 83 | +include(FindPackageHandleStandardArgs) 84 | +find_package_handle_standard_args(OGG REQUIRED_VARS OGG_LIBRARY OGG_INCLUDE_DIR) 85 | + 86 | +if (OGG_FOUND) 87 | + set(OGG_LIBRARIES "${OGG_LIBRARY}") 88 | + set(OGG_INCLUDE_DIRS "${OGG_INCLUDE_DIR}") 89 | + 90 | + if (NOT TARGET OGG::OGG) 91 | + add_library(OGG::OGG UNKNOWN IMPORTED) 92 | + set_target_properties(OGG::OGG PROPERTIES 93 | + IMPORTED_LOCATION "${OGG_LIBRARY}" 94 | + INTERFACE_INCLUDE_DIRECTORIES "${OGG_INCLUDE_DIR}") 95 | + endif () 96 | +endif () 97 | diff --git a/cmake/FindTHEORA.cmake b/cmake/FindTHEORA.cmake 98 | new file mode 100644 99 | index 0000000..73205cf 100 | --- /dev/null 101 | +++ b/cmake/FindTHEORA.cmake 102 | @@ -0,0 +1,67 @@ 103 | +include(CMakeFindDependencyMacro) 104 | + 105 | +find_path(THEORA_INCLUDE_DIR 106 | + NAMES 107 | + theora/theora.h 108 | + DOC "theora include directory") 109 | +mark_as_advanced(THEORA_INCLUDE_DIR) 110 | + 111 | +get_filename_component(computed_theora_root "${THEORA_INCLUDE_DIR}" DIRECTORY) 112 | + 113 | +find_library(THEORA_LIBRARY 114 | + NAMES 115 | + theora 116 | + HINTS 117 | + "${computed_theora_root}/lib" 118 | + "${computed_theora_root}/lib64" 119 | + DOC "theora library") 120 | +mark_as_advanced(THEORA_LIBRARY) 121 | + 122 | +find_library(THEORA_enc_LIBRARY 123 | + NAMES 124 | + theoraenc 125 | + HINTS 126 | + "${computed_theora_root}/lib" 127 | + "${computed_theora_root}/lib64" 128 | + DOC "theora encoding library") 129 | +mark_as_advanced(THEORA_enc_LIBRARY) 130 | + 131 | +find_library(THEORA_dec_LIBRARY 132 | + NAMES 133 | + theoradec 134 | + HINTS 135 | + "${computed_theora_root}/lib" 136 | + "${computed_theora_root}/lib64" 137 | + DOC "theora decoding library") 138 | +mark_as_advanced(THEORA_dec_LIBRARY) 139 | + 140 | +include(FindPackageHandleStandardArgs) 141 | +find_package_handle_standard_args(THEORA 142 | + REQUIRED_VARS THEORA_LIBRARY THEORA_enc_LIBRARY THEORA_dec_LIBRARY THEORA_INCLUDE_DIR) 143 | + 144 | +if (THEORA_FOUND) 145 | + set(THEORA_LIBRARIES "${THEORA_LIBRARY}" "${THEORA_enc_LIBRARY}" "${THEORA_dec_LIBRARY}") 146 | + set(THEORA_INCLUDE_DIRS "${THEORA_INCLUDE_DIR}") 147 | + 148 | + if (NOT TARGET THEORA::THEORA) 149 | + add_library(THEORA::THEORA UNKNOWN IMPORTED) 150 | + set_target_properties(THEORA::THEORA PROPERTIES 151 | + IMPORTED_LOCATION "${THEORA_LIBRARY}" 152 | + INTERFACE_INCLUDE_DIRECTORIES ${THEORA_INCLUDE_DIR}) 153 | + endif () 154 | + 155 | + if (NOT TARGET THEORA::ENC) 156 | + add_library(THEORA::ENC UNKNOWN IMPORTED) 157 | + set_target_properties(THEORA::ENC PROPERTIES 158 | + IMPORTED_LOCATION "${THEORA_enc_LIBRARY}" 159 | + INTERFACE_INCLUDE_DIRECTORIES ${THEORA_INCLUDE_DIR}) 160 | + endif() 161 | + 162 | + if (NOT TARGET THEORA::DEC) 163 | + add_library(THEORA::DEC UNKNOWN IMPORTED) 164 | + set_target_properties(THEORA::DEC PROPERTIES 165 | + IMPORTED_LOCATION "${THEORA_dec_LIBRARY}" 166 | + INTERFACE_INCLUDE_DIRECTORIES ${THEORA_INCLUDE_DIR}) 167 | + endif() 168 | +endif () 169 | + 170 | -------------------------------------------------------------------------------- /patch/ros-galactic-ublox-dgnss-node.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 7e849fe..427c5cf 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -26,6 +26,7 @@ find_package(ublox_ubx_msgs REQUIRED) 6 | find_package(ublox_ubx_interfaces REQUIRED) 7 | 8 | find_package(PkgConfig REQUIRED) 9 | +pkg_check_modules(libudev REQUIRED libudev) 10 | pkg_check_modules(libusb REQUIRED libusb-1.0) 11 | 12 | include_directories(include SYSTEM) 13 | @@ -45,11 +46,14 @@ ament_target_dependencies(ublox_dgnss_components 14 | std_msgs 15 | ublox_ubx_msgs 16 | ublox_ubx_interfaces 17 | + libusb 18 | + libudev 19 | ) 20 | 21 | -target_link_libraries(ublox_dgnss_components 22 | - usb-1.0 23 | -) 24 | +# target_link_libraries(ublox_dgnss_components 25 | +# ${libusb_LIBRARIES} 26 | +# ${libudev_LIBRARIES} 27 | +# ) 28 | 29 | rclcpp_components_register_node(ublox_dgnss_components PLUGIN "ublox_dgnss::UbloxDGNSSNode" EXECUTABLE ublox_dgnss_node) 30 | 31 | -------------------------------------------------------------------------------- /patch/ros-galactic-usb-cam.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 6c7abf3..3737f94 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -15,8 +15,8 @@ ament_auto_find_build_dependencies() 6 | 7 | ## pkg-config libraries 8 | find_package(PkgConfig REQUIRED) 9 | -pkg_check_modules(avcodec libavcodec REQUIRED) 10 | -pkg_check_modules(swscale libswscale REQUIRED) 11 | +pkg_search_module(avcodec libavcodec REQUIRED) 12 | +pkg_search_module(swscale libswscale REQUIRED) 13 | 14 | include_directories(include 15 | ${avcodec_INCLUDE_DIRS} 16 | @@ -35,8 +35,8 @@ ament_auto_add_library(${PROJECT_NAME}_node SHARED 17 | 18 | target_link_libraries(${PROJECT_NAME}_node 19 | ${PROJECT_NAME} 20 | - ${avcodec_LIBRARIES} 21 | - ${swscale_LIBRARIES} 22 | + ${avcodec_LINK_LIBRARIES} 23 | + ${swscale_LINK_LIBRARIES} 24 | # TODO(lucasw) should this have been in libavcodec? 25 | #avutil 26 | ) 27 | -------------------------------------------------------------------------------- /patch/ros-noetic-yaml-cpp-vendor.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 5e0719f..1d8d85e 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -8,8 +8,6 @@ option(FORCE_BUILD_VENDOR_PKG 6 | 7 | find_package(ament_cmake REQUIRED) 8 | 9 | -set(PACKAGE_VERSION "1.0.0") 10 | - 11 | macro(build_yaml_cpp) 12 | set(extra_cmake_args) 13 | 14 | @@ -24,9 +22,7 @@ macro(build_yaml_cpp) 15 | list(APPEND extra_cmake_args "-DYAML_CPP_BUILD_TESTS=OFF") 16 | list(APPEND extra_cmake_args "-DYAML_CPP_BUILD_TOOLS=OFF") 17 | list(APPEND extra_cmake_args "-DYAML_CPP_BUILD_CONTRIB=OFF") 18 | - list(APPEND extra_cmake_args "-DBUILD_SHARED_LIBS=ON") 19 | - list(APPEND extra_cmake_args "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}") 20 | - list(APPEND extra_cmake_args "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}") 21 | + list(APPEND extra_cmake_args "-DYAML_BUILD_SHARED_LIBS=ON") 22 | list(APPEND extra_cmake_args "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") 23 | list(APPEND extra_cmake_args "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}") 24 | 25 | @@ -41,14 +37,9 @@ macro(build_yaml_cpp) 26 | endif() 27 | 28 | include(ExternalProject) 29 | - # This specific version (past the current latest release of 0.5.3) is required to make 30 | - # yaml-cpp relocatable, hopefully it is released again soon. 31 | - # See: https://github.com/jbeder/yaml-cpp/pull/538 32 | - # Latest release fails to compile on recent visual studio (VS2017 v15.8.1) 33 | - # See: https://github.com/jbeder/yaml-cpp/pull/597 34 | - ExternalProject_Add(yaml_cpp-0f9a586 35 | - URL https://github.com/jbeder/yaml-cpp/archive/0f9a586ca1dc29c2ecb8dd715a315b93e3f40f79.zip 36 | - URL_MD5 ec76c27ebd07d5178cbe85b773df8e62 37 | + ExternalProject_Add(yaml_cpp-0.7.0 38 | + URL https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-0.7.0.tar.gz 39 | + URL_MD5 74d646a3cc1b5d519829441db96744f0 40 | TIMEOUT 600 41 | LOG_CONFIGURE ${should_log} 42 | LOG_BUILD ${should_log} 43 | @@ -71,7 +62,7 @@ endmacro() 44 | # NO_CMAKE_PACKAGE_REGISTRY used to avoid finding the library downloaded in WORKSPACE B 45 | # when building workspace A. 46 | # This should only find a system installed yaml-cpp and thus the environment hook isn't needed. 47 | -find_package(yaml-cpp 0.6 QUIET NO_CMAKE_PACKAGE_REGISTRY) 48 | +find_package(yaml-cpp QUIET NO_CMAKE_PACKAGE_REGISTRY) 49 | if(FORCE_BUILD_VENDOR_PKG OR NOT yaml-cpp_FOUND) 50 | build_yaml_cpp() 51 | 52 | diff --git a/yaml_cpp_vendor-extras.cmake.in b/yaml_cpp_vendor-extras.cmake.in 53 | index a09422d..deac98c 100644 54 | --- a/yaml_cpp_vendor-extras.cmake.in 55 | +++ b/yaml_cpp_vendor-extras.cmake.in 56 | @@ -1,11 +1,11 @@ 57 | -find_package(yaml-cpp 0.6 QUIET) 58 | +find_package(yaml-cpp QUIET) 59 | 60 | if(NOT yaml-cpp_FOUND) 61 | # add the local Modules directory to the modules path 62 | if(WIN32) 63 | set(yaml-cpp_DIR "${@PROJECT_NAME@_DIR}/../../../opt/yaml_cpp_vendor/CMake") 64 | else() 65 | - set(yaml-cpp_DIR "${@PROJECT_NAME@_DIR}/../../../opt/yaml_cpp_vendor/lib/cmake/yaml-cpp") 66 | + set(yaml-cpp_DIR "${@PROJECT_NAME@_DIR}/../../../opt/yaml_cpp_vendor/share/cmake/yaml-cpp") 67 | endif() 68 | message(STATUS "Setting yaml-cpp_DIR to: '${yaml-cpp_DIR}'") 69 | 70 | -------------------------------------------------------------------------------- /vinca_linux_aarch64.yaml: -------------------------------------------------------------------------------- 1 | ros_distro: galactic 2 | 3 | # mapping for package keys 4 | conda_index: 5 | - robostack.yaml 6 | - packages-ignore.yaml 7 | 8 | build_number: 1 9 | 10 | mutex_package: ros2-distro-mutex 0.2 galactic 11 | 12 | skip_all_deps: false 13 | 14 | # If full rebuild, the build number of the existing package has 15 | # to match the selected build number for skipping 16 | full_rebuild: true 17 | 18 | packages_skip_by_deps: 19 | # - rviz 20 | # - diagnostic_updater 21 | 22 | packages_remove_from_deps: 23 | - cartographer 24 | - warehouse_ros_mongo 25 | # - stage-ros 26 | # - python_qt_binding 27 | # - joint_state_publisher_gui 28 | # - stage 29 | 30 | skip_existing: 31 | - https://conda.anaconda.org/robostack-experimental/ 32 | 33 | packages_select_by_deps: 34 | - ament-cmake-nose 35 | - rosbridge_suite 36 | - rosbridge-msgs 37 | - rosbridge-library 38 | - robot-localization 39 | - ros_workspace 40 | - ros_environment 41 | - ros_base 42 | - desktop 43 | - nav2-core 44 | - moveit 45 | - navigation2 46 | - velodyne 47 | - sbg_driver 48 | - vision-opencv 49 | - ackermann-msgs 50 | - joint-state-broadcaster 51 | - joint-state-publisher 52 | - joint-trajectory-controller 53 | - xacro 54 | 55 | patch_dir: patch 56 | -------------------------------------------------------------------------------- /vinca_osx.yaml: -------------------------------------------------------------------------------- 1 | ros_distro: galactic 2 | 3 | # mapping for package keys 4 | conda_index: 5 | - robostack.yaml 6 | - packages-ignore.yaml 7 | 8 | build_number: 4 9 | 10 | mutex_package: ros2-distro-mutex 0.2 galactic 11 | 12 | skip_all_deps: false 13 | 14 | # If full rebuild, the build number of the existing package has 15 | # to match the selected build number for skipping 16 | full_rebuild: true 17 | 18 | # build_in_own_azure_stage: 19 | # - ros-galactic-rviz-rendering 20 | 21 | # packages_skip_by_deps: 22 | # - rttest 23 | 24 | packages_remove_from_deps: 25 | - tlsf 26 | - tlsf_cpp 27 | - pendulum_control 28 | - rttest 29 | - rosbridge_test_msgs 30 | 31 | skip_existing: 32 | - https://conda.anaconda.org/robostack-experimental/ 33 | 34 | packages_select_by_deps: 35 | - ros_workspace 36 | - ros_environment 37 | - ros_base 38 | # - desktop 39 | # - moveit 40 | - navigation2 41 | - joint-state-broadcaster 42 | - joint-state-publisher 43 | - joint-trajectory-controller 44 | - xacro 45 | - rosbridge_suite 46 | # - rosbridge-msgs 47 | # - rosbridge-library 48 | # - robot-localization 49 | # - velodyne 50 | # - sbg_driver 51 | # - vision-opencv 52 | # - ackermann-msgs 53 | 54 | patch_dir: patch 55 | 56 | -------------------------------------------------------------------------------- /vinca_osx_arm64.yaml: -------------------------------------------------------------------------------- 1 | ros_distro: galactic 2 | 3 | # mapping for package keys 4 | conda_index: 5 | - robostack.yaml 6 | - packages-ignore.yaml 7 | 8 | build_number: 2 9 | 10 | mutex_package: ros2-distro-mutex 0.2 galactic 11 | 12 | skip_all_deps: false 13 | 14 | # If full rebuild, the build number of the existing package has 15 | # to match the selected build number for skipping 16 | full_rebuild: true 17 | 18 | # build_in_own_azure_stage: 19 | # - ros-galactic-rviz-rendering 20 | 21 | # packages_skip_by_deps: 22 | # - rttest 23 | 24 | packages_remove_from_deps: 25 | - tlsf 26 | - tlsf_cpp 27 | - pendulum_control 28 | - rttest 29 | - rosbridge_test_msgs 30 | 31 | skip_existing: 32 | - https://conda.anaconda.org/robostack-experimental/ 33 | # - /Users/fischert/mambaforge/conda-bld/ 34 | 35 | packages_select_by_deps: 36 | - qt-gui-cpp # needs to be built locally (natively) at the moment! 37 | - ros_workspace 38 | - ros_environment 39 | - ros_base 40 | - desktop 41 | - moveit 42 | - navigation2 43 | - joint-state-broadcaster 44 | - joint-state-publisher 45 | - joint-trajectory-controller 46 | - xacro 47 | - rosbridge_suite 48 | # - rosbridge-msgs 49 | # - rosbridge-library 50 | # - robot-localization 51 | # - velodyne 52 | # - sbg_driver 53 | # - vision-opencv 54 | # - ackermann-msgs 55 | 56 | patch_dir: patch 57 | 58 | -------------------------------------------------------------------------------- /vinca_win.yaml: -------------------------------------------------------------------------------- 1 | ros_distro: galactic 2 | 3 | # mapping for package keys 4 | conda_index: 5 | - robostack.yaml 6 | - packages-ignore.yaml 7 | 8 | build_number: 4 9 | 10 | mutex_package: ros2-distro-mutex 0.2 galactic 11 | 12 | skip_all_deps: false 13 | 14 | # If full rebuild, the build number of the existing package has 15 | # to match the selected build number for skipping 16 | full_rebuild: false 17 | 18 | packages_skip_by_deps: 19 | - iceoryx_utils 20 | - iceoryx_binding_c 21 | - iceoryx_posh 22 | - cyclonedds 23 | - rttest 24 | 25 | packages_remove_from_deps: 26 | - rmw_cyclonedds_cpp 27 | - tlsf 28 | - tlsf_cpp 29 | - pendulum_control 30 | - warehouse_ros_mongo 31 | - pilz-industrial-motion-planner 32 | 33 | skip_existing: 34 | - https://conda.anaconda.org/robostack-experimental/ 35 | 36 | packages_select_by_deps: 37 | - rclpy 38 | - rosbag2-py 39 | # - ros_workspace 40 | # - ros_environment 41 | # - ros_base 42 | # - rviz2 # needs to be built separately as otherwise build timeouts occur 43 | # - desktop # see above 44 | # - moveit 45 | # - navigation2 46 | # - joint-state-broadcaster 47 | # - joint-state-publisher 48 | # - joint-trajectory-controller 49 | # - xacro 50 | # - rosbridge_suite 51 | # - rosbridge-msgs 52 | # - rosbridge-library 53 | # - robot-localization 54 | # - velodyne 55 | # - sbg_driver 56 | # - vision-opencv 57 | # - ackermann-msgs 58 | 59 | 60 | patch_dir: patch 61 | 62 | --------------------------------------------------------------------------------