find_package(Boost 1.70.0 CONFIG REQUIRED COMPONENTS unit_test_framework)

file(GLOB unit_tests_src CONFIGURE_DEPENDS "*.cpp")
add_executable(unit_tests ${unit_tests_src})
set_target_properties(unit_tests PROPERTIES OUTPUT_NAME math-server-unit-tests)
target_link_libraries(unit_tests PRIVATE lexer parser)
target_link_libraries(unit_tests PRIVATE
    Boost::disable_autolinking
    Boost::unit_test_framework
)
install(TARGETS unit_tests RUNTIME DESTINATION bin)
if(MSVC)
    install(FILES $<TARGET_PDB_FILE:unit_tests> DESTINATION bin OPTIONAL)
endif()

find_package(Python3 REQUIRED COMPONENTS Interpreter)

add_test(NAME unit_tests
    WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/cmake"
    COMMAND Python3::Interpreter
    -m project.ctest_driver
    run
    --pass-regex [=[^\*\*\* No errors detected$]=]
    --
    "$<TARGET_FILE:unit_tests>"
    --no_color_output
)
