# http://ros.org/doc/groovy/api/catkin/html/user_guide/supposed.html
cmake_minimum_required(VERSION 2.8.3)
project(diagnostic_aggregator)
# Load catkin and all dependencies required for this package
find_package(catkin REQUIRED diagnostic_msgs pluginlib roscpp rospy rostest xmlrpcpp bondcpp)
catkin_package(DEPENDS diagnostic_msgs pluginlib roscpp rospy xmlrpcpp bondcpp bondpy
INCLUDE_DIRS include
LIBRARIES ${PROJECT_NAME})
set(REQUIRED_diagnostic_msgs_VERSION_Indigo "1.11.9")
set(REQUIRED_diagnostic_msgs_VERSION_Jade "1.12.4")
if( ${diagnostic_msgs_VERSION} VERSION_LESS ${REQUIRED_diagnostic_msgs_VERSION_Indigo})
message(FATAL_ERROR "diagnostic_msgs version ${REQUIRED_diagnostic_msgs_VERSION_Indigo} or newer is required to build diagnotic_aggregator on ROS Indigo")
endif()
if( (${diagnostic_msgs_VERSION} VERSION_EQUAL "1.12.0") OR
(${diagnostic_msgs_VERSION} VERSION_GREATER "1.12.0" AND
${diagnostic_msgs_VERSION} VERSION_LESS ${REQUIRED_diagnostic_msgs_VERSION_Jade}))
message(FATAL_ERROR "diagnostic_msgs version ${REQUIRED_diagnostic_msgs_VERSION_Jade} or newer is required to build diagnotic_aggregator on ROS Jade")
endif()
find_package(Boost REQUIRED COMPONENTS system)
include_directories(include ${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} gtest-1.7.0/include)
add_library(${PROJECT_NAME}
src/status_item.cpp
src/analyzer_group.cpp
src/generic_analyzer.cpp
src/discard_analyzer.cpp
src/ignore_analyzer.cpp
src/aggregator.cpp)
target_link_libraries(diagnostic_aggregator ${Boost_LIBRARIES}
${catkin_LIBRARIES}
)
add_dependencies(${PROJECT_NAME} diagnostic_msgs_generate_messages_cpp)
# Aggregator node
add_executable(aggregator_node src/aggregator_node.cpp)
target_link_libraries(aggregator_node ${catkin_LIBRARIES}
${PROJECT_NAME}
)
# Analyzer loader allows other users to test that Analyzers load
add_executable(analyzer_loader test/analyzer_loader.cpp
gtest-1.7.0/gtest-all.cc)
target_link_libraries(analyzer_loader diagnostic_aggregator)
if(CATKIN_ENABLE_TESTING)
add_rostest(test/launch/test_agg.launch)
add_rostest(test/launch/test_add_agg.launch)
# Test Analyzer loader
add_rostest(test/launch/test_loader.launch)
add_rostest(test/launch/test_expected_stale.launch)
add_rostest(test/launch/test_multiple_match.launch)
endif()
catkin_install_python(
PROGRAMS scripts/add_analyzers
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
install(DIRECTORY include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
)
install(FILES analyzer_plugins.xml
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
install(TARGETS ${PROJECT_NAME}
DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
)
install(TARGETS aggregator_node analyzer_loader
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)