@@ -9,14 +9,13 @@ set(CMAKE_CXX_STANDARD 23)
99set (CMAKE_CXX_STANDARD_REQUIRED ON )
1010set (CMAKE_CXX_EXTENSIONS OFF )
1111
12- set (CMAKE_BUILD_TYPE Debug)
13-
1412# Dependencies
1513find_package (ament_cmake REQUIRED )
1614find_package (rclcpp REQUIRED )
1715find_package (rclcpp_lifecycle REQUIRED )
1816find_package (sensor_msgs REQUIRED )
1917find_package (easynav_common REQUIRED )
18+ find_package (easynav_core REQUIRED )
2019find_package (std_msgs REQUIRED )
2120find_package (std_srvs REQUIRED )
2221find_package (geometry_msgs REQUIRED )
@@ -27,48 +26,61 @@ find_package(yaml_cpp_vendor REQUIRED)
2726find_package (cv_bridge REQUIRED )
2827
2928set (dependencies
30- rclcpp
31- rclcpp_lifecycle
32- sensor_msgs
33- std_msgs
34- std_srvs
35- geometry_msgs
36- easynav_common
37- grid_map_ros
38- grid_map_msgs
39- ament_index_cpp
40- yaml_cpp_vendor
41- cv_bridge
29+ rclcpp::rclcpp
30+ rclcpp_lifecycle::rclcpp_lifecycle
31+ easynav_common::easynav_common
32+ easynav_core::easynav_core
33+ grid_map_ros::grid_map_ros
34+ ament_index_cpp::ament_index_cpp
35+ cv_bridge::cv_bridge
36+ ${sensor_msgs_TARGETS}
37+ ${std_msgs_TARGETS}
38+ ${std_srvs_TARGETS}
39+ ${geometry_msgs_TARGETS}
40+ ${grid_map_msgs_TARGETS}
4241)
4342
44- include_directories (include )
45-
4643# Library
4744add_library (${PROJECT_NAME} SHARED
45+ src/easynav_gridmap_maps_manager/GridmapMapsManager.cpp
4846 src/easynav_gridmap_maps_manager/GridmapMapsBuilderNode.cpp
4947 src/easynav_gridmap_maps_manager/utils.cpp
5048)
51- ament_target_dependencies (${PROJECT_NAME} ${dependencies} )
49+ target_include_directories (${PROJECT_NAME} PUBLIC
50+ $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} /include >
51+ $<BUILD_INTERFACE :${yaml -cpp_INCLUDE_DIRS }>
52+ $<INSTALL_INTERFACE :include /${PROJECT_NAME} >
53+ )
54+ target_link_libraries (${PROJECT_NAME} PUBLIC ${dependencies} )
5255
5356# Executable
5457add_executable (gridmap_maps_builder_main src/gridmap_maps_builder_main.cpp )
55- ament_target_dependencies (gridmap_maps_builder_main ${dependencies} )
56- target_link_libraries (gridmap_maps_builder_main ${PROJECT_NAME} )
58+ target_include_directories (${PROJECT_NAME} PUBLIC
59+ $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} /include >
60+ $<INSTALL_INTERFACE :include /${PROJECT_NAME} >
61+ )
62+ target_link_libraries (gridmap_maps_builder_main ${PROJECT_NAME} ${dependencies} )
5763
58- # Install headers
59- install ( DIRECTORY include/
60- DESTINATION include/
64+ install (
65+ DIRECTORY include/
66+ DESTINATION include/${PROJECT_NAME}
6167)
6268
63- # Install targets
6469install (TARGETS
65- ${PROJECT_NAME}
6670 gridmap_maps_builder_main
6771 ARCHIVE DESTINATION lib
6872 LIBRARY DESTINATION lib
6973 RUNTIME DESTINATION lib/${PROJECT_NAME}
7074)
7175
76+ install (TARGETS
77+ ${PROJECT_NAME}
78+ EXPORT export_${PROJECT_NAME}
79+ ARCHIVE DESTINATION lib
80+ LIBRARY DESTINATION lib
81+ RUNTIME DESTINATION lib/${PROJECT_NAME}
82+ )
83+
7284# Tests
7385if (BUILD_TESTING)
7486 find_package (ament_lint_auto REQUIRED )
@@ -80,9 +92,25 @@ if(BUILD_TESTING)
8092 add_subdirectory (tests )
8193endif ()
8294
83- # Export
84- ament_export_include_directories (include )
95+ ament_export_include_directories ("include/${PROJECT_NAME} " )
8596ament_export_libraries (${PROJECT_NAME} )
86- ament_export_dependencies ( ${dependencies } )
97+ ament_export_targets ( export_${PROJECT_NAME } )
8798
99+ # Register the plugin
100+ pluginlib_export_plugin_description_file (easynav_core easynav_gridmap_maps_manager_plugins.xml )
101+
102+ ament_export_dependencies (
103+ rclcpp
104+ rclcpp_lifecycle
105+ sensor_msgs
106+ std_msgs
107+ std_srvs
108+ geometry_msgs
109+ easynav_common
110+ grid_map_ros
111+ grid_map_msgs
112+ ament_index_cpp
113+ yaml_cpp_vendor
114+ cv_bridge
115+ )
88116ament_package ()
0 commit comments