@@ -20,6 +20,15 @@ find_package(composition_interfaces REQUIRED)
2020find_package (rclcpp REQUIRED)
2121find_package (rcpputils REQUIRED)
2222
23+ # Add an interface library that can be dependend upon by libraries who register components
24+ add_library (component INTERFACE )
25+ target_include_directories (component INTERFACE
26+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
27+ "$<INSTALL_INTERFACE:include>" )
28+ target_link_libraries (component INTERFACE
29+ class_loader::class_loader
30+ rclcpp::rclcpp)
31+
2332add_library (
2433 component_manager
2534 SHARED
@@ -87,10 +96,7 @@ if(BUILD_TESTING)
8796
8897 set (components "" )
8998 add_library (test_component SHARED test /components/test_component.cpp)
90- target_include_directories (test_component PUBLIC include )
91- ament_target_dependencies(test_component
92- "class_loader"
93- "rclcpp" )
99+ target_link_libraries (test_component PRIVATE component )
94100 #rclcpp_components_register_nodes(test_component "test_rclcpp_components::TestComponent")
95101 set (components "${components} test_rclcpp_components::TestComponentFoo;$<TARGET_FILE:test_component>\n " )
96102 set (components "${components} test_rclcpp_components::TestComponentBar;$<TARGET_FILE:test_component>\n " )
@@ -138,7 +144,7 @@ if(BUILD_TESTING)
138144endif ()
139145
140146install (
141- TARGETS component_manager EXPORT component_manager
147+ TARGETS component component_manager EXPORT export_ ${PROJECT_NAME}
142148 ARCHIVE DESTINATION lib
143149 LIBRARY DESTINATION lib
144150 RUNTIME DESTINATION bin
@@ -165,7 +171,7 @@ install(
165171# specific order: dependents before dependencies
166172ament_export_include_directories(include )
167173ament_export_libraries(component_manager)
168- ament_export_targets(component_manager )
174+ ament_export_targets(export_ ${PROJECT_NAME} )
169175ament_export_dependencies(ament_index_cpp)
170176ament_export_dependencies(class_loader)
171177ament_export_dependencies(composition_interfaces)
0 commit comments