runtime/rbs_skill_servers/CMakeLists.txt

179 lines
5.7 KiB
Text
Raw Normal View History

2023-02-03 07:04:12 +00:00
cmake_minimum_required(VERSION 3.8)
project(rbs_skill_servers)
2022-01-31 21:28:39 +04:00
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
endif()
# Default to C++17
2022-01-31 21:28:39 +04:00
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 17)
2022-01-31 21:28:39 +04:00
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
# find dependencies
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclcpp_components REQUIRED)
find_package(rclcpp_action REQUIRED)
find_package(moveit_core REQUIRED)
find_package(moveit_ros_planning REQUIRED)
find_package(moveit_ros_planning_interface REQUIRED)
find_package(moveit_msgs REQUIRED)
find_package(tf2_ros REQUIRED)
find_package(geometry_msgs REQUIRED)
2023-02-03 07:04:12 +00:00
find_package(rbs_skill_interfaces REQUIRED)
find_package(rmw REQUIRED)
2023-04-21 23:28:57 +03:00
find_package(tf2_eigen REQUIRED)
find_package(tf2_msgs REQUIRED)
find_package(tinyxml2_vendor REQUIRED)
find_package(TinyXML2 REQUIRED)
2023-05-16 23:10:19 +02:00
# Default to Fortress
set(SDF_VER 12)
# If the user didn't specify a GZ distribution, pick the one matching the ROS distribution according to REP 2000
if(NOT DEFINED ENV{GZ_VERSION} AND DEFINED ENV{ROS_DISTRO})
if("$ENV{ROS_DISTRO}" STREQUAL "humble")
set(ENV{GZ_VERSION} "fortress")
endif()
endif()
# Find libsdformat matching the picked GZ distribution
if("$ENV{GZ_VERSION}" STREQUAL "fortress")
find_package(sdformat12 REQUIRED)
set(SDF_VER ${sdformat12_VERSION_MAJOR})
message(STATUS "Compiling against Gazebo Fortress (libSDFormat 12)")
elseif("$ENV{GZ_VERSION}" STREQUAL "garden")
find_package(sdformat13 REQUIRED)
set(SDF_VER ${sdformat13_VERSION_MAJOR})
message(STATUS "Compiling against Gazebo Garden (libSDFormat 13)")
# No GZ distribution specified, find any version of libsdformat we can
else()
foreach(major RANGE 13 9)
find_package(sdformat${major} QUIET)
if(sdformat${major}_FOUND)
# Next `find_package` call will be a noop
set(SDF_VER ${major})
message(STATUS "Compiling against libSDFormat ${major}")
break()
endif()
endforeach()
endif()
include_directories(SYSTEM
${TINYXML2_INCLUDE_DIR}
)
link_directories(
${TINYXML2_LIBRARY_DIRS}
)
2022-01-31 21:28:39 +04:00
set(deps
rclcpp
rclcpp_action
moveit_core
moveit_ros_planning
moveit_ros_planning_interface
moveit_msgs
geometry_msgs
tf2_ros
rclcpp_components
2023-02-03 07:04:12 +00:00
rbs_skill_interfaces
2023-04-21 23:28:57 +03:00
tf2_eigen
tf2_msgs
tinyxml2_vendor
2023-05-16 23:10:19 +02:00
geometric_shapes
sdformat${SDF_VER}
2022-01-31 21:28:39 +04:00
)
if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()
add_library(gripper_action_server SHARED src/gripper_control_action_server.cpp)
2023-04-21 23:28:57 +03:00
add_library(pick_place_pose_loader SHARED src/pick_place_pose_loader.cpp)
target_include_directories(gripper_action_server PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>)
2023-04-21 23:28:57 +03:00
target_include_directories(pick_place_pose_loader PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>)
target_compile_definitions(gripper_action_server
2023-04-21 23:28:57 +03:00
PRIVATE "GRIPPER_ACTION_SERVER_CPP_BUILDING_DLL")
target_compile_definitions(pick_place_pose_loader
PRIVATE "PICK_PLACE_POSE_LOADER_CPP_BUILDING_DLL")
ament_target_dependencies(gripper_action_server ${deps})
2023-04-21 23:28:57 +03:00
ament_target_dependencies(pick_place_pose_loader ${deps})
rclcpp_components_register_node(gripper_action_server PLUGIN "rbs_skill_actions::GripperControlActionServer" EXECUTABLE gripper_control_action_server)
2023-04-21 23:28:57 +03:00
rclcpp_components_register_node(pick_place_pose_loader PLUGIN "rbs_skill_actions::GetGraspPickPoseServer" EXECUTABLE pick_place_pose_loader_service_server)
add_executable(move_to_joint_states_action_server src/move_to_joint_states_action_server.cpp)
ament_target_dependencies(move_to_joint_states_action_server ${deps})
2023-04-21 23:28:57 +03:00
#add_executable(pick_place_pose_loader src/get_grasp_pick_pose.cpp)
#ament_target_dependencies(pick_place_pose_loader ${deps})
add_executable(move_topose_action_server src/move_topose_action_server.cpp)
ament_target_dependencies(move_topose_action_server ${deps})
2022-02-07 18:34:33 +04:00
2022-03-16 00:49:48 +04:00
add_executable(move_cartesian_path_action_server src/move_cartesian_path_action_server.cpp)
ament_target_dependencies(move_cartesian_path_action_server ${deps})
add_executable(add_planning_scene_object_service src/add_planning_scene_objects_service.cpp)
ament_target_dependencies(add_planning_scene_object_service ${deps})
add_library(assemble_state_server SHARED src/assemble_state_server.cpp)
target_compile_definitions(assemble_state_server
PRIVATE "ASSEMBLE_STATE_SERVER_CPP_BUILDING_DLL")
ament_target_dependencies(assemble_state_server ${deps})
target_link_libraries(assemble_state_server ${TINYXML2_LIBRARY})
rclcpp_components_register_node(assemble_state_server PLUGIN "AssembleStateServer" EXECUTABLE assemble_state_service_server)
2023-04-21 23:28:57 +03:00
2023-05-16 23:10:19 +02:00
add_library(moveit_update_planning_scene_server SHARED src/moveit_update_planning_scene.cpp)
target_compile_definitions(moveit_update_planning_scene_server
PRIVATE "MOVEIT_UPDATE_PLANNING_SCENE_SERVER_CPP_BUILDING_DLL")
ament_target_dependencies(moveit_update_planning_scene_server ${deps})
target_link_libraries(moveit_update_planning_scene_server ${TINYXML2_LIBRARY})
rclcpp_components_register_node(moveit_update_planning_scene_server PLUGIN "UpdatePlanningSceneServer" EXECUTABLE moveit_update_planning_scene_service_server)
2023-04-21 23:28:57 +03:00
install(
DIRECTORY include/
DESTINATION include
)
2022-01-31 21:28:39 +04:00
install(
TARGETS
move_topose_action_server
gripper_action_server
pick_place_pose_loader
move_to_joint_states_action_server
2022-03-16 00:49:48 +04:00
move_cartesian_path_action_server
add_planning_scene_object_service
assemble_state_server
2023-05-16 23:10:19 +02:00
moveit_update_planning_scene_server
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION lib/${PROJECT_NAME}
2022-01-31 21:28:39 +04:00
)
2023-04-21 23:28:57 +03:00
ament_export_include_directories(
include
)
2022-01-31 21:28:39 +04:00
ament_package()