@@ -11,6 +11,18 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
1111 add_compile_options (-Wthread-safety )
1212endif ()
1313
14+ #--------------------------------------------------------------------
15+ # Build options
16+ #--------------------------------------------------------------------
17+ # ros2_medkit fault reporting is off by default to keep the upstream
18+ # build free of extra deps. Turn it on (-DMANYMOVE_WITH_MEDKIT=ON plus
19+ # MANYMOVE_WITH_MEDKIT=1 in the env for rosdep) to pull in the medkit
20+ # overlay; with it off, the FaultReporting mixin and installFaultReporter()
21+ # compile to no-ops so action nodes build unchanged.
22+ option (MANYMOVE_WITH_MEDKIT
23+ "Build with ros2_medkit fault reporting integration"
24+ OFF )
25+
1426#--------------------------------------------------------------------
1527# Dependencies
1628#--------------------------------------------------------------------
@@ -32,8 +44,11 @@ find_package(std_msgs REQUIRED)
3244find_package (simulation_interfaces REQUIRED )
3345find_package (vision_msgs REQUIRED )
3446find_package (rcpputils REQUIRED )
35- find_package (ros2_medkit_fault_reporter REQUIRED )
36- find_package (ros2_medkit_msgs REQUIRED )
47+
48+ if (MANYMOVE_WITH_MEDKIT)
49+ find_package (ros2_medkit_fault_reporter REQUIRED )
50+ find_package (ros2_medkit_msgs REQUIRED )
51+ endif ()
3752
3853#--------------------------------------------------------------------
3954# Library with all BT helper nodes
@@ -59,9 +74,17 @@ ament_target_dependencies(manymove_cpp_trees_lib
5974 manymove_planner manymove_object_manager
6075 trajectory_msgs geometry_msgs tf2 tf2_ros tf2_geometry_msgs std_srvs manymove_msgs control_msgs
6176 std_msgs simulation_interfaces vision_msgs rcpputils
62- ros2_medkit_fault_reporter ros2_medkit_msgs
6377)
6478
79+ if (MANYMOVE_WITH_MEDKIT)
80+ ament_target_dependencies (manymove_cpp_trees_lib
81+ ros2_medkit_fault_reporter ros2_medkit_msgs )
82+ # PUBLIC so consumers (bt_client_* execs, tests) inherit the define and
83+ # pick the medkit-enabled branches in fault_reporting.hpp /
84+ # main_imports_helper.hpp without each target having to set it again.
85+ target_compile_definitions (manymove_cpp_trees_lib PUBLIC MANYMOVE_WITH_MEDKIT )
86+ endif ()
87+
6588#--------------------------------------------------------------------
6689# Helper macro to create BT-client executables
6790#--------------------------------------------------------------------
@@ -75,8 +98,12 @@ macro(bt_client_exec NAME)
7598 manymove_planner manymove_object_manager
7699 trajectory_msgs tf2 std_srvs manymove_msgs control_msgs
77100 std_msgs simulation_interfaces rcpputils
78- ros2_medkit_fault_reporter ros2_medkit_msgs
79101 )
102+
103+ if (MANYMOVE_WITH_MEDKIT)
104+ ament_target_dependencies (${NAME}
105+ ros2_medkit_fault_reporter ros2_medkit_msgs )
106+ endif ()
80107endmacro ()
81108
82109bt_client_exec (bt_client )
@@ -131,9 +158,12 @@ ament_export_dependencies(
131158 manymove_planner manymove_object_manager
132159 trajectory_msgs tf2 tf2_ros tf2_geometry_msgs std_srvs manymove_msgs control_msgs
133160 std_msgs simulation_interfaces vision_msgs rcpputils
134- ros2_medkit_fault_reporter ros2_medkit_msgs
135161)
136162
163+ if (MANYMOVE_WITH_MEDKIT)
164+ ament_export_dependencies (ros2_medkit_fault_reporter ros2_medkit_msgs )
165+ endif ()
166+
137167if (BUILD_TESTING)
138168 find_package (ament_lint_auto REQUIRED )
139169 find_package (ament_cmake_uncrustify REQUIRED )
@@ -152,8 +182,11 @@ if(BUILD_TESTING)
152182 rclcpp rclcpp_action behaviortree_cpp_v3
153183 manymove_planner manymove_object_manager
154184 trajectory_msgs geometry_msgs tf2 tf2_ros tf2_geometry_msgs std_srvs manymove_msgs control_msgs
155- std_msgs simulation_interfaces vision_msgs rcpputils
156- ros2_medkit_fault_reporter ros2_medkit_msgs )
185+ std_msgs simulation_interfaces vision_msgs rcpputils )
186+ if (MANYMOVE_WITH_MEDKIT)
187+ ament_target_dependencies (${target}
188+ ros2_medkit_fault_reporter ros2_medkit_msgs )
189+ endif ()
157190 endif ()
158191 endfunction ()
159192
@@ -184,8 +217,10 @@ if(BUILD_TESTING)
184217 manymove_cpp_trees_add_gtest (test_bt_integration
185218 test /test_bt_integration.cpp )
186219
187- manymove_cpp_trees_add_gtest (test_fault_reporting
188- test /test_fault_reporting.cpp )
220+ if (MANYMOVE_WITH_MEDKIT)
221+ manymove_cpp_trees_add_gtest (test_fault_reporting
222+ test /test_fault_reporting.cpp )
223+ endif ()
189224endif ()
190225
191226ament_package ()
0 commit comments