add_library(robot_msg STATIC
  src/runtime.cpp
  src/generated/messages.cpp
  src/generated/registry.cpp
)
add_library(robot_msg::robot_msg ALIAS robot_msg)

set_target_properties(robot_msg PROPERTIES
  CXX_EXTENSIONS OFF
  CXX_STANDARD 14
  CXX_STANDARD_REQUIRED ON
  EXPORT_NAME robot_msg
  POSITION_INDEPENDENT_CODE ON
)

target_compile_features(robot_msg PUBLIC cxx_std_14)
target_include_directories(robot_msg
  PUBLIC
    "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
    "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
)

if(MSVC)
  target_compile_options(robot_msg PRIVATE /W4 /permissive-)
else()
  target_compile_options(robot_msg PRIVATE -Wall -Wextra -Wpedantic)
endif()

if(NOT ROBOT_MSG_SOURCE_PACKAGE)
  install(
    TARGETS robot_msg
    EXPORT robot_msgTargets
    ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
    LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
    RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
    INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
  )
endif()
