CMakeLists.txt 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. cmake_minimum_required(VERSION 3.16)
  2. project(wheelchair_state_machine)
  3. # 默认使用C++17
  4. set(CMAKE_CXX_STANDARD 17)
  5. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  6. # 查找依赖包
  7. find_package(ament_cmake REQUIRED)
  8. find_package(rclcpp REQUIRED)
  9. find_package(std_msgs REQUIRED)
  10. find_package(geometry_msgs REQUIRED)
  11. find_package(sensor_msgs REQUIRED)
  12. find_package(visualization_msgs REQUIRED)
  13. find_package(tf2 REQUIRED)
  14. find_package(tf2_geometry_msgs REQUIRED)
  15. find_package(Eigen3 REQUIRED)
  16. find_package(interface REQUIRED)
  17. # 创建可执行文件
  18. add_executable(wheelchair_state_machine
  19. src/wheelchair_state_machine.cpp
  20. src/main.cpp
  21. )
  22. # 使用 ament_target_dependencies 自动处理ROS2依赖
  23. ament_target_dependencies(wheelchair_state_machine
  24. rclcpp
  25. std_msgs
  26. geometry_msgs
  27. sensor_msgs
  28. visualization_msgs
  29. tf2
  30. tf2_geometry_msgs
  31. interface # 关键:这里添加interface依赖
  32. )
  33. # 链接Eigen3库(不是ROS2包,需要单独处理)
  34. target_include_directories(wheelchair_state_machine PRIVATE
  35. ${Eigen3_INCLUDE_DIRS}
  36. )
  37. target_link_libraries(wheelchair_state_machine
  38. Eigen3::Eigen
  39. )
  40. # 添加自定义头文件目录
  41. target_include_directories(wheelchair_state_machine PRIVATE
  42. include
  43. )
  44. # 安装可执行文件
  45. install(TARGETS wheelchair_state_machine
  46. RUNTIME DESTINATION lib/${PROJECT_NAME}
  47. )
  48. # 安装头文件(如果有需要)
  49. install(DIRECTORY include/
  50. DESTINATION include/${PROJECT_NAME}
  51. )
  52. ament_package()