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 $ $) 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 $ $ ) 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()