cmake_minimum_required(VERSION 3.5) project(moveit_task_constructor_demo) if(NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 17) endif() set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) find_package(moveit_core REQUIRED) find_package(moveit_task_constructor_core REQUIRED) find_package(moveit_task_constructor_msgs REQUIRED) find_package(moveit_ros_planning REQUIRED) find_package(moveit_ros_planning_interface REQUIRED) find_package(tf2_eigen REQUIRED) find_package(rosparam_shortcuts REQUIRED) set(THIS_PACKAGE_INCLUDE_DEPENDS rclcpp moveit_core moveit_task_constructor_core moveit_task_constructor_msgs moveit_ros_planning moveit_ros_planning_interface tf2_eigen rosparam_shortcuts) add_library(${PROJECT_NAME}_pick_place_task SHARED src/pick_place_task.cpp) ament_target_dependencies(${PROJECT_NAME}_pick_place_task ${THIS_PACKAGE_INCLUDE_DEPENDS}) install(TARGETS ${PROJECT_NAME}_pick_place_task ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION lib/${PROJECT_NAME}) include_directories(include) # declare a demo consisting of a single cpp file function(demo name) add_executable(${PROJECT_NAME}_${name} src/${name}.cpp) ament_target_dependencies(${PROJECT_NAME}_${name} ${THIS_PACKAGE_INCLUDE_DEPENDS}) set_target_properties(${PROJECT_NAME}_${name} PROPERTIES OUTPUT_NAME ${name} PREFIX "") install(TARGETS ${PROJECT_NAME}_${name} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION lib/${PROJECT_NAME} ) endfunction() demo(cartesian) demo(modular) demo(alternative_path_costs) demo(ik_clearance_cost) demo(pick_place_demo) target_link_libraries(${PROJECT_NAME}_pick_place_demo ${PROJECT_NAME}_pick_place_task) install(DIRECTORY launch config DESTINATION share/${PROJECT_NAME} ) # TODO: Port tests # add_subdirectory(test) ament_package()