75 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| cmake_minimum_required(VERSION 3.5)
 | |
| project(dynamixel_ros2_control)
 | |
| 
 | |
| # Default to C++17
 | |
| if(NOT CMAKE_CXX_STANDARD)
 | |
|   set(CMAKE_CXX_STANDARD 17)
 | |
| endif()
 | |
| 
 | |
| if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
 | |
|   add_compile_options(-Wall -Wextra -Wpedantic -O3)
 | |
| endif()
 | |
| 
 | |
| find_package(ament_cmake REQUIRED)
 | |
| find_package(hardware_interface REQUIRED)
 | |
| find_package(pluginlib REQUIRED)
 | |
| find_package(rclcpp REQUIRED)
 | |
| find_package(dynamixel_sdk REQUIRED COMPONENTS)
 | |
| 
 | |
| add_library(
 | |
|   ${PROJECT_NAME}
 | |
|   SHARED
 | |
|   src/dynamixel_ros2_control.cpp
 | |
| )
 | |
| 
 | |
| target_include_directories(
 | |
|   ${PROJECT_NAME}
 | |
|   PUBLIC
 | |
|     $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
 | |
|     $<INSTALL_INTERFACE:include>)
 | |
| 
 | |
| ament_target_dependencies(
 | |
|   ${PROJECT_NAME}
 | |
|   dynamixel_sdk
 | |
|   rclcpp
 | |
|   hardware_interface
 | |
|   pluginlib
 | |
| )
 | |
| 
 | |
| pluginlib_export_plugin_description_file(hardware_interface dynamixel_ros2_control_hardware_interface.xml)
 | |
| 
 | |
| install(
 | |
|   TARGETS ${PROJECT_NAME}
 | |
|   DESTINATION lib
 | |
| )
 | |
| install(
 | |
|   DIRECTORY include/
 | |
|   DESTINATION include
 | |
| )
 | |
| 
 | |
| if(BUILD_TESTING)
 | |
|   find_package(ament_lint_auto REQUIRED)
 | |
|   # the following line skips the linter which checks for copyrights
 | |
|   # uncomment the line when a copyright and license is not present in all source files
 | |
|   #set(ament_cmake_copyright_FOUND TRUE)
 | |
|   # the following line skips cpplint (only works in a git repo)
 | |
|   # uncomment the line when this package is not in a git repo
 | |
|   #set(ament_cmake_cpplint_FOUND TRUE)
 | |
|   ament_lint_auto_find_test_dependencies()
 | |
| endif()
 | |
| 
 | |
| ament_export_include_directories(
 | |
|   include
 | |
| )
 | |
| ament_export_libraries(
 | |
|   ${PROJECT_NAME}
 | |
| )
 | |
| ament_export_dependencies(
 | |
|   dynamixel_sdk
 | |
|   rclcpp
 | |
|   hardware_interface
 | |
|   pluginlib
 | |
| )
 | |
| 
 | |
| ament_package()
 |