# SPDX-License-Identifier: MPL-2.0
#
# Exécutable sequa-studio : assemble supervisor, client et web (spec 0.2 §7, ADR 0006).

add_library(sequa_host_app STATIC
    src/options.cpp
    src/studio_host.cpp)
target_include_directories(sequa_host_app PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/src")
target_link_libraries(sequa_host_app PUBLIC sequa::host_supervisor sequa::host_client sequa::host_web sequa::layout)
sequa_target_defaults(sequa_host_app)

add_executable(sequa_studio_app src/main.cpp)
set_target_properties(sequa_studio_app PROPERTIES OUTPUT_NAME sequa-studio)
target_link_libraries(sequa_studio_app PRIVATE sequa_host_app)
sequa_target_defaults(sequa_studio_app)
sequa_install_executable(sequa_studio_app studio)

if(SEQUA_BUILD_TESTS)
    add_executable(sequa_host_app_tests
        tests/main.cpp
        tests/test_options.cpp
        tests/test_studio_host.cpp)
    target_link_libraries(sequa_host_app_tests PRIVATE sequa_host_app doctest::doctest)
    # Test de bout en bout contre le vrai Core.
    target_compile_definitions(sequa_host_app_tests PRIVATE SEQUA_TEST_CORE_EXE="$<TARGET_FILE:sequa_core_app>")
    add_dependencies(sequa_host_app_tests sequa_core_app)
    sequa_target_defaults(sequa_host_app_tests)
    doctest_discover_tests(sequa_host_app_tests)
endif()
