Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use ament_export_targets in grid_map_costmap_2d (backport #424) #449

Merged
merged 1 commit into from
Jul 28, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Use ament_export_targets
* Link to exported namespace targets when possible
* And use INTERFACE targets

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
(cherry picked from commit c0c7ef1)
Ryanf55 committed Jul 28, 2024
commit 6c5c09f672ba2576f62f92b6690f2fc503864bb3
47 changes: 34 additions & 13 deletions grid_map_costmap_2d/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.13)
project(grid_map_costmap_2d)

## Find ament_cmake macros and libraries
@@ -14,16 +14,6 @@ find_package(Eigen3 REQUIRED)

grid_map_package()

## Specify additional locations of header files
include_directories(
include
SYSTEM
${EIGEN3_INCLUDE_DIR}
${grid_map_core_INCLUDE_DIRS}
${nav2_costmap_2d_INCLUDE_DIRS}
${geometry_msgs_INCLUDE_DIRS}
)

set(dependencies
grid_map_core
geometry_msgs
@@ -32,13 +22,44 @@ set(dependencies
tf2_geometry_msgs
)

add_library(${PROJECT_NAME} INTERFACE
include/grid_map_costmap_2d/costmap_2d_converter.hpp
include/grid_map_costmap_2d/grid_map_costmap_2d.hpp
)

add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})

target_link_libraries(${PROJECT_NAME}
INTERFACE
grid_map_core::grid_map_core
${geometry_msgs_TARGETS}
${tf2_geometry_msgs_TARGETS}
nav2_costmap_2d::nav2_costmap_2d_core
tf2_ros::tf2_ros
)

target_include_directories(${PROJECT_NAME}
INTERFACE
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:include/${PROJECT_NAME}>"
)

#############
## Install ##
#############

# Mark library for installation
install(
TARGETS ${PROJECT_NAME}
EXPORT export_${PROJECT_NAME}
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib/${PROJECT_NAME}
)

# Mark cpp header files for installation
install(
DIRECTORY include/${PROJECT_NAME}/
DIRECTORY include/
DESTINATION include/${PROJECT_NAME}
FILES_MATCHING PATTERN "*.hpp"
)
@@ -77,6 +98,6 @@ if(BUILD_TESTING)
add_subdirectory(test)
endif()

ament_export_include_directories(include)
ament_export_targets(export_${PROJECT_NAME} HAS_LIBRARY_TARGET)
ament_export_dependencies(${dependencies})
ament_package()
9 changes: 5 additions & 4 deletions grid_map_costmap_2d/test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -3,14 +3,15 @@ ament_add_gtest(${PROJECT_NAME}-test
test_costmap_2d_converter.cpp
)

ament_target_dependencies(${PROJECT_NAME}-test
${dependencies}
target_link_libraries(${PROJECT_NAME}-test
${PROJECT_NAME}::${PROJECT_NAME}
)

ament_add_gtest(costmap-2d-ros-test
test_costmap_2d_ros.cpp
)

ament_target_dependencies(costmap-2d-ros-test
${dependencies}
target_link_libraries(costmap-2d-ros-test
${PROJECT_NAME}::${PROJECT_NAME}
)