cmake_minimum_required(VERSION 3.0.2)
project(tr360_ros)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  sensor_msgs
  pcl_ros
  pcl_conversions
  dynamic_reconfigure
)

# 添加动态参数配置生成
find_package(catkin REQUIRED)
generate_dynamic_reconfigure_options(
  cfg/TR360Config.cfg
)

catkin_package(
  INCLUDE_DIRS include
  LIBRARIES tr360_ros
  CATKIN_DEPENDS roscpp sensor_msgs pcl_ros pcl_conversions
)

include_directories(
  include
  ${catkin_INCLUDE_DIRS}
  ${PCL_INCLUDE_DIRS}
)

add_executable(tr360_node src/tr360_node.cpp)
target_link_libraries(tr360_node
  ${catkin_LIBRARIES}
  ${PCL_LIBRARIES}
)

# 添加网络库链接
target_link_libraries(tr360_node ${Boost_LIBRARIES})

# 测试发布器
add_executable(test_publisher src/test_publisher.cpp)
target_link_libraries(test_publisher
  ${catkin_LIBRARIES}
  ${PCL_LIBRARIES}
)

install(TARGETS test_publisher
  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

install(TARGETS tr360_node
  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

install(DIRECTORY include/${PROJECT_NAME}/
  DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
)

install(DIRECTORY launch/
  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
)

install(DIRECTORY config/
  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config
)