costmap_compressor/CMakeLists.txt

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