@@ -16,22 +16,24 @@ endif()
16
16
17
17
find_package (ament_cmake REQUIRED )
18
18
find_package (angles REQUIRED )
19
- find_package (rclcpp REQUIRED )
19
+ find_package (Boost REQUIRED )
20
+ find_package (builtin_interfaces REQUIRED )
20
21
find_package (diagnostic_msgs REQUIRED )
21
22
find_package (diagnostic_updater REQUIRED )
23
+ find_package (Eigen3 REQUIRED )
22
24
find_package (geographic_msgs REQUIRED )
23
25
find_package (geometry_msgs REQUIRED )
24
26
find_package (message_filters REQUIRED )
25
27
find_package (nav_msgs REQUIRED )
28
+ find_package (rclcpp REQUIRED )
26
29
find_package (rosidl_default_generators REQUIRED )
27
30
find_package (sensor_msgs REQUIRED )
31
+ find_package (std_msgs REQUIRED )
28
32
find_package (std_srvs REQUIRED )
29
33
find_package (tf2 REQUIRED )
30
34
find_package (tf2_eigen REQUIRED )
31
35
find_package (tf2_geometry_msgs REQUIRED )
32
36
find_package (tf2_ros REQUIRED )
33
- find_package (Eigen3 REQUIRED )
34
- find_package (Boost REQUIRED )
35
37
find_package (yaml_cpp_vendor REQUIRED )
36
38
find_package (yaml-cpp REQUIRED )
37
39
@@ -57,12 +59,7 @@ rosidl_generate_interfaces(${PROJECT_NAME}
57
59
ADD_LINTER_TESTS
58
60
)
59
61
60
- include_directories (SYSTEM ${Eigen_INCLUDE_DIRS} )
61
- include_directories (
62
- include
63
- ${EIGEN3_INCLUDE_DIRS}
64
- ${Boost_INCLUDE_DIRS}
65
- )
62
+ rosidl_get_typesupport_target (cpp_typesupport_target "${PROJECT_NAME} " "rosidl_typesupport_cpp" )
66
63
67
64
add_library (
68
65
${library_name}
@@ -75,95 +72,69 @@ add_library(
75
72
src/ros_filter.cpp
76
73
src/ros_filter_utilities.cpp
77
74
src/ros_robot_localization_listener.cpp )
78
-
79
- rosidl_get_typesupport_target (cpp_typesupport_target "${PROJECT_NAME} " "rosidl_typesupport_cpp" )
80
- target_link_libraries (${library_name} "${cpp_typesupport_target} " )
81
-
82
- add_executable (
83
- ekf_node
84
- src/ekf_node.cpp
75
+ target_include_directories (${library_name} PUBLIC
76
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
77
+ "$<INSTALL_INTERFACE:include/${PROJECT_NAME} >"
85
78
)
86
-
87
- add_executable (
88
- ukf_node
89
- src/ukf_node.cpp
90
- )
91
-
92
- add_executable (
93
- navsat_transform_node
94
- src/navsat_transform_node.cpp
79
+ target_link_libraries (${library_name} PUBLIC
80
+ Boost::boost
81
+ "${cpp_typesupport_target} "
82
+ Eigen3::Eigen
83
+ angles::angles
84
+ ${diagnostic_msgs_TARGETS}
85
+ diagnostic_updater::diagnostic_updater
86
+ ${geographic_msgs_TARGETS}
87
+ ${geometry_msgs_TARGETS}
88
+ message_filters::message_filters
89
+ ${nav_msgs_TARGETS}
90
+ rclcpp::rclcpp
91
+ ${sensor_msgs_TARGETS}
92
+ ${std_msgs_TARGETS}
93
+ ${std_srvs_TARGETS}
94
+ tf2::tf2
95
+ tf2_eigen::tf2_eigen
96
+ tf2_geometry_msgs::tf2_geometry_msgs
97
+ tf2_ros::tf2_ros
95
98
)
96
-
97
- add_executable (
98
- robot_localization_listener_node
99
- src/robot_localization_listener_node.cpp
100
- )
101
-
102
- target_link_libraries (
103
- ${library_name}
99
+ target_link_libraries (${library_name} PRIVATE
104
100
${GeographicLib_LIBRARIES}
105
- ${EIGEN3_LIBRARIES}
106
101
yaml-cpp::yaml-cpp
107
102
)
108
103
109
- ament_target_dependencies (
110
- ${library_name}
111
- angles
112
- diagnostic_msgs
113
- diagnostic_updater
114
- geographic_msgs
115
- geometry_msgs
116
- message_filters
117
- nav_msgs
118
- rclcpp
119
- sensor_msgs
120
- std_msgs
121
- std_srvs
122
- tf2
123
- tf2_eigen
124
- tf2_geometry_msgs
125
- tf2_ros
126
- yaml_cpp_vendor
127
- )
128
-
129
- target_link_libraries (
130
- ekf_node
131
- ${library_name}
132
- )
133
-
134
- ament_target_dependencies (
104
+ add_executable (
135
105
ekf_node
136
- rclcpp
106
+ src/ekf_node.cpp
137
107
)
138
-
139
- target_link_libraries (
140
- ukf_node
108
+ target_link_libraries (ekf_node PRIVATE
141
109
${library_name}
110
+ rclcpp::rclcpp
142
111
)
143
112
144
- ament_target_dependencies (
113
+ add_executable (
145
114
ukf_node
146
- rclcpp
115
+ src/ukf_node.cpp
147
116
)
148
-
149
- target_link_libraries (
150
- navsat_transform_node
117
+ target_link_libraries (ukf_node PRIVATE
151
118
${library_name}
119
+ rclcpp::rclcpp
152
120
)
153
121
154
- ament_target_dependencies (
122
+ add_executable (
155
123
navsat_transform_node
156
- rclcpp
124
+ src/navsat_transform_node.cpp
157
125
)
158
-
159
- target_link_libraries (
160
- robot_localization_listener_node
126
+ target_link_libraries (navsat_transform_node PRIVATE
161
127
${library_name}
128
+ rclcpp::rclcpp
162
129
)
163
130
164
- ament_target_dependencies (
131
+ add_executable (
165
132
robot_localization_listener_node
166
- rclcpp
133
+ src/robot_localization_listener_node.cpp
134
+ )
135
+ target_link_libraries (robot_localization_listener_node PRIVATE
136
+ ${library_name}
137
+ rclcpp::rclcpp
167
138
)
168
139
169
140
if (BUILD_TESTING )
@@ -174,6 +145,8 @@ if(BUILD_TESTING)
174
145
find_package (ament_cmake_uncrustify REQUIRED )
175
146
find_package (launch_testing_ament_cmake REQUIRED )
176
147
148
+ ament_find_gtest ()
149
+
177
150
#### FILTER BASE TESTS ####
178
151
ament_add_gtest (filter_base-test test /test_filter_base.cpp )
179
152
target_link_libraries (filter_base-test ${library_name} )
@@ -183,7 +156,6 @@ if(BUILD_TESTING)
183
156
test /test_filter_base_diagnostics_timestamps.cpp )
184
157
target_link_libraries (test_filter_base_diagnostics_timestamps ${library_name} )
185
158
186
- rosidl_get_typesupport_target (cpp_typesupport_target "${PROJECT_NAME} " "rosidl_typesupport_cpp" )
187
159
target_link_libraries (test_filter_base_diagnostics_timestamps "${cpp_typesupport_target} " )
188
160
189
161
add_dependencies (test_filter_base_diagnostics_timestamps ekf_node )
@@ -292,7 +264,8 @@ if(BUILD_TESTING)
292
264
293
265
#### NAVSAT CONVERSION TESTS ####
294
266
ament_add_gtest (test_navsat_conversions test /test_navsat_conversions.cpp )
295
- target_link_libraries (test_navsat_conversions ${library_name} )
267
+ target_include_directories (test_navsat_conversions PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /src>" )
268
+ target_link_libraries (test_navsat_conversions ${library_name} ${GeographicLib_LIBRARIES} )
296
269
297
270
ament_add_gtest_executable (test_ros_robot_localization_listener
298
271
test /test_ros_robot_localization_listener.cpp )
@@ -355,6 +328,7 @@ install(
355
328
)
356
329
357
330
install (TARGETS ${library_name}
331
+ EXPORT ${PROJECT_NAME}
358
332
ARCHIVE DESTINATION lib
359
333
LIBRARY DESTINATION lib
360
334
RUNTIME DESTINATION bin
@@ -373,7 +347,27 @@ install(DIRECTORY
373
347
USE_SOURCE_PERMISSIONS
374
348
)
375
349
376
- ament_export_include_directories (include )
350
+ ament_export_include_directories (include /${PROJECT_NAME} )
377
351
ament_export_libraries (${library_name} )
378
- ament_export_dependencies (rosidl_default_runtime )
352
+ ament_export_dependencies (
353
+ angles
354
+ Boost
355
+ diagnostic_msgs
356
+ diagnostic_updater
357
+ Eigen3
358
+ geographic_msgs
359
+ geometry_msgs
360
+ message_filters
361
+ nav_msgs
362
+ rclcpp
363
+ rosidl_default_runtime
364
+ sensor_msgs
365
+ std_msgs
366
+ std_srvs
367
+ tf2
368
+ tf2_eigen
369
+ tf2_geometry_msgs
370
+ tf2_ros
371
+ )
372
+ ament_export_targets (${PROJECT_NAME} )
379
373
ament_package ()
0 commit comments