cmake_minimum_required(VERSION 3.0.2)
project(laser_cb_detector)

find_package(Boost REQUIRED thread)
find_package(catkin REQUIRED actionlib actionlib_msgs cv_bridge image_cb_detector message_filters roscpp settlerlib std_msgs)

add_action_files(DIRECTORY action FILES Config.action)

generate_messages(DEPENDENCIES actionlib_msgs std_msgs)

# define the package
catkin_package(DEPENDS actionlib actionlib_msgs cv_bridge image_cb_detector message_filters roscpp settlerlib std_msgs
               INCLUDE_DIRS include
               LIBRARIES ${PROJECT_NAME}
)

find_package(OpenCV REQUIRED)
include_directories(SYSTEM ${catkin_INCLUDE_DIRS}
                           ${OpenCV_INCLUDE_DIRS}
)
include_directories(include)

install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/laser_cb_detector/
        DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
) 

# deal witht the library
add_library(${PROJECT_NAME} src/cv_laser_bridge.cpp
                            src/laser_cb_detector.cpp
                            src/laser_interval_calc.cpp)
target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES}
                                      ${OpenCV_LIBRARIES}
)
add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS})
install(TARGETS ${PROJECT_NAME}
        DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
)

# deal with some executables
add_executable(laser_cb_detector_node src/laser_cb_detector_node.cpp)
target_link_libraries(laser_cb_detector_node ${Boost_LIBRARIES}
                                             ${catkin_LIBRARIES}
                                             ${PROJECT_NAME}
                                             ${OpenCV_LIBRARIES}
)

add_executable(laser_interval_calc_node src/laser_interval_calc_node.cpp)
target_link_libraries(laser_interval_calc_node ${Boost_LIBRARIES}
                                               ${catkin_LIBRARIES}
                                               ${PROJECT_NAME}
                                               ${OpenCV_LIBRARIES}
)
add_dependencies(laser_interval_calc_node ${catkin_EXPORTED_TARGETS})

install(TARGETS laser_cb_detector_node laser_interval_calc_node
        DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

if(CATKIN_ENABLE_TESTING)
  add_subdirectory(test EXCLUDE_FROM_ALL)
endif()
