##
## Copyright (c) Toposens GmbH 2021. All rights reserved.
##

cmake_minimum_required(VERSION 3.5.1)

# set the project name
project(toposens-sensor-library VERSION 1.1.3 DESCRIPTION "toposens sensor library")

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_INSTALL_PREFIX "/usr")
message( "CMAKE_CURRENT_SOURCE_DIR: "  ${CMAKE_CURRENT_SOURCE_DIR})

add_compile_options(-Wall -Wextra -Werror -Wno-unused-function -Wno-unused-variable)

set(INCLUDE_FILES 
${CMAKE_CURRENT_SOURCE_DIR}/src/linux
${CMAKE_CURRENT_SOURCE_DIR}/config
)

if($ENV{TOPOSENSDEBUG})
  set(CMAKE_BUILD_TYPE Debug)
  message("Building Debug type")
endif()

find_program(CLANG_TIDY_COMMAND NAMES clang-tidy)
if(NOT CLANG_TIDY_COMMAND)
  message("Clang-tidy not found!")
else()
  set(CMAKE_C_CLANG_TIDY
      clang-tidy;
      -header-filter=.;
      )
endif()
set(SOURCE_FILES
  ${CMAKE_CURRENT_SOURCE_DIR}/src/linux/socketinterface.c
  ${CMAKE_CURRENT_SOURCE_DIR}/src/linux/uartinterface.c
)



message( "INCLUDE_FILES: "  ${INCLUDE_FILES})
message( "SOURCE_FILES: "  ${SOURCE_FILES})

include_directories(
  include
)

# add the library
add_library(${PROJECT_NAME} SHARED src/sensor_lib.c ${SOURCE_FILES})
link_directories(${INCLUDE_FILES})

set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads -dynamic)

#install directive
install(TARGETS ${PROJECT_NAME} DESTINATION lib)
install(FILES include/toposens/sensor_lib.h DESTINATION include/toposens)
install(FILES include/toposens/custom_structs.h DESTINATION include/toposens)
install(FILES include/toposens/custom_types.h DESTINATION include/toposens)
install(FILES include/toposens/message_flags.h DESTINATION include/toposens)
install(FILES include/toposens/config/sensor_lib_config.h DESTINATION include/toposens/config)
