CMakeLists.txt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. cmake_minimum_required(VERSION 3.5)
  2. project(wheelchair_state_machine)
  3. # 默认使用 C++14
  4. if(NOT CMAKE_CXX_STANDARD)
  5. set(CMAKE_CXX_STANDARD 14)
  6. endif()
  7. # 查找 ROS2 包
  8. find_package(ament_cmake REQUIRED)
  9. find_package(rclcpp REQUIRED)
  10. find_package(std_msgs REQUIRED)
  11. find_package(sensor_msgs REQUIRED)
  12. find_package(geometry_msgs REQUIRED)
  13. find_package(visualization_msgs REQUIRED)
  14. find_package(tf2_geometry_msgs REQUIRED)
  15. find_package(Eigen3 REQUIRED)
  16. # 1. 主节点可执行文件
  17. add_executable(wheelchair_state_machine_node
  18. src/main.cpp
  19. src/battery_manager.cpp
  20. src/event_input.cpp
  21. src/workflow.cpp
  22. src/ipad_manager.cpp
  23. src/lidascan_ctrl.cpp
  24. src/recharge_tool.cpp
  25. src/report.cpp
  26. src/rotation_manager.cpp
  27. )
  28. # 设置头文件路径
  29. target_include_directories(wheelchair_state_machine_node PRIVATE
  30. ${CMAKE_CURRENT_SOURCE_DIR}/include
  31. ${Eigen3_INCLUDE_DIRS}
  32. )
  33. # 设置 ROS2 依赖
  34. ament_target_dependencies(wheelchair_state_machine_node
  35. rclcpp
  36. std_msgs
  37. sensor_msgs
  38. geometry_msgs
  39. visualization_msgs
  40. tf2_geometry_msgs
  41. )
  42. # 安装规则
  43. install(TARGETS
  44. wheelchair_state_machine_node
  45. RUNTIME DESTINATION lib/${PROJECT_NAME}
  46. )
  47. install(DIRECTORY include/
  48. DESTINATION include/
  49. )
  50. ament_package()