cmake_minimum_required(VERSION 3.0.2)
project(shiyan2)

# 查找catkin和依赖包
find_package(catkin REQUIRED COMPONENTS
  roscpp
  std_msgs
  geometry_msgs
  visualization_msgs
  message_generation
)

# 添加服务定义
add_service_files(
  FILES
  FFT.srv
)

# 生成消息 - 必须在catkin_package之前调用
generate_messages(
  DEPENDENCIES
  std_msgs
)

# 声明catkin包
catkin_package(
  CATKIN_DEPENDS roscpp std_msgs geometry_msgs visualization_msgs message_runtime
)

# 包含目录
include_directories(
  ${catkin_INCLUDE_DIRS}
)

# 编译节点A
add_executable(nodeA src/nodeA.cpp)
target_link_libraries(nodeA ${catkin_LIBRARIES})

# 编译节点B
add_executable(nodeB src/nodeB.cpp)
target_link_libraries(nodeB ${catkin_LIBRARIES})

# 编译节点C
add_executable(nodeC src/nodeC.cpp)
target_link_libraries(nodeC ${catkin_LIBRARIES})

# 安装规则
install(TARGETS nodeA nodeB nodeC
  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)