CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3)
PROJECT(rdl_urdfreader)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

find_package(catkin REQUIRED COMPONENTS roscpp urdf rdl_dynamics rdl_cmake roslib rdl_cmake)

include_directories(include ${catkin_INCLUDE_DIRS} )

catkin_package(
        INCLUDE_DIRS include
        LIBRARIES ${PROJECT_NAME}
        CATKIN_DEPENDS roscpp urdf rdl_dynamics roslib
#        DEPENDS
)

SET(URDFREADER_SOURCES
        src/urdfreader.cc
        )

add_library(${PROJECT_NAME} ${URDFREADER_SOURCES})

target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES})

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wno-sign-compare -Wno-unused-function -Wno-unused-variable")
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS ${CMAKE_CXX_FLAGS})

add_executable(${PROJECT_NAME}_util src/rdl_urdfreader_util.cc)

target_link_libraries(${PROJECT_NAME}_util ${PROJECT_NAME})

install(DIRECTORY include/${PROJECT_NAME}/
        DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
        FILES_MATCHING PATTERN "*.h"
        )

install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_util
        ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
        LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
        RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
        )

include(Format)

set(SRC_FILES src/urdfreader.cc)
format_code_target()

if (CATKIN_ENABLE_TESTING)
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")

    catkin_add_gtest(UrdfReaderTests tests/UrdfReaderTests.cpp)
    target_link_libraries(UrdfReaderTests ${PROJECT_NAME})

    set_target_properties(UrdfReaderTests PROPERTIES COMPILE_FLAGS ${CMAKE_CXX_FLAGS})

    install(DIRECTORY tests/urdf/
            DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/tests/urdf
            )

    include(CodeCoverage)
    coverage_add_target(run_tests_${PROJECT_NAME})

    include(Lint)
    lint_library(INCLUDE_DIRS include/${PROJECT_NAME} SRCS ${SRC_FILES})
endif ()