cmake_minimum_required(VERSION 3.10)
project(robot_angles_prv VERSION 1.0.0 LANGUAGES CXX)

option(BUILD_WITH_CATKIN "Build with ROS catkin" ON)

# =========================
# CATKIN MODE
# =========================
if(BUILD_WITH_CATKIN AND DEFINED CATKIN_DEVEL_PREFIX)

  message(STATUS "Building robot_angles_prv in CATKIN mode")

  find_package(catkin REQUIRED)

  catkin_package(
    INCLUDE_DIRS include
  )

  include_directories(
    include
    ${catkin_INCLUDE_DIRS}
  )

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

  catkin_python_setup()

# =========================
# PURE CMAKE MODE
# =========================
else()

  message(STATUS "Building robot_angles_prv in PURE CMAKE mode")

  add_library(robot_angles_prv INTERFACE)

  target_include_directories(robot_angles_prv INTERFACE
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
    $<INSTALL_INTERFACE:include>
  )

  include(CMakePackageConfigHelpers)

  install(TARGETS robot_angles_prv
    EXPORT robot_angles_prvTargets
  )

  install(DIRECTORY include/
    DESTINATION include
    FILES_MATCHING PATTERN "*.h"
  )

  install(EXPORT robot_angles_prvTargets
    FILE robot_angles_prvTargets.cmake
    NAMESPACE robot_angles_prv::
    DESTINATION lib/cmake/robot_angles_prv
  )

  write_basic_package_version_file(
    robot_angles_prvConfigVersion.cmake
    VERSION ${PROJECT_VERSION}
    COMPATIBILITY AnyNewerVersion
  )

  configure_package_config_file(
    cmake/anglesConfig.cmake.in
    ${CMAKE_CURRENT_BINARY_DIR}/robot_angles_prvConfig.cmake
    INSTALL_DESTINATION lib/cmake/robot_angles_prv
  )

  install(FILES
    ${CMAKE_CURRENT_BINARY_DIR}/robot_angles_prvConfig.cmake
    ${CMAKE_CURRENT_BINARY_DIR}/robot_angles_prvConfigVersion.cmake
    DESTINATION lib/cmake/robot_angles_prv
  )

endif()
