cmake_minimum_required(VERSION 2.8.12)
project(libtermkey)

add_definitions(-D _CRT_SECURE_NO_WARNINGS)
add_definitions(-DHAVE_UNIBILIUM)
if(NOT MSVC)
  add_compile_options(-std=c99)
endif()

include_directories(${PROJECT_BINARY_DIR}/t)
include_directories(SYSTEM ${UNIBILIUM_INCLUDE_DIRS})

add_library(termkey termkey.c driver-csi.c driver-ti.c)
set_target_properties(termkey PROPERTIES
  PUBLIC_HEADER ${PROJECT_SOURCE_DIR}/termkey.h)
target_link_libraries(termkey ${UNIBILIUM_LIBRARIES})

include(GNUInstallDirs)
install(TARGETS termkey
  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
  PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})

enable_testing()
file(GLOB TESTSOURCES "t/[0-9]*.c")
foreach(f ${TESTSOURCES})
  get_filename_component(t ${f} NAME_WE)
  if(${t} STREQUAL 05read)
    continue()
  endif()

  add_executable("test_${t}" ${f} t/taplib.c)
  target_link_libraries("test_${t}" termkey)
  add_test("${t}" "test_${t}")
endforeach()
