forked from ros-controls/ros2_controllers
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
131 lines (116 loc) · 4.2 KB
/
CMakeLists.txt
File metadata and controls
131 lines (116 loc) · 4.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
cmake_minimum_required(VERSION 3.16)
project(joint_trajectory_controller)
find_package(ros2_control_cmake REQUIRED)
set_compiler_options()
export_windows_symbols()
set(THIS_PACKAGE_INCLUDE_DEPENDS
angles
control_msgs
control_toolbox
controller_interface
generate_parameter_library
hardware_interface
pluginlib
rclcpp
rclcpp_action
rclcpp_lifecycle
realtime_tools
rsl
tl_expected
trajectory_msgs
urdf
)
find_package(ament_cmake REQUIRED)
find_package(backward_ros REQUIRED)
foreach(Dependency IN ITEMS ${THIS_PACKAGE_INCLUDE_DEPENDS})
find_package(${Dependency} REQUIRED)
endforeach()
generate_parameter_library(joint_trajectory_controller_parameters
src/joint_trajectory_controller_parameters.yaml
include/joint_trajectory_controller/validate_jtc_parameters.hpp
)
add_library(joint_trajectory_controller SHARED
src/joint_trajectory_controller.cpp
src/trajectory.cpp
src/validate_jtc_parameters.cpp
)
target_compile_features(joint_trajectory_controller PUBLIC cxx_std_17)
if(WIN32)
target_compile_definitions(joint_trajectory_controller PRIVATE _USE_MATH_DEFINES)
endif()
target_include_directories(joint_trajectory_controller PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include/joint_trajectory_controller>
)
target_link_libraries(joint_trajectory_controller PUBLIC
joint_trajectory_controller_parameters
control_toolbox::control_toolbox
controller_interface::controller_interface
hardware_interface::hardware_interface
pluginlib::pluginlib
rclcpp::rclcpp
rclcpp_action::rclcpp_action
rclcpp_lifecycle::rclcpp_lifecycle
realtime_tools::realtime_tools
rsl::rsl
tl_expected::tl_expected
urdf::urdf
angles::angles
${trajectory_msgs_TARGETS}
${control_msgs_TARGETS})
pluginlib_export_plugin_description_file(controller_interface joint_trajectory_plugin.xml)
if(BUILD_TESTING)
find_package(ament_cmake_gmock REQUIRED)
find_package(controller_manager REQUIRED)
find_package(ros2_control_test_assets REQUIRED)
ament_add_gmock(test_trajectory test/test_trajectory.cpp)
target_link_libraries(test_trajectory
joint_trajectory_controller
ros2_control_test_assets::ros2_control_test_assets
)
target_compile_definitions(test_trajectory PRIVATE _USE_MATH_DEFINES)
ament_add_gmock(test_tolerances test/test_tolerances.cpp)
target_link_libraries(test_tolerances
joint_trajectory_controller
ros2_control_test_assets::ros2_control_test_assets
)
ament_add_gmock(test_trajectory_controller
test/test_trajectory_controller.cpp)
set_tests_properties(test_trajectory_controller PROPERTIES TIMEOUT 220)
target_link_libraries(test_trajectory_controller
joint_trajectory_controller
ros2_control_test_assets::ros2_control_test_assets
)
target_compile_definitions(test_trajectory_controller PRIVATE _USE_MATH_DEFINES)
add_definitions(-DTEST_FILES_DIRECTORY="${CMAKE_CURRENT_SOURCE_DIR}/test")
ament_add_gmock(test_load_joint_trajectory_controller
test/test_load_joint_trajectory_controller.cpp
)
target_link_libraries(test_load_joint_trajectory_controller
joint_trajectory_controller
controller_manager::controller_manager
ros2_control_test_assets::ros2_control_test_assets
)
ament_add_gmock(test_trajectory_actions
test/test_trajectory_actions.cpp
)
set_tests_properties(test_trajectory_actions PROPERTIES TIMEOUT 330)
target_link_libraries(test_trajectory_actions
joint_trajectory_controller
ros2_control_test_assets::ros2_control_test_assets)
endif()
install(
DIRECTORY include/
DESTINATION include/joint_trajectory_controller
)
install(TARGETS
joint_trajectory_controller
joint_trajectory_controller_parameters
EXPORT export_joint_trajectory_controller
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
)
ament_export_targets(export_joint_trajectory_controller HAS_LIBRARY_TARGET)
ament_export_dependencies(${THIS_PACKAGE_INCLUDE_DEPENDS})
ament_package()