@@ -14,22 +14,22 @@ endif()
1414
1515# find dependencies
1616find_package (ament_cmake REQUIRED)
17+ find_package (example_interfaces REQUIRED)
18+ find_package (control_msgs REQUIRED)
1719find_package (controller_interface REQUIRED)
20+ find_package (generate_parameter_library REQUIRED)
1821find_package (hardware_interface REQUIRED)
1922find_package (pluginlib REQUIRED)
2023find_package (rclcpp REQUIRED)
2124find_package (rclcpp_lifecycle REQUIRED)
2225find_package (realtime_tools REQUIRED)
23- find_package (generate_parameter_library REQUIRED)
24- find_package (control_msgs REQUIRED)
25-
26+ find_package (sensor_msgs REQUIRED)
2627
2728generate_parameter_library(gpio_command_controller_parameters
2829 src/gpio_command_controller_parameters.yaml
2930)
3031
31- add_library (gpio_controllers
32- SHARED
32+ add_library (gpio_controllers SHARED
3333 src/gpio_command_controller.cpp
3434)
3535target_include_directories (gpio_controllers PRIVATE include )
@@ -44,9 +44,30 @@ ament_target_dependencies(gpio_controllers PUBLIC
4444 realtime_tools
4545 control_msgs
4646)
47- # Causes the visibility macros to use dllexport rather than dllimport,
48- # which is appropriate when building the dll but not consuming it.
49- target_compile_definitions (gpio_controllers PRIVATE "GPIO_COMMAND_CONTROLLER_BUILDING_DLL" )
47+
48+ generate_parameter_library(gpio_tool_controller_parameters
49+ src/gpio_tool_controller.yaml
50+ )
51+ add_library (gpio_tool_controllers SHARED
52+ src/gpio_tool_controller.cpp
53+ )
54+ target_compile_features (gpio_tool_controllers PUBLIC cxx_std_20)
55+ target_include_directories (gpio_tool_controllers PUBLIC
56+ "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /include>"
57+ "$<INSTALL_INTERFACE:include/${PROJECT_NAME} >" )
58+ target_link_libraries (gpio_tool_controllers PUBLIC
59+ gpio_tool_controller_parameters
60+ controller_interface::controller_interface
61+ hardware_interface::hardware_interface
62+ pluginlib::pluginlib
63+ rclcpp::rclcpp
64+ rclcpp_lifecycle::rclcpp_lifecycle
65+ realtime_tools::realtime_tools
66+ ${control_msgs_TARGETS}
67+ ${builtin_interfaces_TARGETS}
68+ ${example_interfaces_TARGETS}
69+ )
70+
5071pluginlib_export_plugin_description_file(controller_interface gpio_controllers_plugin.xml)
5172
5273install (
@@ -57,6 +78,7 @@ install(
5778install (
5879 TARGETS
5980 gpio_controllers
81+ gpio_tool_controllers
6082 RUNTIME DESTINATION bin
6183 ARCHIVE DESTINATION lib
6284 LIBRARY DESTINATION lib
@@ -97,6 +119,21 @@ if(BUILD_TESTING)
97119 ros2_control_test_assets
98120 control_msgs
99121 )
122+
123+ # ament_add_gmock(test_gpio_tool_controller
124+ # test/gpio_tool_controller/test_gpio_tool_controller.cpp
125+ # test/gpio_tool_controller/test_gpio_tool_controller_open.cpp
126+ # test/gpio_tool_controller/test_gpio_tool_controller_close.cpp
127+ # test/gpio_tool_controller/test_gpio_tool_controller_all_param_set.cpp
128+ # test/gpio_tool_controller/test_gpio_tool_controller_open_close_action.cpp
129+ # test/gpio_tool_controller/test_gpio_tool_controller_reconfigure.cpp
130+ # test/gpio_tool_controller/test_gpio_tool_controller_reconfigure_action.cpp
131+ # )
132+ # target_include_directories(test_gpio_tool_controller PRIVATE include)
133+ # target_link_libraries(test_gpio_tool_controller
134+ # gpio_tool_controller
135+ # ros2_control_test_assets::ros2_control_test_assets
136+ # )
100137endif ()
101138
102139ament_export_dependencies(
@@ -111,5 +148,6 @@ ament_export_include_directories(
111148)
112149ament_export_libraries(
113150 gpio_controllers
151+ gpio_tool_controllers
114152)
115153ament_package()
0 commit comments