set(_launcher_sources
    main.cpp
    UpdateLogic.h
    UpdateLogic.cpp
)

if(WIN32)
    set(_launcher_manifest "${CMAKE_CURRENT_SOURCE_DIR}/launcher.manifest")
    if(NOT EXISTS "${_launcher_manifest}")
        message(FATAL_ERROR "Launcher UAC manifest is missing: ${_launcher_manifest}")
    endif()
    list(APPEND _launcher_sources "${_launcher_manifest}")
endif()

add_executable(Launcher ${_launcher_sources})
target_compile_features(Launcher PRIVATE cxx_std_17)
target_link_libraries(Launcher
    PRIVATE
        Common
        UpdateClientUpdaterLogic
        Qt5::Core
        Qt5::Network
        Qt5::Gui
        Qt5::Widgets
)
update_client_link_embedded_resources(Launcher)
update_client_deploy_openssl_runtime(Launcher)
update_client_enable_qt_deployment(Launcher)

if(WIN32)
    set_target_properties(Launcher PROPERTIES WIN32_EXECUTABLE TRUE)
    if(MSVC)
        target_link_options(Launcher PRIVATE /MANIFESTUAC:NO)
    endif()
endif()
