cmake_minimum_required(VERSION 3.0.2)
project(leuze_rod_driver)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  std_msgs
  leuze_msgs
)

catkin_package(
  INCLUDE_DIRS include
  CATKIN_DEPENDS roscpp std_msgs leuze_msgs
)

include_directories(
  include
  ${catkin_INCLUDE_DIRS}
)

add_definitions(-DBOOST_BIND_GLOBAL_PLACEHOLDERS)
add_definitions(-DBOOST_CB_DISABLE_DEBUG)           # disable debug messages from boost library 
# add_definitions(-DDEBUG)                          # enable debug logs
# add_definitions(-DSIMULATION)                     # enable simulation mode
# add_definitions(-DSTATUS)                         # enable publishing of status messages 

set(SOURCES
  src/common.cpp
  src/eth_comm_rod.cpp
  src/eth_comm_sim.cpp
  src/eth_comm_tcp.cpp
  src/eth_comm_udp.cpp
  src/rod_driver.cpp
  src/rod_node.cpp
  src/scan_data_parser.cpp
)

add_executable(${PROJECT_NAME} ${SOURCES})

target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES})

add_dependencies(${PROJECT_NAME}
  ${${PROJECT_NAME}_EXPORTED_TARGETS}
  ${leuze_msgs_EXPORTED_TARGETS}
)

install(TARGETS ${PROJECT_NAME}
  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

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