cmake_minimum_required(VERSION 3.14)

project(ssp_tests CXX)

# ---- Dependencies ----

set(
    ssp_INCLUDE_WITHOUT_SYSTEM
    YES
    CACHE
    INTERNAL
    "Turn the warning guard off to have errors appear in test builds"
)

include(FetchContent)
FetchContent_Declare(ssp SOURCE_DIR "${PROJECT_SOURCE_DIR}/..")
FetchContent_MakeAvailable(ssp)

if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
  target_compile_options(ssp INTERFACE -Wall -Wextra)
endif()

find_package(doctest 2.4.4 CONFIG REQUIRED)
# for doctest_discover_tests
include(doctest)

# ---- Test ----

enable_testing()

foreach(name IN ITEMS test_splitter test_parser test_converter test_extractions)
  add_executable("${name}" "${name}.cpp")
  target_link_libraries("${name}" PRIVATE ssp::ssp fast_float doctest::doctest)
  target_compile_definitions("${name}" PRIVATE
    DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN CMAKE_GITHUB_CI)
  doctest_discover_tests("${name}")
endforeach()