cmake_minimum_required(VERSION 3.8) project(sweet_webots_robot) if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options(-Wall -Wextra -Wpedantic) endif() if(NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 14) endif() find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) find_package(std_msgs REQUIRED) find_package(geometry_msgs REQUIRED) find_package(nav_msgs REQUIRED) find_package(pluginlib REQUIRED) find_package(webots_ros2_driver REQUIRED) find_package(sweet_msg REQUIRED) find_package(visualization_msgs REQUIRED) find_package(CURL REQUIRED) pluginlib_export_plugin_description_file( webots_ros2_driver webots_robot_driver.xml ) add_library( ${PROJECT_NAME} SHARED src/WebotsRobotDriver.cpp ) target_include_directories( ${PROJECT_NAME} PRIVATE include ) add_executable( path_visualizer src/PathVisualizer.cpp ) ament_target_dependencies( ${PROJECT_NAME} pluginlib rclcpp webots_ros2_driver geometry_msgs nav_msgs sweet_msg visualization_msgs ) ament_target_dependencies( path_visualizer pluginlib rclcpp webots_ros2_driver geometry_msgs nav_msgs sweet_msg visualization_msgs ) target_include_directories( path_visualizer PRIVATE include ) target_link_libraries( path_visualizer CURL::libcurl ) ament_target_dependencies( path_visualizer rclcpp geometry_msgs nav_msgs ) install( TARGETS path_visualizer DESTINATION lib/${PROJECT_NAME} ) install( TARGETS ${PROJECT_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) install( DIRECTORY launch resource worlds DESTINATION share/${PROJECT_NAME}/ ) install( DIRECTORY urdf meshes launch DESTINATION share/${PROJECT_NAME} ) ament_export_include_directories( include ) ament_export_libraries( ${PROJECT_NAME} ) ament_package()