find_package(Boost COMPONENTS unit_test_framework REQUIRED)

set(TESTS_TARGET nzbget_tests)
set(TESTS_SRC ${CMAKE_SOURCE_DIR}/tests/main.cpp ${SRC})
if(WIN32)
	list(APPEND TESTS_SRC ${CMAKE_SOURCE_DIR}/daemon/util/Utf8.cpp)
endif()

include(util/util.cmake)
include(feed/feed.cmake)
include(queue/queue.cmake)
include(main/main.cmake)
include(extension/extension.cmake)
include(nntp/nntp.cmake)
include(system/system.cmake)
include(postprocess/postprocess.cmake)
include(systemhealth/systemhealth.cmake)

add_executable(${TESTS_TARGET} ${TESTS_SRC})
if(EXTERNAL_DEPS)
	add_dependencies(${TESTS_TARGET} ${EXTERNAL_DEPS})
endif()

target_link_libraries(${TESTS_TARGET} PRIVATE ${LIBS})
target_include_directories(${TESTS_TARGET} PRIVATE ${INCLUDES})

if (TARGET ${PACKAGE})
	target_precompile_headers(${TESTS_TARGET} REUSE_FROM ${PACKAGE})
else()
	target_precompile_headers(${TESTS_TARGET} PRIVATE ${CMAKE_SOURCE_DIR}/daemon/main/nzbget.h)
endif()

add_test(NAME UtilTest         COMMAND ${TESTS_TARGET} --run_test=UtilTest --log_level=message)
add_test(NAME FeedTest         COMMAND ${TESTS_TARGET} --run_test=FeedTest --log_level=message)
add_test(NAME QueueTest        COMMAND ${TESTS_TARGET} --run_test=QueueTest --log_level=message)
add_test(NAME MainTest         COMMAND ${TESTS_TARGET} --run_test=MainTest --log_level=message)
add_test(NAME ExtensionTest    COMMAND ${TESTS_TARGET} --run_test=ExtensionTest --log_level=message)
add_test(NAME NNTPTest         COMMAND ${TESTS_TARGET} --run_test=NNTPTest --log_level=message)
add_test(NAME SystemTest       COMMAND ${TESTS_TARGET} --run_test=SystemTest --log_level=message)
add_test(NAME PostprocessTest  COMMAND ${TESTS_TARGET} --run_test=PostprocessTest --log_level=message)
add_test(NAME SystemHealthTest COMMAND ${TESTS_TARGET} --run_test=SystemHealthTest --log_level=message)
