From 08a620a26244fdc660319b6803307433f025fcd1 Mon Sep 17 00:00:00 2001 From: David Tarazi Date: Mon, 2 Mar 2026 13:28:03 -0800 Subject: [PATCH 1/6] added jazzy, kilted, and rolling CI. Updated the catch2 testing framework to support that as well --- .github/workflows/build.yml | 11 ++++++----- mvec/mvec_lib/test/mvec_relay.cpp | 11 ++++++++++- mvec/mvec_lib/test/mvec_socketcan_hardware.cpp | 10 +++++++++- mvec/mvec_lib/test/status_enums.cpp | 10 +++++++++- mvec/mvec_lib/test/status_messages.cpp | 10 +++++++++- .../test/sygnal_command_interface_test.cpp | 10 +++++++++- .../test/sygnal_interface_socketcan_test.cpp | 6 +++++- .../test/sygnal_mcm_interface_test.cpp | 10 +++++++++- sygnal_dbc/test/test_mcm_heartbeat.cpp | 2 ++ 9 files changed, 68 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 64360c7..347f351 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,11 +16,12 @@ jobs: include: - ros: humble ubuntu: jammy - # TODO(Zeerek): Enable once socketcan adapter supports them - # - ros: jazzy - # ubuntu: noble - # - ros: rolling - # ubuntu: noble + - ros: jazzy + ubuntu: noble + - ros: kilted + ubuntu: noble + - ros: rolling + ubuntu: noble name: ROS 2 ${{ matrix.ros }} container: image: ghcr.io/ros-tooling/setup-ros-docker/setup-ros-docker-ubuntu-${{ matrix.ubuntu }}:latest diff --git a/mvec/mvec_lib/test/mvec_relay.cpp b/mvec/mvec_lib/test/mvec_relay.cpp index 83cd217..c459d88 100644 --- a/mvec/mvec_lib/test/mvec_relay.cpp +++ b/mvec/mvec_lib/test/mvec_relay.cpp @@ -17,7 +17,16 @@ #include #include -#include +#if __has_include() + #include + #include +using Catch::Approx; +#elif __has_include() + #include +#else + #error "Catch2 headers not found. Please install Catch2 (v2 or v3)." +#endif + #include "mvec_lib/core/mvec_constants.hpp" #include "socketcan_adapter/can_frame.hpp" diff --git a/mvec/mvec_lib/test/mvec_socketcan_hardware.cpp b/mvec/mvec_lib/test/mvec_socketcan_hardware.cpp index 6468a3c..4a6a245 100644 --- a/mvec/mvec_lib/test/mvec_socketcan_hardware.cpp +++ b/mvec/mvec_lib/test/mvec_socketcan_hardware.cpp @@ -21,7 +21,15 @@ #include #include -#include +#if __has_include() + #include + #include +using Catch::Approx; +#elif __has_include() + #include +#else + #error "Catch2 headers not found. Please install Catch2 (v2 or v3)." +#endif #include "mvec_lib/mvec_relay_socketcan.hpp" #include "socketcan_adapter/socketcan_adapter.hpp" diff --git a/mvec/mvec_lib/test/status_enums.cpp b/mvec/mvec_lib/test/status_enums.cpp index b257711..472e7fc 100644 --- a/mvec/mvec_lib/test/status_enums.cpp +++ b/mvec/mvec_lib/test/status_enums.cpp @@ -14,7 +14,15 @@ #include -#include +#if __has_include() + #include + #include +using Catch::Approx; +#elif __has_include() + #include +#else + #error "Catch2 headers not found. Please install Catch2 (v2 or v3)." +#endif #include "mvec_lib/core/mvec_constants.hpp" #include "mvec_lib/status_messages/mvec_error_status_message.hpp" diff --git a/mvec/mvec_lib/test/status_messages.cpp b/mvec/mvec_lib/test/status_messages.cpp index c832851..0714a3d 100644 --- a/mvec/mvec_lib/test/status_messages.cpp +++ b/mvec/mvec_lib/test/status_messages.cpp @@ -14,7 +14,15 @@ #include -#include +#if __has_include() + #include + #include +using Catch::Approx; +#elif __has_include() + #include +#else + #error "Catch2 headers not found. Please install Catch2 (v2 or v3)." +#endif #include "mvec_lib/core/mvec_constants.hpp" #include "mvec_lib/status_messages/mvec_error_status_message.hpp" diff --git a/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_command_interface_test.cpp b/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_command_interface_test.cpp index a6ebbb8..cb7a891 100644 --- a/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_command_interface_test.cpp +++ b/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_command_interface_test.cpp @@ -17,7 +17,15 @@ #include #include -#include +#if __has_include() + #include + #include +using Catch::Approx; +#elif __has_include() + #include +#else + #error "Catch2 headers not found. Please install Catch2 (v2 or v3)." +#endif #include "socketcan_adapter/can_frame.hpp" diff --git a/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_interface_socketcan_test.cpp b/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_interface_socketcan_test.cpp index ab277e2..b1bea82 100644 --- a/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_interface_socketcan_test.cpp +++ b/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_interface_socketcan_test.cpp @@ -19,8 +19,12 @@ #if __has_include() #include -#else + #include +using Catch::Approx; +#elif __has_include() #include +#else + #error "Catch2 headers not found. Please install Catch2 (v2 or v3)." #endif #include diff --git a/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_mcm_interface_test.cpp b/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_mcm_interface_test.cpp index db71ca6..20e6097 100644 --- a/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_mcm_interface_test.cpp +++ b/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_mcm_interface_test.cpp @@ -17,7 +17,15 @@ #include #include -#include +#if __has_include() + #include + #include +using Catch::Approx; +#elif __has_include() + #include +#else + #error "Catch2 headers not found. Please install Catch2 (v2 or v3)." +#endif #include "socketcan_adapter/can_frame.hpp" diff --git a/sygnal_dbc/test/test_mcm_heartbeat.cpp b/sygnal_dbc/test/test_mcm_heartbeat.cpp index 9d8706b..7e5e07c 100644 --- a/sygnal_dbc/test/test_mcm_heartbeat.cpp +++ b/sygnal_dbc/test/test_mcm_heartbeat.cpp @@ -16,6 +16,8 @@ #if __has_include() #include + #include +using Catch::Approx; #elif __has_include() #include #else From 83457315d98ee9223bfaef0285d6321a2eb29e26 Mon Sep 17 00:00:00 2001 From: David Tarazi Date: Mon, 2 Mar 2026 13:32:13 -0800 Subject: [PATCH 2/6] remove approx where not needed, pre-commit' --- mvec/mvec_lib/test/mvec_relay.cpp | 3 --- mvec/mvec_lib/test/mvec_socketcan_hardware.cpp | 2 -- mvec/mvec_lib/test/status_enums.cpp | 2 -- mvec/mvec_lib/test/status_messages.cpp | 2 -- .../test/sygnal_command_interface_test.cpp | 2 -- .../test/sygnal_mcm_interface_test.cpp | 2 -- sygnal_dbc/test/test_mcm_heartbeat.cpp | 2 -- 7 files changed, 15 deletions(-) diff --git a/mvec/mvec_lib/test/mvec_relay.cpp b/mvec/mvec_lib/test/mvec_relay.cpp index c459d88..0cefada 100644 --- a/mvec/mvec_lib/test/mvec_relay.cpp +++ b/mvec/mvec_lib/test/mvec_relay.cpp @@ -19,15 +19,12 @@ #if __has_include() #include - #include -using Catch::Approx; #elif __has_include() #include #else #error "Catch2 headers not found. Please install Catch2 (v2 or v3)." #endif - #include "mvec_lib/core/mvec_constants.hpp" #include "socketcan_adapter/can_frame.hpp" diff --git a/mvec/mvec_lib/test/mvec_socketcan_hardware.cpp b/mvec/mvec_lib/test/mvec_socketcan_hardware.cpp index 4a6a245..f63e208 100644 --- a/mvec/mvec_lib/test/mvec_socketcan_hardware.cpp +++ b/mvec/mvec_lib/test/mvec_socketcan_hardware.cpp @@ -23,8 +23,6 @@ #if __has_include() #include - #include -using Catch::Approx; #elif __has_include() #include #else diff --git a/mvec/mvec_lib/test/status_enums.cpp b/mvec/mvec_lib/test/status_enums.cpp index 472e7fc..275d879 100644 --- a/mvec/mvec_lib/test/status_enums.cpp +++ b/mvec/mvec_lib/test/status_enums.cpp @@ -16,8 +16,6 @@ #if __has_include() #include - #include -using Catch::Approx; #elif __has_include() #include #else diff --git a/mvec/mvec_lib/test/status_messages.cpp b/mvec/mvec_lib/test/status_messages.cpp index 0714a3d..d567cad 100644 --- a/mvec/mvec_lib/test/status_messages.cpp +++ b/mvec/mvec_lib/test/status_messages.cpp @@ -16,8 +16,6 @@ #if __has_include() #include - #include -using Catch::Approx; #elif __has_include() #include #else diff --git a/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_command_interface_test.cpp b/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_command_interface_test.cpp index cb7a891..2b5fb0c 100644 --- a/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_command_interface_test.cpp +++ b/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_command_interface_test.cpp @@ -19,8 +19,6 @@ #if __has_include() #include - #include -using Catch::Approx; #elif __has_include() #include #else diff --git a/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_mcm_interface_test.cpp b/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_mcm_interface_test.cpp index 20e6097..7e49d18 100644 --- a/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_mcm_interface_test.cpp +++ b/sygnal_can_interface/sygnal_can_interface_lib/test/sygnal_mcm_interface_test.cpp @@ -19,8 +19,6 @@ #if __has_include() #include - #include -using Catch::Approx; #elif __has_include() #include #else diff --git a/sygnal_dbc/test/test_mcm_heartbeat.cpp b/sygnal_dbc/test/test_mcm_heartbeat.cpp index 7e5e07c..9d8706b 100644 --- a/sygnal_dbc/test/test_mcm_heartbeat.cpp +++ b/sygnal_dbc/test/test_mcm_heartbeat.cpp @@ -16,8 +16,6 @@ #if __has_include() #include - #include -using Catch::Approx; #elif __has_include() #include #else From c6921a00cadda7073bab1859cea9b2f959900dd1 Mon Sep 17 00:00:00 2001 From: David Tarazi Date: Mon, 2 Mar 2026 15:26:02 -0800 Subject: [PATCH 3/6] fix the cmake for catch2 --- mvec/mvec_lib/CMakeLists.txt | 44 ++++++++++++++++--- mvec/mvec_lib/package.xml | 3 ++ .../sygnal_can_interface_lib/CMakeLists.txt | 34 +++++++++++--- .../sygnal_can_interface_lib/package.xml | 3 ++ sygnal_dbc/CMakeLists.txt | 15 +++++-- sygnal_dbc/package.xml | 1 + 6 files changed, 85 insertions(+), 15 deletions(-) diff --git a/mvec/mvec_lib/CMakeLists.txt b/mvec/mvec_lib/CMakeLists.txt index fd2abb3..ca8e4b3 100644 --- a/mvec/mvec_lib/CMakeLists.txt +++ b/mvec/mvec_lib/CMakeLists.txt @@ -79,8 +79,8 @@ ament_export_dependencies( ) if(BUILD_TESTING) - find_package(Catch2 2 REQUIRED) - include(Catch) + find_package(ament_cmake_auto REQUIRED) + ament_auto_find_test_dependencies() add_executable(relay_tests test/mvec_relay.cpp @@ -88,7 +88,15 @@ if(BUILD_TESTING) target_link_libraries(relay_tests PRIVATE ${PROJECT_NAME} Catch2::Catch2WithMain ) - catch_discover_tests(relay_tests) + ament_add_test( + relay_tests + GENERATE_RESULT_FOR_RETURN_CODE_ZERO + COMMAND "$" + -r junit -s + -o test_results/${PROJECT_NAME}/relay_tests_output.xml + ENV CATCH_CONFIG_CONSOLE_WIDTH=120 + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) add_executable(status_messages_tests test/status_messages.cpp @@ -96,7 +104,15 @@ if(BUILD_TESTING) target_link_libraries(status_messages_tests PRIVATE ${PROJECT_NAME} Catch2::Catch2WithMain ) - catch_discover_tests(status_messages_tests) + ament_add_test( + status_messages_tests + GENERATE_RESULT_FOR_RETURN_CODE_ZERO + COMMAND "$" + -r junit -s + -o test_results/${PROJECT_NAME}/status_messages_tests_output.xml + ENV CATCH_CONFIG_CONSOLE_WIDTH=120 + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) add_executable(status_enums_tests test/status_enums.cpp @@ -104,7 +120,15 @@ if(BUILD_TESTING) target_link_libraries(status_enums_tests PRIVATE ${PROJECT_NAME} Catch2::Catch2WithMain ) - catch_discover_tests(status_enums_tests) + ament_add_test( + status_enums_tests + GENERATE_RESULT_FOR_RETURN_CODE_ZERO + COMMAND "$" + -r junit -s + -o test_results/${PROJECT_NAME}/status_enums_tests_output.xml + ENV CATCH_CONFIG_CONSOLE_WIDTH=120 + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) # Only build hardware tests if CAN_AVAILABLE is set in the environment if(DEFINED ENV{CAN_AVAILABLE}) @@ -114,7 +138,15 @@ if(BUILD_TESTING) target_link_libraries(socketcan_hardware_tests PRIVATE ${PROJECT_NAME} Catch2::Catch2WithMain ) - catch_discover_tests(socketcan_hardware_tests) + ament_add_test( + socketcan_hardware_tests + GENERATE_RESULT_FOR_RETURN_CODE_ZERO + COMMAND "$" + -r junit -s + -o test_results/${PROJECT_NAME}/socketcan_hardware_tests_output.xml + ENV CATCH_CONFIG_CONSOLE_WIDTH=120 + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) message(STATUS "CAN_AVAILABLE set - including hardware tests") else() message(STATUS "CAN_AVAILABLE not set - skipping hardware tests (set CAN_AVAILABLE=1 to enable)") diff --git a/mvec/mvec_lib/package.xml b/mvec/mvec_lib/package.xml index 926029a..02465fd 100644 --- a/mvec/mvec_lib/package.xml +++ b/mvec/mvec_lib/package.xml @@ -8,9 +8,12 @@ Apache-2.0 Zeerek Ahmad + ament_cmake + ament_cmake_auto socketcan_adapter ament_cmake_test + catch2 ament_cmake diff --git a/sygnal_can_interface/sygnal_can_interface_lib/CMakeLists.txt b/sygnal_can_interface/sygnal_can_interface_lib/CMakeLists.txt index 34c114a..9f3e36b 100644 --- a/sygnal_can_interface/sygnal_can_interface_lib/CMakeLists.txt +++ b/sygnal_can_interface/sygnal_can_interface_lib/CMakeLists.txt @@ -74,8 +74,8 @@ ament_export_dependencies( ) if(BUILD_TESTING) - find_package(Catch2 2 REQUIRED) - include(Catch) + find_package(ament_cmake_auto REQUIRED) + ament_auto_find_test_dependencies() add_executable(sygnal_mcm_interface_tests test/sygnal_mcm_interface_test.cpp @@ -83,7 +83,15 @@ if(BUILD_TESTING) target_link_libraries(sygnal_mcm_interface_tests PRIVATE ${PROJECT_NAME} Catch2::Catch2WithMain ) - catch_discover_tests(sygnal_mcm_interface_tests) + ament_add_test( + sygnal_mcm_interface_tests + GENERATE_RESULT_FOR_RETURN_CODE_ZERO + COMMAND "$" + -r junit -s + -o test_results/${PROJECT_NAME}/sygnal_mcm_interface_tests_output.xml + ENV CATCH_CONFIG_CONSOLE_WIDTH=120 + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) add_executable(sygnal_command_interface_tests test/sygnal_command_interface_test.cpp @@ -91,7 +99,15 @@ if(BUILD_TESTING) target_link_libraries(sygnal_command_interface_tests PRIVATE ${PROJECT_NAME} Catch2::Catch2WithMain ) - catch_discover_tests(sygnal_command_interface_tests) + ament_add_test( + sygnal_command_interface_tests + GENERATE_RESULT_FOR_RETURN_CODE_ZERO + COMMAND "$" + -r junit -s + -o test_results/${PROJECT_NAME}/sygnal_command_interface_tests_output.xml + ENV CATCH_CONFIG_CONSOLE_WIDTH=120 + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) if(DEFINED ENV{CAN_AVAILABLE}) add_executable(sygnal_interface_socketcan_tests @@ -100,7 +116,15 @@ if(BUILD_TESTING) target_link_libraries(sygnal_interface_socketcan_tests PRIVATE ${PROJECT_NAME} Catch2::Catch2WithMain ) - catch_discover_tests(sygnal_interface_socketcan_tests) + ament_add_test( + sygnal_interface_socketcan_tests + GENERATE_RESULT_FOR_RETURN_CODE_ZERO + COMMAND "$" + -r junit -s + -o test_results/${PROJECT_NAME}/sygnal_interface_socketcan_tests_output.xml + ENV CATCH_CONFIG_CONSOLE_WIDTH=120 + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) message(STATUS "CAN_AVAILABLE set - including hardware tests") endif() endif() diff --git a/sygnal_can_interface/sygnal_can_interface_lib/package.xml b/sygnal_can_interface/sygnal_can_interface_lib/package.xml index 14c9b72..8116708 100644 --- a/sygnal_can_interface/sygnal_can_interface_lib/package.xml +++ b/sygnal_can_interface/sygnal_can_interface_lib/package.xml @@ -9,9 +9,12 @@ Zeerek Ahmad ament_cmake + ament_cmake_auto socketcan_adapter sygnal_dbc + catch2 + ament_cmake diff --git a/sygnal_dbc/CMakeLists.txt b/sygnal_dbc/CMakeLists.txt index 8235f66..0243891 100644 --- a/sygnal_dbc/CMakeLists.txt +++ b/sygnal_dbc/CMakeLists.txt @@ -95,9 +95,8 @@ ament_export_targets(export_${PROJECT_NAME} HAS_LIBRARY_TARGET) ament_package(CONFIG_EXTRAS "cmake/${PROJECT_NAME}-extras.cmake") if(BUILD_TESTING) - find_package(ament_cmake_pytest REQUIRED) - find_package(Catch2 REQUIRED) - include(Catch) + find_package(ament_cmake_auto REQUIRED) + ament_auto_find_test_dependencies() ament_add_pytest_test(test_mcm_heartbeat_python test/test_mcm_heartbeat.py @@ -106,6 +105,14 @@ if(BUILD_TESTING) add_executable(test_mcm_heartbeat_cpp test/test_mcm_heartbeat.cpp) target_link_libraries(test_mcm_heartbeat_cpp PRIVATE Catch2::Catch2WithMain ${PROJECT_NAME}) - catch_discover_tests(test_mcm_heartbeat_cpp) + ament_add_test( + test_mcm_heartbeat_cpp + GENERATE_RESULT_FOR_RETURN_CODE_ZERO + COMMAND "$" + -r junit -s + -o test_results/${PROJECT_NAME}/test_mcm_heartbeat_cpp_output.xml + ENV CATCH_CONFIG_CONSOLE_WIDTH=120 + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) endif() diff --git a/sygnal_dbc/package.xml b/sygnal_dbc/package.xml index 0838ff4..8829888 100644 --- a/sygnal_dbc/package.xml +++ b/sygnal_dbc/package.xml @@ -8,6 +8,7 @@ Zeerek Ahmad ament_cmake + ament_cmake_auto python3-cantools-pip ament_cmake_pytest From 9dc2e64d0e8c5679034869ff56746f111e254954 Mon Sep 17 00:00:00 2001 From: David Tarazi Date: Mon, 2 Mar 2026 15:30:03 -0800 Subject: [PATCH 4/6] bugfix' --- mvec/mvec_lib/CMakeLists.txt | 1 + sygnal_can_interface/sygnal_can_interface_lib/CMakeLists.txt | 1 + sygnal_dbc/CMakeLists.txt | 1 + 3 files changed, 3 insertions(+) diff --git a/mvec/mvec_lib/CMakeLists.txt b/mvec/mvec_lib/CMakeLists.txt index ca8e4b3..070a2d6 100644 --- a/mvec/mvec_lib/CMakeLists.txt +++ b/mvec/mvec_lib/CMakeLists.txt @@ -81,6 +81,7 @@ ament_export_dependencies( if(BUILD_TESTING) find_package(ament_cmake_auto REQUIRED) ament_auto_find_test_dependencies() + find_package(Catch2 REQUIRED) add_executable(relay_tests test/mvec_relay.cpp diff --git a/sygnal_can_interface/sygnal_can_interface_lib/CMakeLists.txt b/sygnal_can_interface/sygnal_can_interface_lib/CMakeLists.txt index 9f3e36b..01f7c43 100644 --- a/sygnal_can_interface/sygnal_can_interface_lib/CMakeLists.txt +++ b/sygnal_can_interface/sygnal_can_interface_lib/CMakeLists.txt @@ -76,6 +76,7 @@ ament_export_dependencies( if(BUILD_TESTING) find_package(ament_cmake_auto REQUIRED) ament_auto_find_test_dependencies() + find_package(Catch2 REQUIRED) add_executable(sygnal_mcm_interface_tests test/sygnal_mcm_interface_test.cpp diff --git a/sygnal_dbc/CMakeLists.txt b/sygnal_dbc/CMakeLists.txt index 0243891..4934b16 100644 --- a/sygnal_dbc/CMakeLists.txt +++ b/sygnal_dbc/CMakeLists.txt @@ -97,6 +97,7 @@ ament_package(CONFIG_EXTRAS "cmake/${PROJECT_NAME}-extras.cmake") if(BUILD_TESTING) find_package(ament_cmake_auto REQUIRED) ament_auto_find_test_dependencies() + find_package(Catch2 REQUIRED) ament_add_pytest_test(test_mcm_heartbeat_python test/test_mcm_heartbeat.py From 9321816859785b242bb77b0136dacba0a7fad5cd Mon Sep 17 00:00:00 2001 From: David Tarazi Date: Mon, 2 Mar 2026 15:48:07 -0800 Subject: [PATCH 5/6] fix magic number on kilted/rolling, fix warnings --- mvec/mvec_lib/CMakeLists.txt | 8 +--- mvec/mvec_ros2/src/mvec_node.cpp | 8 +++- .../sygnal_can_interface_lib/CMakeLists.txt | 12 +++--- .../src/sygnal_interface_socketcan.cpp | 2 - .../src/sygnal_can_interface_node.cpp | 8 +++- sygnal_dbc/CMakeLists.txt | 4 +- sygnal_fault_clear/CMakeLists.txt | 37 +++++++------------ sygnal_fault_clear/package.xml | 1 + 8 files changed, 38 insertions(+), 42 deletions(-) diff --git a/mvec/mvec_lib/CMakeLists.txt b/mvec/mvec_lib/CMakeLists.txt index 070a2d6..96fcdff 100644 --- a/mvec/mvec_lib/CMakeLists.txt +++ b/mvec/mvec_lib/CMakeLists.txt @@ -25,11 +25,8 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_link_options("-Wl,--no-undefined") endif() -find_package(ament_cmake REQUIRED) -find_package(socketcan_adapter REQUIRED) - -# socketcan adapter's improperly configured dependencies -# TODO (Zeerek): Remove when socketcan adapter's dependencies are cleaned up +find_package(ament_cmake_auto REQUIRED) +ament_auto_find_build_dependencies() add_library( ${PROJECT_NAME} SHARED @@ -79,7 +76,6 @@ ament_export_dependencies( ) if(BUILD_TESTING) - find_package(ament_cmake_auto REQUIRED) ament_auto_find_test_dependencies() find_package(Catch2 REQUIRED) diff --git a/mvec/mvec_ros2/src/mvec_node.cpp b/mvec/mvec_ros2/src/mvec_node.cpp index 22c4d97..8637bb7 100644 --- a/mvec/mvec_ros2/src/mvec_node.cpp +++ b/mvec/mvec_ros2/src/mvec_node.cpp @@ -23,7 +23,13 @@ #include #include -#include +#if __has_include() + #include +#elif __has_include() + #include +#else + #error "magic_enum headers not found. Please install magic_enum." +#endif #include "mvec_lib/core/mvec_constants.hpp" diff --git a/sygnal_can_interface/sygnal_can_interface_lib/CMakeLists.txt b/sygnal_can_interface/sygnal_can_interface_lib/CMakeLists.txt index 01f7c43..5d3fad8 100644 --- a/sygnal_can_interface/sygnal_can_interface_lib/CMakeLists.txt +++ b/sygnal_can_interface/sygnal_can_interface_lib/CMakeLists.txt @@ -24,9 +24,8 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_link_options("-Wl,--no-undefined") endif() -find_package(ament_cmake REQUIRED) -find_package(socketcan_adapter REQUIRED) -find_package(sygnal_dbc REQUIRED) +find_package(ament_cmake_auto REQUIRED) +ament_auto_find_build_dependencies() add_library( ${PROJECT_NAME} SHARED @@ -42,11 +41,11 @@ target_include_directories(${PROJECT_NAME} PUBLIC ) target_link_libraries(${PROJECT_NAME} - PUBLIC socketcan_adapter::socketcan_adapter + PUBLIC + socketcan_adapter::socketcan_adapter + sygnal_dbc::sygnal_dbc ) -ament_target_dependencies(${PROJECT_NAME} PUBLIC sygnal_dbc) - install( DIRECTORY include/ DESTINATION include @@ -74,7 +73,6 @@ ament_export_dependencies( ) if(BUILD_TESTING) - find_package(ament_cmake_auto REQUIRED) ament_auto_find_test_dependencies() find_package(Catch2 REQUIRED) diff --git a/sygnal_can_interface/sygnal_can_interface_lib/src/sygnal_interface_socketcan.cpp b/sygnal_can_interface/sygnal_can_interface_lib/src/sygnal_interface_socketcan.cpp index 558cd81..2a5ec25 100644 --- a/sygnal_can_interface/sygnal_can_interface_lib/src/sygnal_interface_socketcan.cpp +++ b/sygnal_can_interface/sygnal_can_interface_lib/src/sygnal_interface_socketcan.cpp @@ -131,8 +131,6 @@ SendCommandResult SygnalInterfaceSocketcan::sendControlStateCommand( return {false, std::nullopt}; } - auto data = frame_opt->get_data(); - std::optional> future_opt; if (expect_reply) { std::promise promise; diff --git a/sygnal_can_interface/sygnal_can_interface_ros2/src/sygnal_can_interface_node.cpp b/sygnal_can_interface/sygnal_can_interface_ros2/src/sygnal_can_interface_node.cpp index c442202..79f3cc8 100644 --- a/sygnal_can_interface/sygnal_can_interface_ros2/src/sygnal_can_interface_node.cpp +++ b/sygnal_can_interface/sygnal_can_interface_ros2/src/sygnal_can_interface_node.cpp @@ -22,7 +22,13 @@ #include #include -#include +#if __has_include() + #include +#elif __has_include() + #include +#else + #error "magic_enum headers not found. Please install magic_enum." +#endif #include "sygnal_can_interface_lib/sygnal_command_interface.hpp" #include "sygnal_can_interface_lib/sygnal_mcm_interface.hpp" diff --git a/sygnal_dbc/CMakeLists.txt b/sygnal_dbc/CMakeLists.txt index 4934b16..d18f137 100644 --- a/sygnal_dbc/CMakeLists.txt +++ b/sygnal_dbc/CMakeLists.txt @@ -15,7 +15,8 @@ cmake_minimum_required(VERSION 3.5) project(sygnal_dbc VERSION 0.1.0 LANGUAGES C CXX) -find_package(ament_cmake REQUIRED) +find_package(ament_cmake_auto REQUIRED) +ament_auto_find_build_dependencies() find_package(Python3 COMPONENTS Interpreter REQUIRED) include(GNUInstallDirs) @@ -95,7 +96,6 @@ ament_export_targets(export_${PROJECT_NAME} HAS_LIBRARY_TARGET) ament_package(CONFIG_EXTRAS "cmake/${PROJECT_NAME}-extras.cmake") if(BUILD_TESTING) - find_package(ament_cmake_auto REQUIRED) ament_auto_find_test_dependencies() find_package(Catch2 REQUIRED) diff --git a/sygnal_fault_clear/CMakeLists.txt b/sygnal_fault_clear/CMakeLists.txt index 9ed9bd2..0d6c1a4 100644 --- a/sygnal_fault_clear/CMakeLists.txt +++ b/sygnal_fault_clear/CMakeLists.txt @@ -20,27 +20,8 @@ endif() set(CMAKE_CXX_STANDARD 17) -# find dependencies -find_package(ament_cmake REQUIRED) -find_package(rclcpp REQUIRED) -find_package(rclcpp_action REQUIRED) -find_package(rclcpp_lifecycle REQUIRED) -find_package(rclcpp_components REQUIRED) -find_package(std_msgs REQUIRED) -find_package(std_srvs REQUIRED) - -include_directories( - include -) - -set(dependencies - rclcpp - rclcpp_action - rclcpp_lifecycle - rclcpp_components - std_msgs - std_srvs -) +find_package(ament_cmake_auto REQUIRED) +ament_auto_find_build_dependencies() set(library_name ${PROJECT_NAME}_lib) add_library( @@ -48,8 +29,18 @@ add_library( src/fault_clear_node.cpp ) -ament_target_dependencies(${library_name} - ${dependencies} +target_include_directories(${library_name} PUBLIC + "$" + "$" +) + +target_link_libraries(${library_name} PUBLIC + ${std_msgs_TARGETS} + ${std_srvs_TARGETS} + rclcpp::rclcpp + rclcpp_action::rclcpp_action + rclcpp_lifecycle::rclcpp_lifecycle + rclcpp_components::component ) set(executable_name sygnal_fault_clear) diff --git a/sygnal_fault_clear/package.xml b/sygnal_fault_clear/package.xml index 42ad906..7e2f475 100644 --- a/sygnal_fault_clear/package.xml +++ b/sygnal_fault_clear/package.xml @@ -8,6 +8,7 @@ Apache 2.0 ament_cmake + ament_cmake_auto rclcpp rclcpp_action rclcpp_lifecycle From 3defed691e1a579626f61f0dd7f0b46b826b8ffc Mon Sep 17 00:00:00 2001 From: David Tarazi Date: Mon, 2 Mar 2026 16:06:59 -0800 Subject: [PATCH 6/6] missed a few packages to switch to ament_cmake_auto --- mvec/mvec_msgs/CMakeLists.txt | 6 ++---- mvec/mvec_msgs/package.xml | 3 +++ sygnal_can_interface/sygnal_can_msgs/CMakeLists.txt | 6 ++---- sygnal_can_interface/sygnal_can_msgs/package.xml | 3 +++ 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/mvec/mvec_msgs/CMakeLists.txt b/mvec/mvec_msgs/CMakeLists.txt index 19c7b85..7bdd289 100644 --- a/mvec/mvec_msgs/CMakeLists.txt +++ b/mvec/mvec_msgs/CMakeLists.txt @@ -15,10 +15,8 @@ cmake_minimum_required(VERSION 3.8) project(mvec_msgs) -find_package(ament_cmake REQUIRED) -find_package(rosidl_default_generators REQUIRED) -find_package(builtin_interfaces REQUIRED) -find_package(std_msgs REQUIRED) +find_package(ament_cmake_auto REQUIRED) +ament_auto_find_build_dependencies() set(msg_files "msg/Relay.msg" diff --git a/mvec/mvec_msgs/package.xml b/mvec/mvec_msgs/package.xml index 4cde3b6..f2bf53a 100644 --- a/mvec/mvec_msgs/package.xml +++ b/mvec/mvec_msgs/package.xml @@ -8,8 +8,11 @@ Apache-2.0 ament_cmake + ament_cmake_auto rosidl_default_generators + builtin_interfaces + std_msgs rosidl_interface_packages diff --git a/sygnal_can_interface/sygnal_can_msgs/CMakeLists.txt b/sygnal_can_interface/sygnal_can_msgs/CMakeLists.txt index bd7e46a..839d6c0 100644 --- a/sygnal_can_interface/sygnal_can_msgs/CMakeLists.txt +++ b/sygnal_can_interface/sygnal_can_msgs/CMakeLists.txt @@ -15,10 +15,8 @@ cmake_minimum_required(VERSION 3.8) project(sygnal_can_msgs) -find_package(ament_cmake REQUIRED) -find_package(rosidl_default_generators REQUIRED) -find_package(builtin_interfaces REQUIRED) -find_package(std_msgs REQUIRED) +find_package(ament_cmake_auto REQUIRED) +ament_auto_find_build_dependencies() set(msg_files "msg/McmHeartbeat.msg" diff --git a/sygnal_can_interface/sygnal_can_msgs/package.xml b/sygnal_can_interface/sygnal_can_msgs/package.xml index 201f4a7..239c3bc 100644 --- a/sygnal_can_interface/sygnal_can_msgs/package.xml +++ b/sygnal_can_interface/sygnal_can_msgs/package.xml @@ -8,8 +8,11 @@ Apache-2.0 ament_cmake + ament_cmake_auto rosidl_default_generators + builtin_interfaces + std_msgs rosidl_interface_packages