cmake_minimum_required(VERSION 3.20)
project(Footy LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Network Multimedia Concurrent)

add_executable(Footy WIN32
    resources.qrc
    src/main.cpp
    src/core/models.cpp
    src/core/config.cpp
    src/core/paths.cpp
    src/core/sound.cpp
    src/core/store.cpp
    src/core/http_client.cpp
    src/core/espn_api.cpp
    src/core/pricing.cpp
    src/core/accuracy.cpp
    src/core/chat.cpp
    src/core/predictor.cpp
    src/core/predict_flow.cpp
    src/ui/context.cpp
    src/ui/crest_loader.cpp
    src/ui/icon_font.cpp
    src/ui/predict_wiring.cpp
    src/ui/theme.cpp
    src/ui/main_window.cpp
    src/ui/sidebar.cpp
    src/ui/widgets/accuracy_dashboard.cpp
    src/ui/widgets/match_card.cpp
    src/ui/widgets/match_list.cpp
    src/ui/widgets/prediction_card.cpp
    src/ui/widgets/title_bar.cpp
    src/ui/widgets/toast.cpp
    src/ui/pages/about_page.cpp
    src/ui/pages/leagues_page.cpp
    src/ui/pages/live_page.cpp
    src/ui/pages/favorites_page.cpp
    src/ui/pages/history_page.cpp
    src/ui/pages/settings_page.cpp
    src/ui/pages/search_page.cpp
    src/ui/pages/feedback_page.cpp
    src/ui/pages/chat_page.cpp
    src/core/reporter.cpp
)

target_include_directories(Footy PRIVATE src)
target_link_libraries(Footy PRIVATE
    Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Network Qt6::Multimedia Qt6::Concurrent
)

if (WIN32)
    target_link_libraries(Footy PRIVATE ws2_32 crypt32)
    target_sources(Footy PRIVATE resources.rc)
endif()
