Skip to content

Commit f1ea294

Browse files
Ryanf55mergify[bot]
authored andcommitted
Use ament_export_targets
* Link to exported namespace targets when possible Signed-off-by: Ryan Friedman <[email protected]> (cherry picked from commit c0c7ef1)
1 parent c116f0f commit f1ea294

File tree

2 files changed

+41
-17
lines changed

2 files changed

+41
-17
lines changed

grid_map_costmap_2d/CMakeLists.txt

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.5)
1+
cmake_minimum_required(VERSION 3.13)
22
project(grid_map_costmap_2d)
33

44
## Find ament_cmake macros and libraries
@@ -7,23 +7,14 @@ find_package(grid_map_cmake_helpers REQUIRED)
77
find_package(grid_map_core REQUIRED)
88
find_package(geometry_msgs REQUIRED)
99
find_package(nav2_costmap_2d REQUIRED)
10+
1011
find_package(tf2_ros REQUIRED)
1112
find_package(tf2_geometry_msgs REQUIRED)
1213

1314
find_package(Eigen3 REQUIRED)
1415

1516
grid_map_package()
1617

17-
## Specify additional locations of header files
18-
include_directories(
19-
include
20-
SYSTEM
21-
${EIGEN3_INCLUDE_DIR}
22-
${grid_map_core_INCLUDE_DIRS}
23-
${nav2_costmap_2d_INCLUDE_DIRS}
24-
${geometry_msgs_INCLUDE_DIRS}
25-
)
26-
2718
set(dependencies
2819
grid_map_core
2920
geometry_msgs
@@ -32,13 +23,44 @@ set(dependencies
3223
tf2_geometry_msgs
3324
)
3425

26+
add_library(${PROJECT_NAME}
27+
include/grid_map_costmap_2d/costmap_2d_converter.hpp
28+
include/grid_map_costmap_2d/grid_map_costmap_2d.hpp
29+
)
30+
31+
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
32+
33+
target_link_libraries(${PROJECT_NAME}
34+
PUBLIC
35+
grid_map_core::grid_map_core
36+
${geometry_msgs_TARGETS}
37+
${tf2_geometry_msgs_TARGETS}
38+
nav2_costmap_2d::nav2_costmap_2d_core
39+
tf2_ros::tf2_ros
40+
)
41+
42+
target_include_directories(${PROJECT_NAME}
43+
PUBLIC
44+
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
45+
"$<INSTALL_INTERFACE:include/${PROJECT_NAME}>"
46+
)
47+
3548
#############
3649
## Install ##
3750
#############
3851

52+
# Mark library for installation
53+
install(
54+
TARGETS ${PROJECT_NAME}
55+
EXPORT export_${PROJECT_NAME}
56+
LIBRARY DESTINATION lib
57+
ARCHIVE DESTINATION lib
58+
RUNTIME DESTINATION lib/${PROJECT_NAME}
59+
)
60+
3961
# Mark cpp header files for installation
4062
install(
41-
DIRECTORY include/${PROJECT_NAME}/
63+
DIRECTORY include/
4264
DESTINATION include/${PROJECT_NAME}
4365
FILES_MATCHING PATTERN "*.hpp"
4466
)
@@ -77,6 +99,6 @@ if(BUILD_TESTING)
7799
add_subdirectory(test)
78100
endif()
79101

80-
ament_export_include_directories(include)
102+
ament_export_targets(export_${PROJECT_NAME} HAS_LIBRARY_TARGET)
81103
ament_export_dependencies(${dependencies})
82104
ament_package()

grid_map_costmap_2d/test/CMakeLists.txt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@ ament_add_gtest(${PROJECT_NAME}-test
33
test_costmap_2d_converter.cpp
44
)
55

6-
ament_target_dependencies(${PROJECT_NAME}-test
7-
${dependencies}
6+
target_link_libraries(${PROJECT_NAME}-test
7+
${PROJECT_NAME}::${PROJECT_NAME}
88
)
99

1010
ament_add_gtest(costmap-2d-ros-test
1111
test_costmap_2d_ros.cpp
1212
)
1313

14-
ament_target_dependencies(costmap-2d-ros-test
15-
${dependencies}
14+
target_link_libraries(costmap-2d-ros-test
15+
${PROJECT_NAME}::${PROJECT_NAME}
1616
)
17+
18+

0 commit comments

Comments
 (0)