cmake_minimum_required(VERSION 3.0.2)
project(e_stop_relay)

# 查找必要的catkin组件
find_package(catkin REQUIRED COMPONENTS
  roscpp
  serial
  std_msgs
  message_generation
)

# 声明消息文件
add_message_files(
  FILES
)

# 声明服务文件
add_service_files(
  FILES
  EStopService.srv
)

# 生成消息文件
generate_messages(
  DEPENDENCIES
  std_msgs
)

# 配置catkin包
catkin_package(
  INCLUDE_DIRS include
  LIBRARIES e_stop_relay
  CATKIN_DEPENDS roscpp serial std_msgs message_runtime
)

# 包含头文件路径
include_directories(
  include
  ${catkin_INCLUDE_DIRS}
)

# 编译可执行文件
add_executable(e_stop_relay_node
  src/e_stop_relay_node.cpp
)

# 添加消息生成依赖
add_dependencies(e_stop_relay_node
  ${${PROJECT_NAME}_EXPORTED_TARGETS}
  ${catkin_EXPORTED_TARGETS}
)

# 链接依赖库
target_link_libraries(e_stop_relay_node
  ${catkin_LIBRARIES}
)

# 安装可执行文件
install(TARGETS e_stop_relay_node
  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

# 安装头文件
install(DIRECTORY include/${PROJECT_NAME}/
  DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
  FILES_MATCHING PATTERN "*.h"
  PATTERN ".svn" EXCLUDE
)
