################################################################################ # Set minimum required version of cmake, project name and compile options ################################################################################ cmake_minimum_required(VERSION 2.8.3) project(dynamixel_micchy) ## Compile as C++11, supported in ROS Kinetic and newer add_compile_options(-std=c++11) ################################################################################ # Find catkin packages and libraries for catkin and system dependencies ################################################################################ find_package(catkin REQUIRED COMPONENTS roscpp std_srvs geometry_msgs sensor_msgs trajectory_msgs cmake_modules std_msgs ) # Resolve system dependency on yaml-cpp, which apparently does not # provide a CMake find_package() module. find_package(PkgConfig REQUIRED) pkg_check_modules(YAML_CPP REQUIRED yaml-cpp) find_path(YAML_CPP_INCLUDE_DIR NAMES yaml_cpp.h PATHS ${YAML_CPP_INCLUDE_DIRS} ) find_library(YAML_CPP_LIBRARY NAMES YAML_CPP PATHS ${YAML_CPP_LIBRARY_DIRS} ) link_directories(${YAML_CPP_LIBRARY_DIRS}) if(NOT ${YAML_CPP_VERSION} VERSION_LESS "0.5") add_definitions(-DHAVE_NEW_YAMLCPP) endif(NOT ${YAML_CPP_VERSION} VERSION_LESS "0.5") ################################################################################ # Setup for python modules and scripts ################################################################################ ################################################################################ # Declare ROS messages, services and actions ################################################################################ ################################################################################ # Declare ROS dynamic reconfigure parameters ################################################################################ ################################################################################ # Declare catkin specific configuration to be passed to dependent projects ################################################################################ catkin_package( INCLUDE_DIRS include CATKIN_DEPENDS roscpp std_srvs sensor_msgs trajectory_msgs geometry_msgs cmake_modules std_msgs ) ################################################################################ # Build ################################################################################ include_directories( include ${catkin_INCLUDE_DIRS} ${YAML_CPP_INCLUDE_DIRS} ) add_executable(dynamixel2dynamixel src/dynamixel2dynamixel.cpp) add_dependencies(dynamixel2dynamixel ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) target_link_libraries(dynamixel2dynamixel ${catkin_LIBRARIES} ${YAML_CPP_LIBRARIES}) add_executable(dynamixel_reader src/dynamixel_reader.cpp) add_dependencies(dynamixel_reader ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) target_link_libraries(dynamixel_reader ${catkin_LIBRARIES} ${YAML_CPP_LIBRARIES}) add_executable(dynamixel_writer src/dynamixel_writer.cpp) add_dependencies(dynamixel_writer ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) target_link_libraries(dynamixel_writer ${catkin_LIBRARIES} ${YAML_CPP_LIBRARIES}) ################################################################################# ## Install ################################################################################# install(TARGETS dynamixel2dynamixel RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) install(TARGETS dynamixel_reader RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) install(TARGETS dynamixel_writer RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) install(DIRECTORY include/${PROJECT_NAME}/ DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} ) install(DIRECTORY launch config DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} ) ################################################################################ # Test ################################################################################