68 lines
1.9 KiB
CMake
68 lines
1.9 KiB
CMake
cmake_minimum_required(VERSION 3.8)
|
|
project(costmap_compressor)
|
|
|
|
add_compile_options(-Wall -Wextra -Wpedantic -fsanitize=address)
|
|
add_link_options(-fsanitize=address)
|
|
|
|
# find dependencies
|
|
find_package(ament_cmake REQUIRED)
|
|
find_package(ament_cmake_ros REQUIRED)
|
|
find_package(rosidl_default_generators REQUIRED)
|
|
find_package(nav2_msgs REQUIRED)
|
|
find_package(Snappy REQUIRED)
|
|
find_package(rclcpp REQUIRED)
|
|
|
|
rosidl_generate_interfaces(${PROJECT_NAME}
|
|
"msg/CompressedCostmap.msg"
|
|
DEPENDENCIES
|
|
"nav2_msgs"
|
|
"std_msgs"
|
|
)
|
|
rosidl_get_typesupport_target(costmap_compressor_msgs ${PROJECT_NAME} "rosidl_typesupport_cpp")
|
|
|
|
add_library(CostmapCompressor src/CostmapCompressor.cpp)
|
|
add_library(costmap_compressor::CostmapCompressor ALIAS CostmapCompressor)
|
|
target_link_libraries(CostmapCompressor PUBLIC
|
|
snappy
|
|
${nav2_msgs_TARGETS}
|
|
${costmap_compressor_msgs}
|
|
)
|
|
target_compile_features(CostmapCompressor PUBLIC c_std_99 cxx_std_17) # Require C99 and C++17
|
|
target_include_directories(CostmapCompressor PUBLIC
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
$<INSTALL_INTERFACE:include/${PROJECT_NAME}>)
|
|
|
|
install(
|
|
DIRECTORY include/
|
|
DESTINATION include/${PROJECT_NAME}
|
|
)
|
|
install(
|
|
TARGETS CostmapCompressor
|
|
EXPORT export_${PROJECT_NAME}
|
|
ARCHIVE DESTINATION lib
|
|
LIBRARY DESTINATION lib
|
|
RUNTIME DESTINATION bin
|
|
)
|
|
|
|
if(BUILD_TESTING)
|
|
find_package(ament_cmake_gtest REQUIRED)
|
|
ament_add_gtest(costmap_compressor_test test/costmap_compressor_test.cpp)
|
|
target_include_directories(costmap_compressor_test PUBLIC
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
$<INSTALL_INTERFACE:include>
|
|
)
|
|
target_link_libraries(costmap_compressor_test CostmapCompressor rclcpp::rclcpp)
|
|
endif()
|
|
|
|
ament_export_include_directories(
|
|
"include/${PROJECT_NAME}"
|
|
)
|
|
ament_export_libraries(
|
|
CostmapCompressor
|
|
)
|
|
ament_export_targets(
|
|
export_${PROJECT_NAME}
|
|
)
|
|
|
|
ament_package()
|