# SPDX-License-Identifier: BSD-3-Clause
# SPDX-FileCopyrightText: 2023 Seshan Ravikumar <seshan@sineware.ca>

set_source_files_properties(dbus/org.sigxcpu.Feedback.Haptic.xml PROPERTIES INCLUDE vibrationevent.h)
qt_add_dbus_interfaces(dbusinterface_SRCS
    dbus/org.sigxcpu.Feedback.Haptic.xml)

add_executable(kretro
    main.cpp
    app.cpp
    retroframe.cpp
    retrogamemodel.cpp
    retrogamesavemodel.cpp
    retropad.cpp
    objects/retrogame.cpp
    idleinhibit.cpp
    vibration.cpp
    resources.qrc
    ${dbusinterface_SRCS}
)


ecm_add_qml_module(kretro
    GENERATE_PLUGIN_SOURCE
    OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/src/org/kde/kretro # Shuts up an annoying upstream Qt warning
    URI org.kde.kretro
)

qt_target_qml_sources(kretro
    QML_FILES
        qml/Main.qml
        qml/MobileController.qml
        qml/MobilePlayer.qml
        qml/SaveManager.qml
        qml/Settings.qml
        qml/SettingsRetroCore.qml
        qml/SettingsRetroPad.qml
        qml/Help.qml

        qml/components/PageContainer.qml
        qml/components/PageHeader.qml
        qml/components/PageStack.qml
)

target_link_libraries(kretro PUBLIC
    Qt6::Core
    Qt6::Qml
    Qt6::Gui
    Qt6::QuickControls2
    Qt6::Widgets
    Qt6::Multimedia
    Qt6::DBus
    KF6::Kirigami
    KF6::I18n
    KF6::CoreAddons
    KF6::ConfigCore
    KF6::ConfigGui
    SDL3::SDL3
)

if (ANDROID)
    kirigami_package_breeze_icons(ICONS
        list-add
        help-about
        application-exit
        applications-graphics
    )
endif()

kconfig_add_kcfg_files(kretro GENERATE_MOC kretroconfig.kcfgc)
install(TARGETS kretro ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
