# This file is part of the Owl Positioning System (OwlPS) project.
# It is subject to the copyright notice and license terms in the
# COPYRIGHT.t2t file found in the top-level directory of this
# distribution and at
#   https://code.lm7.fr/mcy/owlps/src/master/COPYRIGHT.t2t
# No part of the OwlPS Project, including this file, may be copied,
# modified, propagated, or distributed except according to the terms
# contained in the COPYRIGHT.t2t file; the COPYRIGHT.t2t file must be
# distributed along with this file, either separately or by replacing
# this notice by the COPYRIGHT.t2t file's contents.

# Generate configuration header
configure_file(owlps-config.h.in
  "${GENERATED_INCLUDE}/owlps-config.h")

# On Linux and other GNU systems (e.g. GNU/kFreeBSD), we need -lrt for
# clock_gettime()
string(REGEX MATCH "^GNU" GNU_SYSTEM ${CMAKE_SYSTEM_NAME})
if ("${GNU_SYSTEM}" OR ${CMAKE_SYSTEM_NAME} STREQUAL Linux)
  set(EXTRA_LIBS ${EXTRA_LIBS} rt)
endif()

# Explicitly link to libc
set(EXTRA_LIBS ${EXTRA_LIBS} c)

# Targets
add_library(libowlps.so SHARED libowlps.c)
add_library(libowlps.a STATIC libowlps.c)

# Fix targets' names
set_target_properties(
  libowlps.a libowlps.so
  PROPERTIES
  OUTPUT_NAME owlps
  SOVERSION 3
  VERSION 3.3
  )

# Add compile flags
set_target_properties(libowlps.so
  PROPERTIES COMPILE_FLAGS ${SHARED_FLAGS})
set_target_properties(libowlps.a
  PROPERTIES COMPILE_FLAGS ${EXE_FLAGS})

# Link libraries
target_link_libraries(libowlps.so ${EXTRA_LIBS})
target_link_libraries(libowlps.a ${EXTRA_LIBS})

# Install targets
install(
  TARGETS libowlps.so libowlps.a
  DESTINATION lib)
install(
  FILES owlps.h
  DESTINATION include)
