From d1d71e93f1dab105868e5fd0087d5d5497842768 Mon Sep 17 00:00:00 2001 From: mikeallenspach Date: Thu, 10 Apr 2025 12:15:35 +0200 Subject: [PATCH 01/10] switch to c++17 for ubuntu 22.4 support --- msf_core/CMakeLists.txt | 4 ++-- msf_core/cmake/export_flags.cmake | 4 ++-- msf_eval/CMakeLists.txt | 2 +- msf_timing/CMakeLists.txt | 4 ++-- msf_timing/cmake/export_flags.cmake | 2 +- msf_updates/CMakeLists.txt | 1 + 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/msf_core/CMakeLists.txt b/msf_core/CMakeLists.txt index 1ea45328..c435e2c1 100644 --- a/msf_core/CMakeLists.txt +++ b/msf_core/CMakeLists.txt @@ -31,9 +31,9 @@ include_directories(include ${Eigen_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS}) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-unused-parameter") if (CMAKE_COMPILER_IS_GNUCC) -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") else() -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") endif() # Enable timing the core diff --git a/msf_core/cmake/export_flags.cmake b/msf_core/cmake/export_flags.cmake index e2657c00..2a669884 100644 --- a/msf_core/cmake/export_flags.cmake +++ b/msf_core/cmake/export_flags.cmake @@ -1,7 +1,7 @@ if (CMAKE_COMPILER_IS_GNUCC) -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") else() -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") endif() SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-unused-parameter") diff --git a/msf_eval/CMakeLists.txt b/msf_eval/CMakeLists.txt index 1353ce98..b4f9bd6c 100644 --- a/msf_eval/CMakeLists.txt +++ b/msf_eval/CMakeLists.txt @@ -17,7 +17,7 @@ ptam_com) include_directories(include ${catkin_INCLUDE_DIRS}) -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") catkin_package( DEPENDS opencv2 diff --git a/msf_timing/CMakeLists.txt b/msf_timing/CMakeLists.txt index 4527276a..0ce6f72e 100644 --- a/msf_timing/CMakeLists.txt +++ b/msf_timing/CMakeLists.txt @@ -16,9 +16,9 @@ include_directories(include) find_package(catkin REQUIRED COMPONENTS roscpp) if (CMAKE_COMPILER_IS_GNUCC) -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") else() -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") endif() catkin_package( diff --git a/msf_timing/cmake/export_flags.cmake b/msf_timing/cmake/export_flags.cmake index fd0324f2..82d81989 100644 --- a/msf_timing/cmake/export_flags.cmake +++ b/msf_timing/cmake/export_flags.cmake @@ -1,2 +1,2 @@ -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++0x") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++17") diff --git a/msf_updates/CMakeLists.txt b/msf_updates/CMakeLists.txt index 24b1d1d3..210d7c06 100644 --- a/msf_updates/CMakeLists.txt +++ b/msf_updates/CMakeLists.txt @@ -11,6 +11,7 @@ set(CMAKE_BUILD_TYPE Release) #build with boost 1.6x add_definitions(-DBOOST_NO_CXX11_VARIADIC_TEMPLATES) +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") find_package(catkin REQUIRED COMPONENTS roscpp msf_core geometry_msgs sensor_fusion_comm) From 6eb8faa9fdb1f2a20af71bc25caee07c82a686e3 Mon Sep 17 00:00:00 2001 From: 4c3y Date: Fri, 11 Apr 2025 11:57:01 +0200 Subject: [PATCH 02/10] Add ubuntu 20/22 CI --- .github/workflows/build.yml | 48 +++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..3ed68f7a --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,48 @@ +name: Build ethzasl_msf +on: + push: + branches: + - "master" + pull_request: + branches: + - "master" + schedule: + - cron: '0 0 * * 0' # every Sunday at midnight + +jobs: + build: + runs-on: [self-hosted, linux] + env: + rosdistro: ${{ matrix.ubuntu == '20.04' && 'noetic' || 'one' }} + strategy: + fail-fast: false + matrix: + gcc: [ '9', '10', '11' ] + ubuntu: [ '20.04', '22.04' ] + container: + image: omavteam/ubuntu-omav-ros:ros-desktop-${{ matrix.ubuntu }} + credentials: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + name: Ubuntu ${{ matrix.ubuntu }} - GCC ${{ matrix.gcc }} + steps: + - name: Install image-geometry + run: apt update && apt install -y ros-${{ env.rosdistro }}-image-geometry + + - name: Switch GCC version + run: | + update-alternatives --set gcc /usr/bin/gcc-${{ matrix.gcc }} + update-alternatives --set g++ /usr/bin/g++-${{ matrix.gcc}} + gcc --version + g++ --version + - uses: actions/checkout@v4 + name: Checkout glog_catkin + with: + repository: ethz-asl/glog_catkin + path: catkin_ws/src/glog_catkin + + - uses: actions/checkout@v4 + name: Checkout ethzasl_msf + with: + repository: ethz-asl/ethzasl_msf + path: catkin_ws/src/ethzasl_msf From 9298390f6d75ccf54fc0f902132b15924800a088 Mon Sep 17 00:00:00 2001 From: 4c3y Date: Fri, 11 Apr 2025 12:02:36 +0200 Subject: [PATCH 03/10] Run on push on all branches --- .github/workflows/build.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3ed68f7a..421821b3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,11 +1,6 @@ name: Build ethzasl_msf on: push: - branches: - - "master" - pull_request: - branches: - - "master" schedule: - cron: '0 0 * * 0' # every Sunday at midnight From 05387a3387438eeda317f99205e27212019e839e Mon Sep 17 00:00:00 2001 From: 4c3y Date: Fri, 11 Apr 2025 12:04:19 +0200 Subject: [PATCH 04/10] Add build step --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 421821b3..b8ea446a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,3 +41,8 @@ jobs: with: repository: ethz-asl/ethzasl_msf path: catkin_ws/src/ethzasl_msf + + - name: Build ethzasl_msf + run: source /opt/ros/${{ matrix.rosdistro }}/setup.bash && catkin build ethzasl_msf && source ${GITHUB_WORKSPACE}/catkin_ws/devel/setup.bash + working-directory: catkin_ws + shell: bash From e094b57437d0f3ec0a577adf33edc9d499b9af76 Mon Sep 17 00:00:00 2001 From: 4c3y Date: Fri, 11 Apr 2025 12:05:10 +0200 Subject: [PATCH 05/10] Fix env variable --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b8ea446a..48f31158 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,6 +43,6 @@ jobs: path: catkin_ws/src/ethzasl_msf - name: Build ethzasl_msf - run: source /opt/ros/${{ matrix.rosdistro }}/setup.bash && catkin build ethzasl_msf && source ${GITHUB_WORKSPACE}/catkin_ws/devel/setup.bash + run: source /opt/ros/${{ env.rosdistro }}/setup.bash && catkin build ethzasl_msf && source ${GITHUB_WORKSPACE}/catkin_ws/devel/setup.bash working-directory: catkin_ws shell: bash From 8e3757b7632b50d3634f49cee859b2f478de27c5 Mon Sep 17 00:00:00 2001 From: 4c3y Date: Fri, 11 Apr 2025 12:06:35 +0200 Subject: [PATCH 06/10] Checkout catkin_simple --- .github/workflows/build.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 48f31158..c09b2079 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,6 +30,13 @@ jobs: update-alternatives --set g++ /usr/bin/g++-${{ matrix.gcc}} gcc --version g++ --version + + - uses: actions/checkout@v4 + name: Checkout catkin_simple + with: + repository: catkin/catkin_simple + path: catkin_ws/src/catkin_simple + - uses: actions/checkout@v4 name: Checkout glog_catkin with: From 0522831c20297951ccad36e78c4a8c9ce9f352c3 Mon Sep 17 00:00:00 2001 From: 4c3y Date: Fri, 11 Apr 2025 12:15:58 +0200 Subject: [PATCH 07/10] Run unittests in CI --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c09b2079..65456c41 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -53,3 +53,6 @@ jobs: run: source /opt/ros/${{ env.rosdistro }}/setup.bash && catkin build ethzasl_msf && source ${GITHUB_WORKSPACE}/catkin_ws/devel/setup.bash working-directory: catkin_ws shell: bash + + - name: Run ethzasl_msf tests + run: source /opt/ros/${{ env.rosdistro }}/setup.bash && catkin run_tests msf_core msf_timing From fc7dbd02d761d35b65982c4b3afc7341205fa9d0 Mon Sep 17 00:00:00 2001 From: 4c3y Date: Fri, 11 Apr 2025 12:19:51 +0200 Subject: [PATCH 08/10] Use bash shell for run_tests command --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 65456c41..a9fc3218 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -56,3 +56,4 @@ jobs: - name: Run ethzasl_msf tests run: source /opt/ros/${{ env.rosdistro }}/setup.bash && catkin run_tests msf_core msf_timing + shell: bash From 5302247bb1310e949f444d460ad1bffcb80a0289 Mon Sep 17 00:00:00 2001 From: 4c3y Date: Fri, 11 Apr 2025 12:27:18 +0200 Subject: [PATCH 09/10] Fix missing working-directory --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a9fc3218..dd729310 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -56,4 +56,5 @@ jobs: - name: Run ethzasl_msf tests run: source /opt/ros/${{ env.rosdistro }}/setup.bash && catkin run_tests msf_core msf_timing + working-directory: catkin_ws shell: bash From 52e37fd017594a61ddaf34e5b7718da871e167c2 Mon Sep 17 00:00:00 2001 From: 4c3y Date: Fri, 11 Apr 2025 12:57:49 +0200 Subject: [PATCH 10/10] Added sensor_fusion_comm dependency to msf_core that is needed by unittests --- msf_core/CMakeLists.txt | 2 +- msf_core/package.xml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/msf_core/CMakeLists.txt b/msf_core/CMakeLists.txt index c435e2c1..f06618f9 100644 --- a/msf_core/CMakeLists.txt +++ b/msf_core/CMakeLists.txt @@ -14,7 +14,7 @@ add_definitions(-DBOOST_NO_CXX11_VARIADIC_TEMPLATES) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake/) -find_package(catkin REQUIRED COMPONENTS sensor_msgs dynamic_reconfigure msf_timing tf glog_catkin cmake_modules) +find_package(catkin REQUIRED COMPONENTS sensor_msgs dynamic_reconfigure msf_timing tf glog_catkin cmake_modules sensor_fusion_comm) find_package(Eigen REQUIRED) find_package(Doxygen) diff --git a/msf_core/package.xml b/msf_core/package.xml index e3480968..c214bc6e 100644 --- a/msf_core/package.xml +++ b/msf_core/package.xml @@ -24,6 +24,7 @@ tf glog_catkin cmake_modules + sensor_fusion_comm roscpp sensor_msgs nav_msgs @@ -31,4 +32,5 @@ msf_timing tf glog_catkin + sensor_fusion_comm