68 lines
2.1 KiB
CMake
68 lines
2.1 KiB
CMake
cmake_minimum_required(VERSION 3.5)
|
|
project(camera_component)
|
|
|
|
if(NOT CMAKE_C_STANDARD)
|
|
set(CMAKE_C_STANDARD 99)
|
|
endif()
|
|
|
|
if(NOT CMAKE_CXX_STANDARD)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
endif()
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
add_compile_options(-Wall -Wextra -Wpedantic)
|
|
endif()
|
|
|
|
find_package(ament_cmake REQUIRED)
|
|
find_package(ament_cmake_ros REQUIRED)
|
|
find_package(image_transport REQUIRED)
|
|
find_package(ros_gz_bridge REQUIRED)
|
|
find_package(rclcpp REQUIRED)
|
|
find_package(rclcpp_components REQUIRED)
|
|
find_package(sensor_msgs REQUIRED)
|
|
find_package(env_manager REQUIRED)
|
|
|
|
find_package(ignition-transport11 REQUIRED)
|
|
set(GZ_TRANSPORT_VER ${ignition-transport11_VERSION_MAJOR})
|
|
|
|
find_package(ignition-msgs8 REQUIRED)
|
|
set(GZ_MSGS_VER ${ignition-msgs8_VERSION_MAJOR})
|
|
|
|
set(GZ_TARGET_PREFIX ignition)
|
|
|
|
add_library(ign_camera_component SHARED
|
|
src/ign_camera_component.cpp)
|
|
target_compile_definitions(ign_camera_component
|
|
PRIVATE "COMPOSITION_BUILDING_DLL")
|
|
target_link_libraries(ign_camera_component
|
|
${GZ_TARGET_PREFIX}-msgs${GZ_MSGS_VER}::core
|
|
${GZ_TARGET_PREFIX}-transport${GZ_TRANSPORT_VER}::core
|
|
)
|
|
ament_target_dependencies(ign_camera_component
|
|
"image_transport"
|
|
"ros_gz_bridge"
|
|
"rclcpp"
|
|
"rclcpp_components"
|
|
"sensor_msgs"
|
|
"env_manager")
|
|
rclcpp_components_register_nodes(ign_camera_component "camera_component::IgnCameraComponent")
|
|
set(node_plugins "${node_plugins}camera_component::IgnCameraComponent;$<TARGET_FILE:camera_component>\n")
|
|
|
|
install(TARGETS ign_camera_component
|
|
DESTINATION lib)
|
|
|
|
if(BUILD_TESTING)
|
|
find_package(ament_lint_auto REQUIRED)
|
|
# the following line skips the linter which checks for copyrights
|
|
# comment the line when a copyright and license is added to all source files
|
|
set(ament_cmake_copyright_FOUND TRUE)
|
|
# the following line skips cpplint (only works in a git repo)
|
|
# comment the line when this package is in a git repo and when
|
|
# a copyright and license is added to all source files
|
|
set(ament_cmake_cpplint_FOUND TRUE)
|
|
ament_lint_auto_find_test_dependencies()
|
|
endif()
|
|
|
|
ament_package()
|