@@ -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