From 2f652a8263eb96ea030cefec4fce9d844a207c49 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Mon, 27 Nov 2023 18:29:16 +0100 Subject: [PATCH 01/33] Add yarp-ros repo with Unstable branches --- cmake/BuildHumanDynamicsEstimation.cmake | 8 +++++++- cmake/Buildblocktest-yarp-plugins.cmake | 8 ++++++++ cmake/Buildidyntree-yarp-tools.cmake | 6 ++++++ cmake/Buildyarp-ros.cmake | 16 ++++++++++++++++ cmake/RobotologySuperbuildLogic.cmake | 6 ++++++ 5 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 cmake/Buildyarp-ros.cmake diff --git a/cmake/BuildHumanDynamicsEstimation.cmake b/cmake/BuildHumanDynamicsEstimation.cmake index 58a70cbec..b2cec2f2f 100644 --- a/cmake/BuildHumanDynamicsEstimation.cmake +++ b/cmake/BuildHumanDynamicsEstimation.cmake @@ -11,6 +11,11 @@ find_or_build_package(wearables QUIET) find_or_build_package(osqp QUIET) find_or_build_package(OsqpEigen QUIET) +if(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS) + find_or_build_package(yarp-ros QUIET) + list(APPEND HumanDynamicsEstimation_OPTIONAL_DEPS yarp-ros) +endf() + ycm_ep_helper(HumanDynamicsEstimation TYPE GIT STYLE GITHUB REPOSITORY robotology/human-dynamics-estimation.git @@ -23,6 +28,7 @@ ycm_ep_helper(HumanDynamicsEstimation TYPE GIT wearables osqp OsqpEigen - ICUB) + ICUB + ${HumanDynamicsEstimation_OPTIONAL_DEPS}) set(HumanDynamicsEstimation_CONDA_DEPENDENCIES eigen) diff --git a/cmake/Buildblocktest-yarp-plugins.cmake b/cmake/Buildblocktest-yarp-plugins.cmake index 44c47b21c..d6bb6e9c1 100644 --- a/cmake/Buildblocktest-yarp-plugins.cmake +++ b/cmake/Buildblocktest-yarp-plugins.cmake @@ -8,6 +8,13 @@ include(FindOrBuildPackage) find_or_build_package(YARP QUIET) find_or_build_package(blocktestcore QUIET) +set(blocktest-yarp-plugins_OPTIONAL_DEPS "") + +if(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS) + find_or_build_package(yarp-ros QUIET) + list(APPEND blocktest-yarp-plugins_OPTIONAL_DEPS yarp-ros) +endf() + ycm_ep_helper(blocktest-yarp-plugins TYPE GIT STYLE GITHUB REPOSITORY robotology/blocktest-yarp-plugins.git @@ -16,6 +23,7 @@ ycm_ep_helper(blocktest-yarp-plugins TYPE GIT FOLDER src DEPENDS YARP blocktestcore + ${blocktest-yarp-plugins_OPTIONAL_DEPS} CMAKE_ARGS -DENABLE_MSVC_WARNINGS:BOOL=OFF) set(blocktest-yarp-plugins_CONDA_DEPENDENCIES boost-cpp) diff --git a/cmake/Buildidyntree-yarp-tools.cmake b/cmake/Buildidyntree-yarp-tools.cmake index 9c9cb4d58..177674899 100644 --- a/cmake/Buildidyntree-yarp-tools.cmake +++ b/cmake/Buildidyntree-yarp-tools.cmake @@ -7,6 +7,11 @@ find_or_build_package(iDynTree QUIET) find_or_build_package(YARP QUIET) find_or_build_package(ICUB QUIET) +if(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS) + find_or_build_package(yarp-ros QUIET) + list(APPEND idyntree-yarp-tools_OPTIONAL_DEPS yarp-ros) +endf() + ycm_ep_helper(idyntree-yarp-tools TYPE GIT STYLE GITHUB REPOSITORY robotology/idyntree-yarp-tools.git @@ -16,6 +21,7 @@ ycm_ep_helper(idyntree-yarp-tools TYPE GIT DEPENDS iDynTree YARP ICUB + ${idyntree-yarp-tools_OPTIONAL_DEPS} CMAKE_ARGS -DIDYNTREE_YARP_TOOLS_USES_ICUB_MAIN:BOOL=ON -DIDYNTREE_YARP_TOOLS_USES_QT:BOOL=ON -DIDYNTREE_YARP_TOOLS_USES_QT_CHARTS:BOOL=OFF) diff --git a/cmake/Buildyarp-ros.cmake b/cmake/Buildyarp-ros.cmake new file mode 100644 index 000000000..236de903c --- /dev/null +++ b/cmake/Buildyarp-ros.cmake @@ -0,0 +1,16 @@ +# Copyright (C) 2023 Fondazione Istituto Italiano di Tecnologia +# Authors: Silvio Traversaro +# CopyPolicy: Released under the terms of the LGPLv2.1 or later, see LGPL.TXT + +include(YCMEPHelper) +include(FindOrBuildPackage) + +find_or_build_package(YARP QUIET) + +ycm_ep_helper(yarp-ros TYPE GIT + STYLE GITHUB + REPOSITORY robotology/yarp-ros.git + TAG master + COMPONENT core + FOLDER src + DEPENDS YARP) diff --git a/cmake/RobotologySuperbuildLogic.cmake b/cmake/RobotologySuperbuildLogic.cmake index ca77e182d..e1f8ced17 100644 --- a/cmake/RobotologySuperbuildLogic.cmake +++ b/cmake/RobotologySuperbuildLogic.cmake @@ -39,6 +39,12 @@ endif() # Core if(ROBOTOLOGY_ENABLE_CORE) find_or_build_package(YARP) + if(ROBOTOLOGY_PROJECT_TAGS STREQUAL "Unstable") + set(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS ON) + find_or_build_package(yarp-ros) + else() + set(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS OFF) + endif() find_or_build_package(ICUB) find_or_build_package(ICUBcontrib) find_or_build_package(icub-models) From bfbb406d5832e83a0a387b42a15c09a197fe2e2d Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Mon, 27 Nov 2023 18:36:06 +0100 Subject: [PATCH 02/33] Fix --- cmake/BuildHumanDynamicsEstimation.cmake | 2 +- cmake/Buildblocktest-yarp-plugins.cmake | 2 +- cmake/Buildidyntree-yarp-tools.cmake | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/BuildHumanDynamicsEstimation.cmake b/cmake/BuildHumanDynamicsEstimation.cmake index b2cec2f2f..424dd65f5 100644 --- a/cmake/BuildHumanDynamicsEstimation.cmake +++ b/cmake/BuildHumanDynamicsEstimation.cmake @@ -14,7 +14,7 @@ find_or_build_package(OsqpEigen QUIET) if(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS) find_or_build_package(yarp-ros QUIET) list(APPEND HumanDynamicsEstimation_OPTIONAL_DEPS yarp-ros) -endf() +endif() ycm_ep_helper(HumanDynamicsEstimation TYPE GIT STYLE GITHUB diff --git a/cmake/Buildblocktest-yarp-plugins.cmake b/cmake/Buildblocktest-yarp-plugins.cmake index d6bb6e9c1..3de2e4b15 100644 --- a/cmake/Buildblocktest-yarp-plugins.cmake +++ b/cmake/Buildblocktest-yarp-plugins.cmake @@ -13,7 +13,7 @@ set(blocktest-yarp-plugins_OPTIONAL_DEPS "") if(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS) find_or_build_package(yarp-ros QUIET) list(APPEND blocktest-yarp-plugins_OPTIONAL_DEPS yarp-ros) -endf() +endif() ycm_ep_helper(blocktest-yarp-plugins TYPE GIT STYLE GITHUB diff --git a/cmake/Buildidyntree-yarp-tools.cmake b/cmake/Buildidyntree-yarp-tools.cmake index 177674899..2279ddc3c 100644 --- a/cmake/Buildidyntree-yarp-tools.cmake +++ b/cmake/Buildidyntree-yarp-tools.cmake @@ -10,7 +10,7 @@ find_or_build_package(ICUB QUIET) if(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS) find_or_build_package(yarp-ros QUIET) list(APPEND idyntree-yarp-tools_OPTIONAL_DEPS yarp-ros) -endf() +endif() ycm_ep_helper(idyntree-yarp-tools TYPE GIT STYLE GITHUB From 3dc8776943afd55992a5e1b7ec7994f277f77883 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Thu, 29 Feb 2024 14:39:05 +0100 Subject: [PATCH 03/33] Update ProjectsTagsUnstable.cmake --- cmake/ProjectsTagsUnstable.cmake | 1 - 1 file changed, 1 deletion(-) diff --git a/cmake/ProjectsTagsUnstable.cmake b/cmake/ProjectsTagsUnstable.cmake index 42ab7ffb0..1d97d1b53 100644 --- a/cmake/ProjectsTagsUnstable.cmake +++ b/cmake/ProjectsTagsUnstable.cmake @@ -15,7 +15,6 @@ set_tag(casadi_TAG 3.6.3) set_tag(casadi-matlab-bindings_TAG v3.6.3.0) # Robotology projects -set_tag(YARP_TAG yarp-3.9) set_tag(ICUB_TAG devel) set_tag(RobotTestingFramework_TAG devel) set_tag(blockTest_TAG devel) From 6f471bab83ad58582b9f5a9d35e3e9b687377f69 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Thu, 29 Feb 2024 14:58:08 +0100 Subject: [PATCH 04/33] Drop support for Debian Buster 10 when compiling with apt dependencies --- .ci/install_debian.sh | 2 +- .github/workflows/ci.yml | 16 ++-------------- README.md | 3 --- scripts/install_apt_dependencies.sh | 17 +---------------- 4 files changed, 4 insertions(+), 34 deletions(-) diff --git a/.ci/install_debian.sh b/.ci/install_debian.sh index d1f90f8da..cf4189244 100755 --- a/.ci/install_debian.sh +++ b/.ci/install_debian.sh @@ -28,7 +28,7 @@ echo "lsb_dist: ${lsb_dist}" echo "dist_version: ${dist_version}" # Just a limited amount of distros are supported by OSRF repos, for all the other we use the # gazebo packages in regular repos -if [[ ("focal" == "$dist_version" || "buster" == "$dist_version") ]]; then +if [[ ("focal" == "$dist_version") ]]; then mkdir -p /etc/apt/sources.list.d echo deb http://packages.osrfoundation.org/gazebo/$lsb_dist\-stable $dist_version main > /etc/apt/sources.list.d/gazebo-stable.list apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D2486D2DD83DB69272AFE98867170598AF249743 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 981b94ef3..4164f2316 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -187,7 +187,6 @@ jobs: docker_image: - "ubuntu:focal" - "ubuntu:jammy" - - "debian:buster-backports" - "debian:bullseye" project_tags: @@ -229,29 +228,18 @@ jobs: chmod +x ./.ci/install_debian.sh bash ./.ci/install_debian.sh - - name: Install CMake 3.16 [Docker/Debian Buster] - if: matrix.docker_image == 'debian:buster-backports' - run: | - apt-get -y -t buster-backports install cmake - - name: Configure [Docker] run: | mkdir -p build cd build cmake -C ${GITHUB_WORKSPACE}/.ci/initial-cache.gh.cmake -G"${{ matrix.cmake_generator }}" -DNON_INTERACTIVE_BUILD:BOOL=TRUE -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ${{ matrix.project_tags_cmake_options }} .. - - name: Disable profiles that are not supported in docker for now [Docker debian-testing and debian-buster] - if: (matrix.docker_image == 'debian:testing' || matrix.docker_image == 'debian:buster-backports') + - name: Disable profiles that are not supported in docker for now [Docker debian-testing] + if: (matrix.docker_image == 'debian:testing') run: | cd build cmake -DROBOTOLOGY_ENABLE_DYNAMICS_FULL_DEPS:BOOL=OFF -DROBOTOLOGY_USES_MUJOCO:BOOL=OFF -DROBOTOLOGY_ENABLE_ROBOT_TESTING:BOOL=OFF -DROBOTOLOGY_USES_PYTHON:BOOL=OFF . - - name: Disable profiles that are not supported in Debian Buster [Docker debian:buster-backports] - if: (matrix.docker_image == 'debian:buster-backports') - run: | - cd build - cmake -DROBOTOLOGY_ENABLE_TELEOPERATION:BOOL=OFF -DROBOTOLOGY_USES_MUJOCO:BOOL=OFF -DROBOTOLOGY_ENABLE_EVENT_DRIVEN:BOOL=OFF . - - name: Disable MuJoCo for other distros released before 2022 [Docker ubuntu:focal and debian:bullseye] if: (matrix.docker_image == 'ubuntu:focal' || matrix.docker_image == 'debian:bullseye') run: | diff --git a/README.md b/README.md index d4762db4f..464d78be8 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,6 @@ We also support an additional deprecated way of compiling the superbuild, on Win The following apt-based distributions are supported and tested by the robotology-superbuild: * Ubuntu 20.04 (Focal Fossa) * Ubuntu 22.04 (Jammy Jellyfish) -* Debian 10 (Buster) * Debian 11 (Bullseye) Other versions may be working, but they are not checked. @@ -125,7 +124,6 @@ Besides the packages listed in `apt.txt` file, the script `install_apt_dependenc For what regards CMake, the robotology-superbuild requires CMake 3.16 . If you are using a recent Debian-based system such as Ubuntu 20.04, the default CMake is recent enough and you do not need to do further steps. If instead you use an older distro in which the default version of CMake is older, you can easily install a newer CMake version in several ways. For the following distributions, we recommend the following methods: -* Debian 10 : use the CMake in the `buster-backports` repository, following the instructions to install from backports available in [Debian documentation](https://backports.debian.org/Instructions/). More details can be found at https://github.com/robotology/QA/issues/364 . For some [profile](doc/cmake-options.md#profile-cmake-options) or [dependency](doc/cmake-options.md#dependencies-cmake-options) specific CMake option you may need to install additional system dependencies, following the dependency-specific documentation listed in the following. If you do not want to enable an option, you should ignore the corresponding section and continue with the installation process. @@ -136,7 +134,6 @@ Note that the `ROBOTOLOGY_USES_GAZEBO` option is enabled by default, so you shou On Linux with apt dependencies install Gazebo, if you are on: * Ubuntu 20.04 -* Debian Buster 10 follow the instructions available at https://gazebosim.org/tutorials?tut=install_ubuntu . Make sure to install also the development files, i.e. `libgazebo*-dev` on Debian/Ubuntu. diff --git a/scripts/install_apt_dependencies.sh b/scripts/install_apt_dependencies.sh index 98b029227..93e27c1d7 100755 --- a/scripts/install_apt_dependencies.sh +++ b/scripts/install_apt_dependencies.sh @@ -8,19 +8,4 @@ SCRIPT_DIR=$(cd "$(dirname "$BASH_SOURCE")"; cd -P "$(dirname "$(readlink "$BASH xargs -a ${SCRIPT_DIR}/../apt.txt apt-get install -y -# Handle libdc1394 package (see https://github.com/robotology/robotology-superbuild/issues/854) -# On Ubuntu 18.04 or Debian Buster install libdc1394-22-dev, otherwise libdc1394-dev -# Remove once Ubuntu 18.04 and Debian Buster compatibility is dropped -ROBSUP_DISTRO_NAME=$(lsb_release -i | cut -d: -f2 | sed s/'^\t'//) -ROBSUP_DISTRO_VERSION=$(lsb_release -r | cut -d: -f2 | sed s/'^\t'//) -ROBSUP_DISTRO_CODENAME=$(lsb_release -c | cut -d: -f2 | sed s/'^\t'//) - -echo "ROBSUP_DISTRO_NAME: ${ROBSUP_DISTRO_NAME}" -echo "ROBSUP_DISTRO_VERSION: ${ROBSUP_DISTRO_VERSION}" -echo "ROBSUP_DISTRO_CODENAME: ${ROBSUP_DISTRO_CODENAME}" -if [[ ("$ROBSUP_DISTRO_NAME" == "Ubuntu" && "$ROBSUP_DISTRO_VERSION" == "22.04") || ("$ROBSUP_DISTRO_NAME" == "Debian" && "$ROBSUP_DISTRO_CODENAME" == "bullseye") || ("$ROBSUP_DISTRO_NAME" == "Debian" && "$ROBSUP_DISTRO_CODENAME" == "bookworm") || ("$ROBSUP_DISTRO_NAME" == "Debian" && "$ROBSUP_DISTRO_CODENAME" == "sid") ]] -then - apt-get install -y libdc1394-dev -else - apt-get install -y libdc1394-22-dev -fi +apt-get install -y libdc1394-dev From aa021d1ea7c550fec01cf8db700fbf2d90f5df1d Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Thu, 29 Feb 2024 15:06:56 +0100 Subject: [PATCH 05/33] Switch to use CMake from Kitware repo for Ubuntu 20.04 --- .github/workflows/ci.yml | 17 ++++++++++++----- README.md | 6 +++--- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4164f2316..3370bf749 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -177,7 +177,7 @@ jobs: docker-build: name: '[docker:Tags:${{ matrix.project_tags }}@${{ matrix.docker_image }}@${{ matrix.build_type }}]' - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: @@ -228,6 +228,13 @@ jobs: chmod +x ./.ci/install_debian.sh bash ./.ci/install_debian.sh + - name: Install recent CMake [Docker/Ubuntu Focal] + if: matrix.docker_image == 'ubuntu:focal' + run: | + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null + apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' + apt-get install cmake + - name: Configure [Docker] run: | mkdir -p build @@ -258,10 +265,10 @@ jobs: fail-fast: false matrix: build_type: [Release] - os: [ubuntu-20.04, windows-2019] + os: [ubuntu-22.04, windows-2019] project_tags: [Default, Unstable, LatestReleases] include: - - os: ubuntu-20.04 + - os: ubuntu-22.04 build_type: Release cmake_generator: "Ninja" - os: macos-latest @@ -385,8 +392,8 @@ jobs: cmake -C ${ROBOTOLOGY_SUPERBUILD_SOURCE_DIR}/.ci/initial-cache.gh.cmake -A x64 -DCMAKE_TOOLCHAIN_FILE=C:/robotology/vcpkg/scripts/buildsystems/vcpkg.cmake -DROBOTOLOGY_USES_MATLAB:BOOL=OFF -DYCM_BOOTSTRAP_VERBOSE=ON -DYCM_EP_INSTALL_DIR=C:/robotology/robotology -DNON_INTERACTIVE_BUILD:BOOL=TRUE -DCMAKE_BUILD_TYPE=Debug ${{ matrix.project_tags_cmake_options }} .. cmake -DROBOTOLOGY_ENABLE_TELEOPERATION:BOOL=OFF . - - name: Disable options unsupported on Ubuntu 20.04 and vcpkg - if: contains(matrix.os, '20.04') || contains(matrix.os, 'windows') + - name: Disable options unsupported on vcpkg + if: ontains(matrix.os, 'windows') shell: bash run: | cd ${ROBOTOLOGY_SUPERBUILD_SOURCE_DIR} diff --git a/README.md b/README.md index 464d78be8..9f095c55e 100644 --- a/README.md +++ b/README.md @@ -121,10 +121,10 @@ sudo bash ./scripts/install_apt_dependencies.sh Besides the packages listed in `apt.txt` file, the script `install_apt_dependencies.sh` also installs some other packages depending on the distribution used, please inspect the script for more information. -For what regards CMake, the robotology-superbuild requires CMake 3.16 . If you are using a recent Debian-based system such as Ubuntu 20.04, the default CMake is recent enough and you do not need to do further steps. +For what regards CMake, the robotology-superbuild requires CMake 3.16 . If you are using a recent Debian-based system such as Ubuntu 22.04, the default CMake is recent enough and you do not need to do further steps. -If instead you use an older distro in which the default version of CMake is older, you can easily install a newer CMake version in several ways. For the following distributions, we recommend the following methods: -More details can be found at https://github.com/robotology/QA/issues/364 . +If instead you use an older distro in which the default version of CMake is older, you can easily install a newer CMake version in several ways. For the following distributions, we recommend the following methods: +* Ubuntu 20.04 : install a recent CMake via Kitware APT Repository, see https://apt.kitware.com/ . For some [profile](doc/cmake-options.md#profile-cmake-options) or [dependency](doc/cmake-options.md#dependencies-cmake-options) specific CMake option you may need to install additional system dependencies, following the dependency-specific documentation listed in the following. If you do not want to enable an option, you should ignore the corresponding section and continue with the installation process. From 5338a5e6638ec909979343bebd6d551e3b810b86 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Thu, 29 Feb 2024 15:10:45 +0100 Subject: [PATCH 06/33] Update ci.yml --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3370bf749..b219d7837 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -231,7 +231,8 @@ jobs: - name: Install recent CMake [Docker/Ubuntu Focal] if: matrix.docker_image == 'ubuntu:focal' run: | - wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null + echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' apt-get install cmake From 2fb1a94cf2fbe47345c50cda8a8134520c9a7517 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Thu, 29 Feb 2024 15:16:59 +0100 Subject: [PATCH 07/33] Update ci.yml --- .github/workflows/ci.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b219d7837..50914e1fc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -228,14 +228,6 @@ jobs: chmod +x ./.ci/install_debian.sh bash ./.ci/install_debian.sh - - name: Install recent CMake [Docker/Ubuntu Focal] - if: matrix.docker_image == 'ubuntu:focal' - run: | - wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null - echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' - apt-get install cmake - - name: Configure [Docker] run: | mkdir -p build From 712a0a10f6e814a1ab72dc65a5f2e330a84baa93 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Thu, 29 Feb 2024 15:30:26 +0100 Subject: [PATCH 08/33] Update ci.yml --- .github/workflows/ci.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 50914e1fc..0ba9e32a0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -228,6 +228,14 @@ jobs: chmod +x ./.ci/install_debian.sh bash ./.ci/install_debian.sh + - name: Install recent CMake [Docker/Ubuntu Focal] + if: matrix.docker_image == 'ubuntu:focal' + run: | + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null + echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null + apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' + apt-get install cmake + - name: Configure [Docker] run: | mkdir -p build @@ -386,7 +394,7 @@ jobs: cmake -DROBOTOLOGY_ENABLE_TELEOPERATION:BOOL=OFF . - name: Disable options unsupported on vcpkg - if: ontains(matrix.os, 'windows') + if: contains(matrix.os, 'windows') shell: bash run: | cd ${ROBOTOLOGY_SUPERBUILD_SOURCE_DIR} From 550c33bc99a0896203ddc875a81f7d5d8b6872fc Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 11:51:44 +0200 Subject: [PATCH 09/33] Create Buildyarp-ros-devices.cmake --- cmake/Buildyarp-ros-devices.cmake | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 cmake/Buildyarp-ros-devices.cmake diff --git a/cmake/Buildyarp-ros-devices.cmake b/cmake/Buildyarp-ros-devices.cmake new file mode 100644 index 000000000..9ae0a93c1 --- /dev/null +++ b/cmake/Buildyarp-ros-devices.cmake @@ -0,0 +1,14 @@ +# Copyright (C) Fondazione Istituto Italiano di Tecnologia + +include(YCMEPHelper) +include(FindOrBuildPackage) + +find_or_build_package(YARP QUIET) + +ycm_ep_helper(yarp-ros-devices TYPE GIT + STYLE GITHUB + REPOSITORY robotology/yarp-ros-devices.git + TAG master + COMPONENT core + FOLDER src + DEPENDS YARP) From a758cdd70a6596af29661f608b40f78574b8518f Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 12:00:46 +0200 Subject: [PATCH 10/33] Add ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS option --- cmake/RobotologySuperbuildLogic.cmake | 5 +---- cmake/RobotologySuperbuildOptions.cmake | 12 +++++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/cmake/RobotologySuperbuildLogic.cmake b/cmake/RobotologySuperbuildLogic.cmake index 0ace11ddf..073aafd65 100644 --- a/cmake/RobotologySuperbuildLogic.cmake +++ b/cmake/RobotologySuperbuildLogic.cmake @@ -66,11 +66,8 @@ endif() # Core if(ROBOTOLOGY_ENABLE_CORE) find_or_build_package(YARP) - if(ROBOTOLOGY_PROJECT_TAGS STREQUAL "Unstable") - set(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS ON) + if(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS) find_or_build_package(yarp-ros) - else() - set(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS OFF) endif() find_or_build_package(yarp-devices-ros) find_or_build_package(ICUB) diff --git a/cmake/RobotologySuperbuildOptions.cmake b/cmake/RobotologySuperbuildOptions.cmake index 3e81c7f1b..15fc20bdf 100644 --- a/cmake/RobotologySuperbuildOptions.cmake +++ b/cmake/RobotologySuperbuildOptions.cmake @@ -109,11 +109,21 @@ if(WIN32 AND DEFINED ENV{CONDA_PREFIX}) list(REMOVE_ITEM CMAKE_CONFIGURATION_TYPES "Debug") endif() endif() - set(ROBOTOLOGY_PROJECT_TAGS "Stable" CACHE STRING "The tags to be used for the robotology projects: Stable, Unstable, LatestRelease or Custom. This can be changed only before the first configuration.") set(ROBOTOLOGY_PROJECT_TAGS_CUSTOM_FILE CACHE FILEPATH "If ROBOTOLOGY_PROJECT_TAGS is custom, this file will be loaded to specify the tags of the projects to use.") set_property(CACHE ROBOTOLOGY_PROJECT_TAGS PROPERTY STRINGS "Stable" "Unstable" "LatestRelease" "Custom") + +# For now, only YARP master (used in Unstable ROBOTOLOGY_PROJECT_TAGS) requires to have separate yarp-ros and yarp-ros-devices +# However, we keep ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS as a user selectable option as some users could use ROBOTOLOGY_PROJECT_TAGS set to +# Stable or a given release, and manually change the YARP to a version that does not contain yarp-ros functionality +if(ROBOTOLOGY_PROJECT_TAGS STREQUAL "Unstable") + set(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS_DEFAULT_VALUE ON) +else() + set(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS_DEFAULT_VALUE OFF) +endif() +option(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS "If ON, build yarp-ros and yarp-ros-devices repository" ${ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS_DEFAULT_VALUE}) + if(ROBOTOLOGY_PROJECT_TAGS STREQUAL "Stable") include(ProjectsTagsStable) elseif(ROBOTOLOGY_PROJECT_TAGS STREQUAL "Unstable") From 6acf91ebef02c5e6794cf19ba6740101c9a2f544 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 12:55:35 +0200 Subject: [PATCH 11/33] Delete cmake/Buildyarp-ros-devices.cmake --- cmake/Buildyarp-ros-devices.cmake | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 cmake/Buildyarp-ros-devices.cmake diff --git a/cmake/Buildyarp-ros-devices.cmake b/cmake/Buildyarp-ros-devices.cmake deleted file mode 100644 index 9ae0a93c1..000000000 --- a/cmake/Buildyarp-ros-devices.cmake +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright (C) Fondazione Istituto Italiano di Tecnologia - -include(YCMEPHelper) -include(FindOrBuildPackage) - -find_or_build_package(YARP QUIET) - -ycm_ep_helper(yarp-ros-devices TYPE GIT - STYLE GITHUB - REPOSITORY robotology/yarp-ros-devices.git - TAG master - COMPONENT core - FOLDER src - DEPENDS YARP) From 3ed7130a94141ca867e998b78085ab70d0f5a83b Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 12:56:22 +0200 Subject: [PATCH 12/33] Update Buildyarp-devices-ros.cmake --- cmake/Buildyarp-devices-ros.cmake | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cmake/Buildyarp-devices-ros.cmake b/cmake/Buildyarp-devices-ros.cmake index f89dbfaa8..a4e9d3e1e 100644 --- a/cmake/Buildyarp-devices-ros.cmake +++ b/cmake/Buildyarp-devices-ros.cmake @@ -6,10 +6,15 @@ include(FindOrBuildPackage) find_or_build_package(YARP QUIET) +if(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS) + find_or_build_package(yarp-ros QUIET) + list(APPEND YDR_OPTIONAL_DEPS yarp-ros) +endif() + ycm_ep_helper(yarp-devices-ros TYPE GIT STYLE GITHUB REPOSITORY robotology/yarp-devices-ros.git TAG master COMPONENT core FOLDER src - DEPENDS YARP) + DEPENDS YARP ${YDR_OPTIONAL_DEPS}) From 1170061e30329db48413b504e4182aa9a5c9b16c Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 13:04:30 +0200 Subject: [PATCH 13/33] Update ci.yml --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e173891c5..6e5b9cffa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -234,6 +234,7 @@ jobs: - name: Install recent CMake [Docker/Ubuntu Focal] if: matrix.docker_image == 'ubuntu:20.04' run: | + apt-get install ca-certificates software-properties-common wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' From 6774235dc534635fc15c0ec81e5d47b58d909542 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 13:17:46 +0200 Subject: [PATCH 14/33] Update ci.yml --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6e5b9cffa..6a931a626 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -234,11 +234,11 @@ jobs: - name: Install recent CMake [Docker/Ubuntu Focal] if: matrix.docker_image == 'ubuntu:20.04' run: | - apt-get install ca-certificates software-properties-common + apt-get install -y ca-certificates software-properties-common wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' - apt-get install cmake + apt-get install -y cmake - name: Configure [Docker] run: | From 7c3dbd5a44475f62bd00d4e323b1effca42e8858 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 13:26:55 +0200 Subject: [PATCH 15/33] Update install_debian.sh --- .ci/install_debian.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.ci/install_debian.sh b/.ci/install_debian.sh index bdbe9dd74..b0bc8bf7b 100755 --- a/.ci/install_debian.sh +++ b/.ci/install_debian.sh @@ -30,9 +30,8 @@ else apt-get install -y octave-dev fi -# Just a limited amount of distros are supported by OSRF repos, for all the other we use the -# gazebo packages in regular repos -if [[ ("focal" == "$dist_version") ]]; then +# We enable osrf's gazebo binaries only on Ubuntu +if [[ ("ubuntu" == "$lsb_dist") ]]; then mkdir -p /etc/apt/sources.list.d echo deb http://packages.osrfoundation.org/gazebo/$lsb_dist\-stable $dist_version main > /etc/apt/sources.list.d/gazebo-stable.list apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D2486D2DD83DB69272AFE98867170598AF249743 From c44c0029fe8d373b54160dc547e04e5584b86d39 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 13:33:31 +0200 Subject: [PATCH 16/33] Update ci.yml --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a931a626..3bd7f9870 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -234,7 +234,7 @@ jobs: - name: Install recent CMake [Docker/Ubuntu Focal] if: matrix.docker_image == 'ubuntu:20.04' run: | - apt-get install -y ca-certificates software-properties-common + apt-get install -y ca-certificates software-properties-common gpg wget wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' From a94be9ddf1878b3abf209a57c8a6c1f4b07046da Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 13:34:01 +0200 Subject: [PATCH 17/33] Update ci.yml --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3bd7f9870..e1560b6d4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -234,6 +234,7 @@ jobs: - name: Install recent CMake [Docker/Ubuntu Focal] if: matrix.docker_image == 'ubuntu:20.04' run: | + apt-get -y update apt-get install -y ca-certificates software-properties-common gpg wget wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null From 20f6d01f29918b7c6df886bdf0baac7bd16d0b6b Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 13:50:17 +0200 Subject: [PATCH 18/33] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9bc41955a..e68b33478 100644 --- a/README.md +++ b/README.md @@ -121,10 +121,11 @@ sudo bash ./scripts/install_apt_dependencies.sh Besides the packages listed in `apt.txt` file, the script `install_apt_dependencies.sh` also installs some other packages depending on the distribution used, please inspect the script for more information. -For what regards CMake, the robotology-superbuild requires CMake 3.16 . If you are using a recent Debian-based system such as Ubuntu 22.04, the default CMake is recent enough and you do not need to do further steps. +For what regards CMake, the robotology-superbuild requires CMake 3.19 . If you are using a recent Debian-based system such as Ubuntu 22.04, the default CMake is recent enough and you do not need to do further steps. If instead you use an older distro in which the default version of CMake is older, you can easily install a newer CMake version in several ways. For the following distributions, we recommend the following methods: -* Ubuntu 20.04 : install a recent CMake via Kitware APT Repository, see https://apt.kitware.com/ . +* Ubuntu 20.04 "Focal" : install a recent CMake via Kitware APT Repository, see https://apt.kitware.com/ . +* Debian 11 "Bullseye" : install a recent CMake via Debian Bullseye Backports, see https://backports.debian.org/Instructions/ . For some [profile](doc/cmake-options.md#profile-cmake-options) or [dependency](doc/cmake-options.md#dependencies-cmake-options) specific CMake option you may need to install additional system dependencies, following the dependency-specific documentation listed in the following. If you do not want to enable an option, you should ignore the corresponding section and continue with the installation process. From 16fcbd7abb0a86be16c5352fb626a42313b9e8cf Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 13:51:58 +0200 Subject: [PATCH 19/33] Update ci.yml --- .github/workflows/ci.yml | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e1560b6d4..cf30952cc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -190,7 +190,6 @@ jobs: - "ubuntu:20.04" - "ubuntu:22.04" - "ubuntu:24.04" - - "debian:bullseye" project_tags: - Default @@ -218,14 +217,6 @@ jobs: rm -rf /host_usr_local/lib/android rm -rf /host_usr_local/lib/node_modules - - name: Upgrade apt packages Debian Testing [Debian Testing] - if: matrix.docker_image == 'debian:testing' - run: | - # The Debian testing docker image is generated only - # once a month, so to actually test with the latest - # packages we need to manually upgrade the packages - apt-get -y upgrade - - name: Dependencies [Docker] run: | chmod +x ./.ci/install_debian.sh @@ -247,15 +238,8 @@ jobs: cd build cmake -C ${GITHUB_WORKSPACE}/.ci/initial-cache.gh.cmake -G"${{ matrix.cmake_generator }}" -DNON_INTERACTIVE_BUILD:BOOL=TRUE -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ${{ matrix.project_tags_cmake_options }} .. - - name: Disable profiles that are not supported in Debian [Docker debian-testing and debian-buster] - if: (matrix.docker_image == 'debian:testing' || matrix.docker_image == 'debian:buster-backports') - run: | - cd build - cmake -DROBOTOLOGY_ENABLE_DYNAMICS_FULL_DEPS:BOOL=OFF -DROBOTOLOGY_USES_MUJOCO:BOOL=OFF -DROBOTOLOGY_ENABLE_ROBOT_TESTING:BOOL=OFF -DROBOTOLOGY_USES_PYTHON:BOOL=OFF -DROBOTOLOGY_USES_GZ:BOOL=OFF . - - - - name: Disable MuJoCo and gz-sim for distros released before 2022 [Docker ubuntu:20.04 and debian:bullseye] - if: (matrix.docker_image == 'ubuntu:20.04' || matrix.docker_image == 'debian:bullseye') + - name: Disable MuJoCo and gz-sim for distros released before 2022 [Docker ubuntu:20.04] + if: (matrix.docker_image == 'ubuntu:20.04') run: | cd build cmake -DROBOTOLOGY_USES_MUJOCO:BOOL=OFF -DROBOTOLOGY_USES_GZ:BOOL=OFF . From 4ce5993d7cc821a71619a03fee1b73b93ba1f513 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 13:54:32 +0200 Subject: [PATCH 20/33] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e68b33478..8847f11f5 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ We also support an additional deprecated way of compiling the superbuild, on Win The following apt-based distributions are supported and tested by the robotology-superbuild: * Ubuntu 20.04 (Focal Fossa) * Ubuntu 22.04 (Jammy Jellyfish) -* Debian 11 (Bullseye) +* Ubuntu 24.04 (Noble Numbat) Other versions may be working, but they are not checked. @@ -147,7 +147,7 @@ If you are on Ubuntu 24.04, please use conda if you want to install Gazebo Class #### `ROBOTOLOGY_USES_GZ` -To install Modern Gazebo (gz-sim) on Ubuntu Jammy (22.04) and Noble (20.04) and other supported Debian/Ubuntu systems, follow the instructions available at https://gazebosim.org/docs/harmonic/install_ubuntu#binary-installation-on-ubuntu . +To install Modern Gazebo (gz-sim) on Ubuntu Jammy (22.04) and Noble (24.04) and other supported Debian/Ubuntu systems, follow the instructions available at https://gazebosim.org/docs/harmonic/install_ubuntu#binary-installation-on-ubuntu . #### `ROBOTOLOGY_USES_PYTHON` From e84a9f2dee655986c14877e5fa2690e433d14c8f Mon Sep 17 00:00:00 2001 From: Silvio Date: Tue, 30 Jul 2024 14:41:38 +0200 Subject: [PATCH 21/33] fixup --- cmake/RobotologySuperbuildOptions.cmake | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/cmake/RobotologySuperbuildOptions.cmake b/cmake/RobotologySuperbuildOptions.cmake index 15fc20bdf..d66744943 100644 --- a/cmake/RobotologySuperbuildOptions.cmake +++ b/cmake/RobotologySuperbuildOptions.cmake @@ -117,12 +117,11 @@ set_property(CACHE ROBOTOLOGY_PROJECT_TAGS PROPERTY STRINGS "Stable" "Unstable" # For now, only YARP master (used in Unstable ROBOTOLOGY_PROJECT_TAGS) requires to have separate yarp-ros and yarp-ros-devices # However, we keep ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS as a user selectable option as some users could use ROBOTOLOGY_PROJECT_TAGS set to # Stable or a given release, and manually change the YARP to a version that does not contain yarp-ros functionality +option(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS "If ON, build yarp-ros and yarp-ros-devices repository" OFF) if(ROBOTOLOGY_PROJECT_TAGS STREQUAL "Unstable") - set(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS_DEFAULT_VALUE ON) -else() - set(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS_DEFAULT_VALUE OFF) + # If ROBOTOLOGY_PROJECT_TAGS is Unstable, force the value to be ON + set(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS_DEFAULT_VALUE ON CACHE BOOL "" ON) endif() -option(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS "If ON, build yarp-ros and yarp-ros-devices repository" ${ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS_DEFAULT_VALUE}) if(ROBOTOLOGY_PROJECT_TAGS STREQUAL "Stable") include(ProjectsTagsStable) From bba78d3ea48b46652aba090a547cbb1a300bb7dc Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 15:09:17 +0200 Subject: [PATCH 22/33] Update RobotologySuperbuildOptions.cmake --- cmake/RobotologySuperbuildOptions.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/RobotologySuperbuildOptions.cmake b/cmake/RobotologySuperbuildOptions.cmake index d66744943..55b03c7c5 100644 --- a/cmake/RobotologySuperbuildOptions.cmake +++ b/cmake/RobotologySuperbuildOptions.cmake @@ -120,7 +120,7 @@ set_property(CACHE ROBOTOLOGY_PROJECT_TAGS PROPERTY STRINGS "Stable" "Unstable" option(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS "If ON, build yarp-ros and yarp-ros-devices repository" OFF) if(ROBOTOLOGY_PROJECT_TAGS STREQUAL "Unstable") # If ROBOTOLOGY_PROJECT_TAGS is Unstable, force the value to be ON - set(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS_DEFAULT_VALUE ON CACHE BOOL "" ON) + set(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS_DEFAULT_VALUE ON CACHE BOOL "" FORCE) endif() if(ROBOTOLOGY_PROJECT_TAGS STREQUAL "Stable") From 7d809d8fd494c72c3e8eb0679ae1dd07db73ee30 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 30 Jul 2024 15:36:41 +0200 Subject: [PATCH 23/33] Update RobotologySuperbuildOptions.cmake --- cmake/RobotologySuperbuildOptions.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/RobotologySuperbuildOptions.cmake b/cmake/RobotologySuperbuildOptions.cmake index 55b03c7c5..df090ab2d 100644 --- a/cmake/RobotologySuperbuildOptions.cmake +++ b/cmake/RobotologySuperbuildOptions.cmake @@ -120,7 +120,7 @@ set_property(CACHE ROBOTOLOGY_PROJECT_TAGS PROPERTY STRINGS "Stable" "Unstable" option(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS "If ON, build yarp-ros and yarp-ros-devices repository" OFF) if(ROBOTOLOGY_PROJECT_TAGS STREQUAL "Unstable") # If ROBOTOLOGY_PROJECT_TAGS is Unstable, force the value to be ON - set(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS_DEFAULT_VALUE ON CACHE BOOL "" FORCE) + set(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS ON CACHE BOOL "" FORCE) endif() if(ROBOTOLOGY_PROJECT_TAGS STREQUAL "Stable") From ad47361a21fe4b9ede0a3d29c495fd9b69e5b0e8 Mon Sep 17 00:00:00 2001 From: Silvio Date: Tue, 30 Jul 2024 19:35:17 +0200 Subject: [PATCH 24/33] fixup --- cmake/BuildHumanDynamicsEstimation.cmake | 2 +- cmake/Buildblocktest-yarp-plugins.cmake | 4 ++-- cmake/Buildidyntree-yarp-tools.cmake | 2 +- cmake/Buildyarp-devices-ros.cmake | 2 +- cmake/RobotologySuperbuildLogic.cmake | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cmake/BuildHumanDynamicsEstimation.cmake b/cmake/BuildHumanDynamicsEstimation.cmake index 424dd65f5..be0cca501 100644 --- a/cmake/BuildHumanDynamicsEstimation.cmake +++ b/cmake/BuildHumanDynamicsEstimation.cmake @@ -11,7 +11,7 @@ find_or_build_package(wearables QUIET) find_or_build_package(osqp QUIET) find_or_build_package(OsqpEigen QUIET) -if(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS) +if(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS) find_or_build_package(yarp-ros QUIET) list(APPEND HumanDynamicsEstimation_OPTIONAL_DEPS yarp-ros) endif() diff --git a/cmake/Buildblocktest-yarp-plugins.cmake b/cmake/Buildblocktest-yarp-plugins.cmake index 3de2e4b15..457a4ba0f 100644 --- a/cmake/Buildblocktest-yarp-plugins.cmake +++ b/cmake/Buildblocktest-yarp-plugins.cmake @@ -10,7 +10,7 @@ find_or_build_package(blocktestcore QUIET) set(blocktest-yarp-plugins_OPTIONAL_DEPS "") -if(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS) +if(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS) find_or_build_package(yarp-ros QUIET) list(APPEND blocktest-yarp-plugins_OPTIONAL_DEPS yarp-ros) endif() @@ -25,5 +25,5 @@ ycm_ep_helper(blocktest-yarp-plugins TYPE GIT blocktestcore ${blocktest-yarp-plugins_OPTIONAL_DEPS} CMAKE_ARGS -DENABLE_MSVC_WARNINGS:BOOL=OFF) - + set(blocktest-yarp-plugins_CONDA_DEPENDENCIES boost-cpp) diff --git a/cmake/Buildidyntree-yarp-tools.cmake b/cmake/Buildidyntree-yarp-tools.cmake index 2279ddc3c..b802d565f 100644 --- a/cmake/Buildidyntree-yarp-tools.cmake +++ b/cmake/Buildidyntree-yarp-tools.cmake @@ -7,7 +7,7 @@ find_or_build_package(iDynTree QUIET) find_or_build_package(YARP QUIET) find_or_build_package(ICUB QUIET) -if(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS) +if(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS) find_or_build_package(yarp-ros QUIET) list(APPEND idyntree-yarp-tools_OPTIONAL_DEPS yarp-ros) endif() diff --git a/cmake/Buildyarp-devices-ros.cmake b/cmake/Buildyarp-devices-ros.cmake index a4e9d3e1e..ed1489d48 100644 --- a/cmake/Buildyarp-devices-ros.cmake +++ b/cmake/Buildyarp-devices-ros.cmake @@ -6,7 +6,7 @@ include(FindOrBuildPackage) find_or_build_package(YARP QUIET) -if(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS) +if(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS) find_or_build_package(yarp-ros QUIET) list(APPEND YDR_OPTIONAL_DEPS yarp-ros) endif() diff --git a/cmake/RobotologySuperbuildLogic.cmake b/cmake/RobotologySuperbuildLogic.cmake index 073aafd65..b195e5d37 100644 --- a/cmake/RobotologySuperbuildLogic.cmake +++ b/cmake/RobotologySuperbuildLogic.cmake @@ -66,7 +66,7 @@ endif() # Core if(ROBOTOLOGY_ENABLE_CORE) find_or_build_package(YARP) - if(ROBOTOLOGY_SUPERBUILD_BUILD_SEPARATE_YARP_ROS) + if(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS) find_or_build_package(yarp-ros) endif() find_or_build_package(yarp-devices-ros) @@ -207,7 +207,7 @@ if(ROBOTOLOGY_ENABLE_R1_ROBOT) find_or_build_package(cer) endif() -# Dummy option used to only clone repos to update them +# Dummy option used to only clone repos to update them # via update-latest-releases.yml GitHub Action if(ROBOTOLOGY_INTERNAL_CLONE_ALL_REPOS_FOR_UPDATE) find_or_build_package(icub-firmware) From b72b14dc4b2fb6ef36b6beb005d29bec68657697 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Fri, 9 Aug 2024 16:59:28 +0200 Subject: [PATCH 25/33] Update Buildbipedal-locomotion-framework.cmake --- cmake/Buildbipedal-locomotion-framework.cmake | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmake/Buildbipedal-locomotion-framework.cmake b/cmake/Buildbipedal-locomotion-framework.cmake index 964219f46..f601e59e0 100644 --- a/cmake/Buildbipedal-locomotion-framework.cmake +++ b/cmake/Buildbipedal-locomotion-framework.cmake @@ -44,6 +44,11 @@ if (ROBOTOLOGY_ENABLE_DYNAMICS_FULL_DEPS) endif() endif() +if(ROBOTOLOGY_BUILD_SEPARATE_YARP_ROS) + find_or_build_package(yarp-ros QUIET) + list(APPEND bipedal-locomotion-framework_DEPENDS yarp-ros) +endif() + # For what regards Python installation, the options changes depending # on whater we are installing blf in the superbuild, or we are generating a # conda package on Windows as in that case the installation location From 9b6fe9db703a7f20860eaa45208c858b8421042b Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Thu, 10 Oct 2024 15:16:41 +0200 Subject: [PATCH 26/33] Fix PATH definition for yarp-ros --- .github/workflows/ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 25f8f441b..7b2177a85 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -420,6 +420,10 @@ jobs: cd build # Make sure that vcpkg's ace .dll are on the PATH source /c/robotology/scripts/setup-deps.sh + # Make sure that YARP's dll are in the path in case some repos use a code generator + # in their build that uses YARP's dll + # https://github.com/robotology/robotology-superbuild/pull/1547#issuecomment-2278151057 + export PATH=$PATH:${ROBOTOLOGY_SUPERBUILD_SOURCE_DIR}/build/install/bin cmake --build . --config Release # Cleanup build directories to avoid to fill the disk rm -rf ./robotology @@ -433,6 +437,10 @@ jobs: # Make sure that vcpkg's ace .dll are on the PATH source /c/robotology/scripts/setup-deps.sh cmake --build . --config Debug + # Make sure that YARP's dll are in the path in case some repos use a code generator + # in their build that uses YARP's dll + # https://github.com/robotology/robotology-superbuild/pull/1547#issuecomment-2278151057 + export PATH=$PATH:${ROBOTOLOGY_SUPERBUILD_SOURCE_DIR}/build/install/bin # Cleanup build directories to avoid to fill the disk rm -rf ./robotology From 60a89d62d0e00403c65e844e154496476c71ec0a Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Fri, 11 Oct 2024 15:13:52 +0200 Subject: [PATCH 27/33] Add back yarp-ros dependency in HDE --- cmake/BuildHumanDynamicsEstimation.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmake/BuildHumanDynamicsEstimation.cmake b/cmake/BuildHumanDynamicsEstimation.cmake index ca148e0c8..ffb3ea0bf 100644 --- a/cmake/BuildHumanDynamicsEstimation.cmake +++ b/cmake/BuildHumanDynamicsEstimation.cmake @@ -48,7 +48,8 @@ ycm_ep_helper(HumanDynamicsEstimation TYPE GIT osqp OsqpEigen ICUB - robometry) + robometry + ${HumanDynamicsEstimation_OPTIONAL_DEPS}) set(HumanDynamicsEstimation_CONDA_PKG_NAME human-dynamics-estimation) set(HumanDynamicsEstimation_CONDA_PKG_CONDA_FORGE_OVERRIDE ON) From bf679e7c941c4db6f85e21acbfe7473466e7b6b0 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 29 Oct 2024 15:59:06 +0100 Subject: [PATCH 28/33] Fix vcpkg workaround for yarp-ros --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7b2177a85..cb66d143e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -436,11 +436,11 @@ jobs: cd build # Make sure that vcpkg's ace .dll are on the PATH source /c/robotology/scripts/setup-deps.sh - cmake --build . --config Debug # Make sure that YARP's dll are in the path in case some repos use a code generator # in their build that uses YARP's dll # https://github.com/robotology/robotology-superbuild/pull/1547#issuecomment-2278151057 export PATH=$PATH:${ROBOTOLOGY_SUPERBUILD_SOURCE_DIR}/build/install/bin + cmake --build . --config Debug # Cleanup build directories to avoid to fill the disk rm -rf ./robotology From 1358f18d49ea51306d4bc92f226c1b45ef96ff39 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 29 Oct 2024 16:11:24 +0100 Subject: [PATCH 29/33] Source setup.sh before build in conda CI --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cb66d143e..21cd4a031 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -167,6 +167,10 @@ jobs: # Using b instead of build as a temporary workaround to https://github.com/robotology/robotology-superbuild/issues/1542#issuecomment-1827682957 # Go back to build once https://github.com/robotology/yarp/pull/3057 is merged and released cd b + # Make sure that (on Windows) YARP's dll are in the path in case some repos use a code generator + # in their build that uses YARP's dll + # https://github.com/robotology/robotology-superbuild/pull/1547#issuecomment-2278151057 + source ./install/share/robotology-superbuild/setup.sh cmake --build . --config ${{ matrix.build_type }} # Skip on Apple Silicon https://github.com/robotology/robotology-superbuild/issues/1625 From b40e8809c5852bc032941c10b78954c2fa0a20f8 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 29 Oct 2024 16:15:42 +0100 Subject: [PATCH 30/33] Document that the setup script needs to be called before running the build --- README.md | 1 + doc/conda-forge.md | 2 ++ 2 files changed, 3 insertions(+) diff --git a/README.md b/README.md index e922dffa7..270590ae5 100644 --- a/README.md +++ b/README.md @@ -179,6 +179,7 @@ cd robotology-superbuild mkdir build cd build ccmake ../ +source ./install/share/robotology-superbuild.sh make ``` You can configure the ccmake environment if you know you will use some particular set of software (put them in "ON"). diff --git a/doc/conda-forge.md b/doc/conda-forge.md index 140bc126f..532561544 100644 --- a/doc/conda-forge.md +++ b/doc/conda-forge.md @@ -220,6 +220,7 @@ cd robotology-superbuild mkdir build cd build cmake .. +source ./install/share/robotology-superbuild/setup.sh cmake --build . --config Release ~~~ @@ -229,6 +230,7 @@ cd robotology-superbuild mkdir build cd build cmake -G"Visual Studio 16 2019" .. +call .\install\share\robotology-superbuild\setup.bat cmake --build . --config Release ~~~ From 74ffb850048a9ff05d7481144edcce11b4e23bb2 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 29 Oct 2024 19:18:46 +0100 Subject: [PATCH 31/33] Fix CI --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 21cd4a031..47a2b4aeb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -427,7 +427,7 @@ jobs: # Make sure that YARP's dll are in the path in case some repos use a code generator # in their build that uses YARP's dll # https://github.com/robotology/robotology-superbuild/pull/1547#issuecomment-2278151057 - export PATH=$PATH:${ROBOTOLOGY_SUPERBUILD_SOURCE_DIR}/build/install/bin + source ./install/share/robotology-superbuild/setup.sh cmake --build . --config Release # Cleanup build directories to avoid to fill the disk rm -rf ./robotology @@ -443,7 +443,7 @@ jobs: # Make sure that YARP's dll are in the path in case some repos use a code generator # in their build that uses YARP's dll # https://github.com/robotology/robotology-superbuild/pull/1547#issuecomment-2278151057 - export PATH=$PATH:${ROBOTOLOGY_SUPERBUILD_SOURCE_DIR}/build/install/bin + source ./install/share/robotology-superbuild/setup.sh cmake --build . --config Debug # Cleanup build directories to avoid to fill the disk rm -rf ./robotology From 18d5929c566aba7dc5731d23a007baaae70e8e59 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 29 Oct 2024 23:31:54 +0100 Subject: [PATCH 32/33] Update ci.yml --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47a2b4aeb..b871c81c0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -427,7 +427,7 @@ jobs: # Make sure that YARP's dll are in the path in case some repos use a code generator # in their build that uses YARP's dll # https://github.com/robotology/robotology-superbuild/pull/1547#issuecomment-2278151057 - source ./install/share/robotology-superbuild/setup.sh + source /c/robotology/robotology/share/robotology-superbuild/setup.sh cmake --build . --config Release # Cleanup build directories to avoid to fill the disk rm -rf ./robotology @@ -443,7 +443,7 @@ jobs: # Make sure that YARP's dll are in the path in case some repos use a code generator # in their build that uses YARP's dll # https://github.com/robotology/robotology-superbuild/pull/1547#issuecomment-2278151057 - source ./install/share/robotology-superbuild/setup.sh + source /c/robotology/robotology/share/robotology-superbuild/setup.sh cmake --build . --config Debug # Cleanup build directories to avoid to fill the disk rm -rf ./robotology From 12638bd44214cf996e2a45d9d46f93bb23add714 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Wed, 30 Oct 2024 07:24:45 +0100 Subject: [PATCH 33/33] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 270590ae5..158220711 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ For what regards CMake, the robotology-superbuild requires CMake 3.19 . If you a If instead you use an older distro in which the default version of CMake is older, you can easily install a newer CMake version in several ways. For the following distributions, we recommend the following methods: * Ubuntu 20.04 "Focal" : install a recent CMake via Kitware APT Repository, see https://apt.kitware.com/ . -* Debian 11 "Bullseye" : install a recent CMake via Debian Bullseye Backports, see https://backports.debian.org/Instructions/ . + For some [profile](doc/cmake-options.md#profile-cmake-options) or [dependency](doc/cmake-options.md#dependencies-cmake-options) specific CMake option you may need to install additional system dependencies, following the dependency-specific documentation listed in the following. If you do not want to enable an option, you should ignore the corresponding section and continue with the installation process.