@@ -20,6 +20,15 @@ find_package(composition_interfaces REQUIRED)
20
20
find_package (rclcpp REQUIRED)
21
21
find_package (rcpputils REQUIRED)
22
22
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
+
23
32
add_library (
24
33
component_manager
25
34
SHARED
@@ -87,10 +96,7 @@ if(BUILD_TESTING)
87
96
88
97
set (components "" )
89
98
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 )
94
100
#rclcpp_components_register_nodes(test_component "test_rclcpp_components::TestComponent")
95
101
set (components "${components} test_rclcpp_components::TestComponentFoo;$<TARGET_FILE:test_component>\n " )
96
102
set (components "${components} test_rclcpp_components::TestComponentBar;$<TARGET_FILE:test_component>\n " )
@@ -138,7 +144,7 @@ if(BUILD_TESTING)
138
144
endif ()
139
145
140
146
install (
141
- TARGETS component_manager EXPORT component_manager
147
+ TARGETS component component_manager EXPORT export_ ${PROJECT_NAME}
142
148
ARCHIVE DESTINATION lib
143
149
LIBRARY DESTINATION lib
144
150
RUNTIME DESTINATION bin
@@ -165,7 +171,7 @@ install(
165
171
# specific order: dependents before dependencies
166
172
ament_export_include_directories(include )
167
173
ament_export_libraries(component_manager)
168
- ament_export_targets(component_manager )
174
+ ament_export_targets(export_ ${PROJECT_NAME} )
169
175
ament_export_dependencies(ament_index_cpp)
170
176
ament_export_dependencies(class_loader)
171
177
ament_export_dependencies(composition_interfaces)
0 commit comments