cmake_minimum_required(VERSION 3.10)

add_executable(font-tests
  font_test.c
  ../src/font.c
)
target_compile_definitions(font-tests PRIVATE
  FONT_TEST_FILE="${PROJECT_TOP}/repos/cimgui/imgui/misc/fonts/DroidSans.ttf"
)
target_include_directories(font-tests PRIVATE
  "${CMAKE_CURRENT_SOURCE_DIR}/../include"
)
add_test(NAME font-tests
  COMMAND font-tests
)
set_tests_properties(font-tests PROPERTIES
  TIMEOUT 10
)

if(ENABLE_TRANSPORT_TESTS)
  add_executable(lgmp-transport-tests
    lgmp_transport_test.c
  )
  target_link_libraries(lgmp-transport-tests
    ${EXE_FLAGS}
    transport_LGMP
    lg_common
    lgmp
  )
  add_test(NAME lgmp-transport-tests
    COMMAND lgmp-transport-tests
  )
  set_tests_properties(lgmp-transport-tests PROPERTIES
    TIMEOUT 10
  )
endif()

if(ENABLE_RENDER_TESTS)
  find_package(GTest REQUIRED)
  find_program(WESTON_EXECUTABLE NAMES weston)
  if(NOT WESTON_EXECUTABLE)
    message(FATAL_ERROR "weston is required to run framebuffer rendering tests")
  endif()

  add_executable(render-tests
    render_test.cpp
  )
  add_dependencies(render-tests looking-glass-client)

  set_target_properties(render-tests PROPERTIES
    CXX_STANDARD 17
    CXX_STANDARD_REQUIRED ON
  )

  target_compile_definitions(render-tests PRIVATE
    LG_CLIENT_PATH="$<TARGET_FILE:looking-glass-client>"
  )

  target_include_directories(render-tests PRIVATE
    "${CMAKE_CURRENT_SOURCE_DIR}/../include"
    "${PROJECT_TOP}/common/include"
  )

  if(TARGET GTest::gtest_main)
    target_link_libraries(render-tests GTest::gtest_main)
  else()
    target_link_libraries(render-tests GTest::Main)
  endif()

  add_test(NAME render-tests
    COMMAND /bin/bash
      "${CMAKE_CURRENT_SOURCE_DIR}/run-with-weston.sh"
      "${WESTON_EXECUTABLE}"
      "$<TARGET_FILE:render-tests>"
  )

  set_tests_properties(render-tests PROPERTIES
    TIMEOUT 120
  )
endif()
