CMakeLists.txt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. )
  27. # 设置头文件路径
  28. target_include_directories(wheelchair_state_machine_node PRIVATE
  29. ${CMAKE_CURRENT_SOURCE_DIR}/include
  30. ${Eigen3_INCLUDE_DIRS}
  31. )
  32. # 设置 ROS2 依赖
  33. ament_target_dependencies(wheelchair_state_machine_node
  34. rclcpp
  35. std_msgs
  36. sensor_msgs
  37. geometry_msgs
  38. visualization_msgs
  39. tf2_geometry_msgs
  40. )
  41. ament_target_dependencies(test_error_publisher
  42. rclcpp
  43. std_msgs
  44. )
  45. # 安装规则
  46. install(TARGETS
  47. wheelchair_state_machine_node
  48. test_error_publisher
  49. RUNTIME DESTINATION lib/${PROJECT_NAME}
  50. )
  51. install(DIRECTORY include/
  52. DESTINATION include/
  53. )
  54. ament_package()